]> git.plutz.net Git - shellwiki/blobdiff - handlers/60_move_rename_delete.sh
reindex after tree movement, bugfix in search filtering, improved search weighting
[shellwiki] / handlers / 60_move_rename_delete.sh
index 27246bd108acecac61ba2d7dc17406979aa2272d..49651a29d9510255d26ae8662ed5492beb85b39e 100755 (executable)
@@ -33,7 +33,7 @@ case "${PATH_INFO}" in
       printf 'Refresh: %i, url=%s\r\n' 4 ./
       theme_error 403
       return 0
-    elif [ -d "$_EXEC/pages/${page}/" ]; then
+    elif [ ! -d "$_DATA/pages/${page}" -a -d "$_EXEC/pages/${page}" ]; then
       theme_page - <<-EOF
        <article>
          <p class=error>
@@ -165,15 +165,20 @@ if [ "$action" = rename -a "$newname" ]; then
     printf 'Refresh: %i\r\n' 4
     theme_error 403
     return 0
-  elif [ "$REV_PAGES" = true ]; then
+  fi
+  if [ "$REV_PAGES" = true ]; then
     git -C "$_DATA" mv "pages/$oldname" "pages/$newname"
     git -C "$_DATA" commit -m 'Page # '"$oldname"' # renamed to # '"$newname"' # by user @ '"$USER_NAME"' @' \
         -- "pages/$oldname" "pages/$newname"
-    REDIRECT "$_BASE${newname}"
   else
     mv -- "$_DATA/pages/$oldname" "$_DATA/pages/$newname"
-    REDIRECT "$_BASE${newname}"
   fi
+  if [ "$SEARCH_INDEX" = true ]; then
+    find "$_DATA/pages/$newname" -name "#index.flag" -delete
+    ( "$_EXEC/searchindex.sh" index --location "$newname" & ) &
+  fi
+  REDIRECT "$_BASE${newname}"
+
 elif [ "$action" = move -a "$newlocation" ]; then
   oldname="${PATH_INFO%\[*\]}"
   newlocation="$(PATH "$newlocation")"
@@ -194,15 +199,20 @@ elif [ "$action" = move -a "$newlocation" ]; then
     printf 'Refresh: %i\r\n' 4
     theme_error 403
     return 0
-  elif [ "$REV_PAGES" = true ]; then
+  fi
+  if [ "$REV_PAGES" = true ]; then
     git -C "$_DATA" mv "pages/${oldname}" "pages/${newname}"
     git -C "$_DATA" commit -m 'Page # '"$oldname"' # moved to # '"$newname"' # by user @ '"$USER_NAME"' @' \
         -- "pages/${oldname}" "pages/${newname}"
-    REDIRECT "$_BASE${newname}"
   else
     mv -- "$_DATA/pages/$oldname" "$_DATA/pages/$newname"
-    REDIRECT "$_BASE${newname}"
   fi
+  if [ "$SEARCH_INDEX" = true ]; then
+    find "$_DATA/pages/$newname" -name "#index.flag" -delete
+    ( "$_EXEC/searchindex.sh" index --location "$newname" & ) &
+  fi
+  REDIRECT "$_BASE${newname}"
+
 elif [ "$action" = delete ]; then
   oldname="${PATH_INFO%\[*\]}"
   if ! acl_write "$oldname"; then