]> git.plutz.net Git - shellwiki/blobdiff - themes/default.sh
Separate file for attachment edit functions. Functions to move attached files.
[shellwiki] / themes / default.sh
index 1f8d285d4eb9a241601dde074f0fbd80fcb66800..6807242cd2d6dd0445e419bd72ae62dfe5834f23 100755 (executable)
@@ -3,11 +3,14 @@
 . "$_EXEC/tools.sh"
 
 theme_head(){
+  local IFS="$BR"
   printf '
   <meta name="viewport" content="width=device-width"/>
-  <link rel="stylesheet" type="text/css" href="%s/[.]/cgilite/common.css">
-  <link rel="stylesheet" type="text/css" href="%s/[.]/themes/default.css">
-  ' "$_BASE"
+  '
+  for css in "$_BASE/[.]/cgilite/common.css" "$_BASE/[.]/themes/default.css" $PAGE_CSS; do
+    printf  '<link rel="stylesheet" type="text/css" href="%s">' \
+            "$(HTML "${css##*//}")"
+  done
 }
 
 theme_header(){
@@ -24,18 +27,20 @@ theme_pagemenu(){
   if acl_write "$page"; then
     printf  '
     <ul class="pagemenu">
-      <li><a href="./">View</a></li>
+      <li><a href="./[view]">View</a></li>
       <li><a href="./[edit]">Edit</a></li>
       <li><a href="./[attachment]">Attachments</a></li>
       <li><a href="./[revision]">Revisions</a></li>
+      <li><a href="./[rename]">Rename</a></li>
+      <li><a href="./[move]">Move</a></li>
+      <li><a href="./[delete]">Delete</a></li>
     </ul>'
   fi
 }
 
 theme_page(){
-  local page="$1" title="$2" id="$3"
+  local page="$1" title="$2"
   title="$(HTML "${title:-"${page}"}")"
-  id="$(HTML "${id:-"${page}"}")"
 
   # Important! Web Server response including newline
   printf "%s\r\n" "Content-Type: text/html; charset=utf-8" ""
@@ -45,7 +50,7 @@ theme_page(){
        <html><head>
          $(theme_head)
          <title>${title}</title>
-       </head><body id="$id">
+       </head><body id="$(HTML "${PATH_INFO}")">
          $(theme_header)
          <main>
            $(theme_pagemenu)
@@ -68,8 +73,8 @@ theme_editor(){
 
   [ "$template" ] && acl_read "$template" || template="$page"
 
-  theme_page - "Editor: $title" "${page}[edit]" <<-EOF
-       <form method=POST action="$(HTML "${page%/}/[edit]")">
+  theme_page - "Editor: $title" <<-EOF
+       <form method=POST action="$(HTML "${_BASE}${page%/}/[edit]")">
          <input type=hidden name=session_key value="${SESSION_KEY}"/>
          <textarea name=pagetext>$({ wiki_text "$page" \
                                   || wiki_text "$template"; } |HTML)</textarea>
@@ -84,7 +89,7 @@ theme_revisions(){
   title="${page%/}"; title="${title##*/}"
 
  "$_EXEC/macros/revisions" "$page" \
-  | theme_page - "Revisions: $title" "${page}[revision]"
+  | theme_page - "Revisions: $title"
 }
 
 theme_attachments(){
@@ -92,40 +97,59 @@ theme_attachments(){
   title="${page%/}"; title="${title##*/}"
 
   if acl_write "$page"; then
-    theme_page - "Attachments: $title" "${page}[attachment]" <<-EOF
+    theme_page - "Attachments: $title" <<-EOF
        <form class=upload method=POST enctype="multipart/form-data">
+         <h2>Upload</h2>
          <input type=hidden name=session_id value="$SESSION_ID">
          <input type=file name=file multiple>
          <button type=submit name=action value=upload>Upload</button>
        </form>
        
-       <form method=POST><ul class="attachment list">
+       <form method=POST>
+         <h2>Attachments</h2>
          <input type=hidden name=session_key value="$SESSION_KEY">
+          <input checked type=radio class=tab name=attachaction value=view id=tview><label for=tview>View</label>
+          <input         type=radio class=tab name=attachaction value=del  id=tdel ><label for=tdel >Delete</label>
+          <input         type=radio class=tab name=attachaction value=move id=tmove><label for=tmove>Move</label>
+          <input         type=radio class=tab name=attachaction value=ren  id=tren ><label for=tren >Rename</label>
+          <ul class="attachment list tab">
        $(for file in "$_EXEC/pages/$page/#attachments"/* "$_DATA/pages/$page/#attachments"/*; do
          [ "$file" = "$_EXEC/pages/$page/#attachments/${file##*/}" \
                -a -f "$_DATA/pages/$page/#attachments/${file##*/}" ] && continue
          stat="$(stat -c '%s %Y' -- "$file" 2>&-)" || continue
          size="${stat% *}" date="${stat#* }"
+          hfile="$(HTML "${file##*/}")"
        
-         printf '<li><button type=submit name=delete value="%s">Delete</button><a class=name href="%s">%s</a>
-                 <span class=size>%s</span><span class=date>%s</span></li>' \
-           "$(HTML "${file##*/}")" "$(HTML "${file##*/}")" "$(HTML "${file##*/}")" \
-           "$(size_human "$size")" "$(date -d @"$date" +"%F %T")"
+         printf '<li><input id="select_%s" type=checkbox name=select value="%s">
+                   <label class=name for="select_%s">%s</label>
+                   <input class=name name="rename_%s" value="" placeholder="%s" />
+                   <a class=name href="[attachment]/%s">%s</a>
+                   <span class=size>%s</span>
+                   <span class=date>%s</span>
+                 </li>' \
+                "$hfile" "$hfile" "$hfile" "$hfile" \
+                "$hfile" "$hfile" "$hfile" "$hfile" \
+                "$(size_human "$size")" "$(date -d @"$date" +"%F %T")"
        done)
-       </ul></form>
+         </ul>
+         <button type=submit name=action value=delete>Delete</button>
+         <button type=submit name=action value=move  >Move</button>
+         <button type=submit name=action value=rename>Rename</button>
+       </form>
        EOF
   else
-    theme_page - "Attachments: $title" "${page}[attachment]" <<-EOF
+    theme_page - "Attachments: $title" <<-EOF
        <ul class="attachment list">
        $(for file in "$_EXEC/pages/$page/#attachments"/* "$_DATA/pages/$page/#attachments"/*; do
          [ "$file" = "$_EXEC/pages/$page/#attachments/${file##*/}" \
                -a -f "$_DATA/pages/$page/#attachments/${file##*/}" ] && continue
          stat="$(stat -c '%s %Y' -- "$file" 2>&-)" || continue
          size="${stat% *}" date="${stat#* }"
+          hfile="$(HTML "${file##*/}")"
        
          printf '<li><a class=name href="%s">%s</a>
                  <span class=size>%s</span><span class=date>%s</span></li>' \
-           "$(HTML "${file##*/}")" "$(HTML "${file##*/}")" "$(size_human "$size")" "$(date -d @"$date" +"%F %T")"
+                "$hfile" "$hfile" "$(size_human "$size")" "$(date -d @"$date" +"%F %T")"
        done)
        </ul>
        EOF