]> git.plutz.net Git - shellwiki/blobdiff - handlers/60_move_rename_delete.sh
Page titles for special function pages
[shellwiki] / handlers / 60_move_rename_delete.sh
index 749affcfdd88fa31c0021fb1c924bcd2c617f843..f399e0388bf907cd9cc198d5f0ba6a0280b5c849 100755 (executable)
@@ -52,7 +52,7 @@ l10n_movepage >/dev/null 2>&1 \
   cat <<-EOF
          <h1>Move Page</h1>
          <p class="pageid">$(HTML "${page}")</p>
-         <input name="newlocation" value="$(HTML "$location")" placeholder="New Location">
+         <input list="locations" autocomplete="off" name="newlocation" value="$(HTML "$location")" placeholder="New Location">
          <ul>
            <li>A page with the same name must not already exist at the new location.</li>
            <li>You must have permission to create new pages at this location.</li>
@@ -68,7 +68,7 @@ l10n_renamepage >/dev/null 2>&1 \
   cat <<-EOF
          <h1>Rename Page</h1>
          <p class="pageid">$(HTML "${page}")</p>
-         <input name="newname" value="$(HTML "$name")" placeholder="New Name">
+         <input autocomplete="off" name="newname" value="$(HTML "$name")" placeholder="New Name">
          <ul>
            <li>A page with the new name must not already exist.</li>
            <li>You must have permission to create new pages at this location.</li>
@@ -122,9 +122,16 @@ if [ "$REQUEST_METHOD" = POST ]; then
 else case "${PATH_INFO}" in
   */\[move\])
       location="${page%/}" location="${location%/*}/"
-      theme_page - <<-EOF
+      theme_page - "$(_ Move): ${PAGE_TITLE}"<<-EOF
        <form method=POST id=movepage>
          <input type=hidden name=session_id value="$SESSION_KEY">
+         <datalist id="locations">
+         $(page_glob / -1 |while read loc; do
+           [ "$loc" = "$page" ] && continue
+           acl_write "$loc" || continue
+           printf '\n    <option>%s</option>' "$(HTML "$loc")"
+         done)
+         </datalist>
          $(l10n_movepage)
        </form>
        EOF
@@ -132,7 +139,7 @@ else case "${PATH_INFO}" in
     ;;
   */\[rename\])
       name="${page%/}" name="${name##*/}"
-      theme_page - <<-EOF
+      theme_page - "$(_ Rename): ${PAGE_TITLE}"<<-EOF
        <form method=POST id=renamepage>
          <input type=hidden name=session_id value="$SESSION_KEY">
          $(l10n_renamepage)
@@ -141,7 +148,7 @@ else case "${PATH_INFO}" in
       return 0
     ;;
   */\[delete\])
-      theme_page - <<-EOF
+      theme_page - "$(_ Delete): ${PAGE_TITLE}"<<-EOF
        <form method=POST id=deletepage>
          <input type=hidden name=session_id value="$SESSION_KEY">
          $(l10n_deletepage)
@@ -165,15 +172,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 +206,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