]> git.plutz.net Git - shellwiki/blobdiff - handlers/60_move_rename_delete.sh
prevent spamming error log
[shellwiki] / handlers / 60_move_rename_delete.sh
index be84ca8afc40e856fad03cb1a4ec354e52135c22..47886c59d8f1f44130f3c31b27c59194caf79d05 100755 (executable)
@@ -1,5 +1,14 @@
 #!/bin/sh
 
+l10n_immutablepage 2>&1 >/dev/null \
+|| l10n_immutablepage(){  #TRANSLATION
+  cat <<-EOF
+         <h1>Immutable Page</h1>
+         This is a core page of the wiki system. Its name and position cannot be changed.
+         You may however update this page and you can use ACLs to hide it from various listings.
+       EOF
+}
+
 case "${PATH_INFO}" in
   */\[move\]|*/\[rename\]|*/\[delete\])
     page="${PATH_INFO%\[*\]}"
@@ -14,9 +23,7 @@ case "${PATH_INFO}" in
       theme_page - <<-EOF
        <article>
          <p class=error>
-         <h1>Immutable Page</h1>
-         This is a core page of the wiki system. Its name and position cannot be changed.
-         You may however update this page and you can use ACLs to hide it from various listings.
+         $(l10n_immutablepage)
          </p>
        </article>
        EOF
@@ -26,16 +33,9 @@ case "${PATH_INFO}" in
   *) return 1;;
 esac
 
-if [ "$REQUEST_METHOD" = POST ]; then
-  action="$(POST action)"
-  newname="$(POST newname |grep -m1 -xE '[^#/]*')"
-  newlocation="$(POST newlocation |grep -m1 -xE '/[^#]*')"
-else case "${PATH_INFO}" in
-  */\[move\])
-      location="${page%/}" location="${location%/*}/"
-      theme_page - <<-EOF
-       <form method=POST id=movepage>
-         <input type=hidden name=session_id value="$SESSION_KEY">
+l10n_movepage 2>&1 >/dev/null \
+|| l10n_movepage(){  # TRANSLATION
+  cat <<-EOF
          <h1>Move Page</h1>
          <p class="pageid">$(HTML "${page}")</p>
          <input name="newlocation" value="$(HTML "$location")" placeholder="New Location">
@@ -47,15 +47,11 @@ else case "${PATH_INFO}" in
          </ul>
          <button type=submit name=action value=move>Move</button>
          <button type=submit name=action value=cancel>Cancel</button>
-       </form>
        EOF
-      return 0
-    ;;
-  */\[rename\])
-      name="${page%/}" name="${name##*/}"
-      theme_page - <<-EOF
-       <form method=POST id=renamepage>
-         <input type=hidden name=session_id value="$SESSION_KEY">
+}
+l10n_renamepage 2>&1 >/dev/null \
+|| l10n_renamepage(){  # TRANSLATION
+  cat <<-EOF
          <h1>Rename Page</h1>
          <p class="pageid">$(HTML "${page}")</p>
          <input name="newname" value="$(HTML "$name")" placeholder="New Name">
@@ -67,14 +63,11 @@ else case "${PATH_INFO}" in
          </ul>
          <button type=submit name=action value=rename>Rename</button>
          <button type=submit name=action value=cancel>Cancel</button>
-       </form>
        EOF
-      return 0
-    ;;
-  */\[delete\])
-      theme_page - <<-EOF
-       <form method=POST id=deletepage>
-         <input type=hidden name=session_id value="$SESSION_KEY">
+}
+l10n_deletepage 2>&1 >/dev/null \
+|| l10n_deletepage(){  # TRANSLATION
+  cat <<-EOF
          <h1>Delete Page</h1>
          <p class="pageid">$(HTML "${page}")</p>
          <p>This page and its attachments will be deleted</p>
@@ -85,6 +78,39 @@ else case "${PATH_INFO}" in
          </ul>
          <button type=submit name=action value=delete>Delete</button>
          <button type=submit name=action value=cancel>Cancel</button>
+       EOF
+}
+
+if [ "$REQUEST_METHOD" = POST ]; then
+  action="$(POST action)"
+  newname="$(POST newname |grep -m1 -xE '[^#/]*')"
+  newlocation="$(POST newlocation |grep -m1 -xE '/[^#]*')"
+else case "${PATH_INFO}" in
+  */\[move\])
+      location="${page%/}" location="${location%/*}/"
+      theme_page - <<-EOF
+       <form method=POST id=movepage>
+         <input type=hidden name=session_id value="$SESSION_KEY">
+         $(l10n_movepage)
+       </form>
+       EOF
+      return 0
+    ;;
+  */\[rename\])
+      name="${page%/}" name="${name##*/}"
+      theme_page - <<-EOF
+       <form method=POST id=renamepage>
+         <input type=hidden name=session_id value="$SESSION_KEY">
+         $(l10n_renamepage)
+       </form>
+       EOF
+      return 0
+    ;;
+  */\[delete\])
+      theme_page - <<-EOF
+       <form method=POST id=deletepage>
+         <input type=hidden name=session_id value="$SESSION_KEY">
+         $(l10n_deletepage)
        </form>
        EOF
       return 0
@@ -105,11 +131,14 @@ if [ "$action" = rename -a "$newname" ]; then
     printf 'Refresh: %i\r\n' 4
     theme_error 403
     return 0
-  else
+  elif [ "$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
 elif [ "$action" = move -a "$newlocation" ]; then
   oldname="${PATH_INFO%\[*\]}"
@@ -131,11 +160,14 @@ elif [ "$action" = move -a "$newlocation" ]; then
     printf 'Refresh: %i\r\n' 4
     theme_error 403
     return 0
-  else
+  elif [ "$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
 elif [ "$action" = delete ]; then
   oldname="${PATH_INFO%\[*\]}"
@@ -143,13 +175,18 @@ elif [ "$action" = delete ]; then
     printf 'Refresh: %i\r\n' 4
     theme_error 403
     return 0
-  else
+  elif [ "$REV_PAGES" = true ]; then
     git -C "$_DATA" rm "pages/${oldname}/#page.md"
     git -C "$_DATA" commit -m 'Page # '"$oldname"' # deleted by user @ '"$USER_NAME"' @' \
         -- "pages/${oldname}/#page.md"
     rm -r -- "$_DATA/pages/${oldname}"/\#*
     rmdir -- "$_DATA/pages/${oldname}/" || true
     REDIRECT ./
+  else
+    rm -- "$_DATA/pages/${oldname}/#page.md"
+    rm -r -- "$_DATA/pages/${oldname}"/\#*
+    rmdir -- "$_DATA/pages/${oldname}/" || true
+    REDIRECT ./
   fi
 elif [ "$action" = cancel ]; then
   REDIRECT ./