]> git.plutz.net Git - serve0/blobdiff - list.sh
localize function variables
[serve0] / list.sh
diff --git a/list.sh b/list.sh
index fa657d10415d6a3deb4968799b93c874346190a5..03b9845e934c9f966c58f69b78af57f51670b6be 100644 (file)
--- a/list.sh
+++ b/list.sh
@@ -1,8 +1,10 @@
 #!/bin/sh
 
 . "$_EXEC/indexmeta.sh"
+. "$_EXEC/widgets.sh"
 
 list_item() {
+  local name path length width height tags comment n
   name="$(HTML "$1")"
   path="$(HTML "$ITEM/$1")"
 
@@ -36,6 +38,7 @@ list_fs_browse(){
   )
 }
 list_fs_index(){
+  local d
   find "$_DATA/$ITEM" -type d -name .index \
   | while d="$(line)"; do
     meta_dir "${d%/.index}"
@@ -47,6 +50,7 @@ list_fs_index(){
 }
 
 list_browse(){
+  local meta f fn file
   meta="$_DATA/$ITEM/.index/meta"
   meta_dir "$_DATA/$ITEM"
   (cd "$_DATA/$ITEM";
@@ -54,10 +58,16 @@ list_browse(){
   ) | cut -d/ -f2- | sort
   sort -n "$meta" | cut -f6- \
   | while f="$(line)"; do
-    [ -e "$_DATA/$ITEM/$f" ] && printf '%s\n' "$f"
+    fn="$(UNSTRING "${f#*      }")"; fn="${fn%${CR}}";
+    file="$(printf '%s\n' "$_DATA/$ITEM/${fn}".*)"
+    file="${file##*/}"
+    [ -e "$_DATA/$ITEM/${file}" ] \
+    && printf '%s\n' "${file}"
   done
 }
+
 list_index(){
+  local meta base fn file
   (cd "$_DATA/$ITEM";
     find ./ -path '*/.index/meta'
   ) | while meta="$(line)"; do
@@ -65,10 +75,11 @@ list_index(){
     meta_dir "$_DATA/$ITEM/$base"
     cut -f1,6- <"$_DATA/$ITEM/$meta" \
     | while f="$(line)"; do
-      fn="$(printf '%s\n' "$_DATA/$ITEM/$base/${f#*    }".*)"
-      fn="${fn%%${BR}*}"; fn="${fn##*/}"
-      [ -e "$_DATA/$ITEM/$base/${fn}" ] \
-      && printf '%s    %s\n' "${f%%    *}" "${base}/${fn}"
+      fn="$(UNSTRING "${f#*    }")"; fn="${fn%${CR}}";
+      file="$(printf '%s\n' "$_DATA/$ITEM/$base/${fn}".*)"
+      file="${file##*/}"
+      [ -e "$_DATA/$ITEM/$base/${file}" ] \
+      && printf '%s    %s\n' "${f%%    *}" "${base}/${file}"
     done
   done \
   | sort -n \
@@ -76,6 +87,7 @@ list_index(){
 }
 
 list_items() {
+  local mode
   mode="$(COOKIE mode |grep -m1 -xE 'index|browse' || printf browse )"
 
   [ "$mode" = browse -a "$ITEM" ] && printf '..\n'
@@ -96,6 +108,7 @@ list_items() {
 }
 
 list_paginate() {
+  local page i c n
   page="$(GET p |grep -xE '[0-9]+' || printf 1)"
 
   printf '[div .itemlist '
@@ -117,33 +130,6 @@ list_paginate() {
   printf ']'
 }
 
-w_tagging(){
-  printf '[div #multitag [input type="hidden" name="ref" value="%s"]' "$(HTML "$REQUEST_URI")"
-  printf '[a href="#" Hide][br]'
-  tags="$(find "$_DATA/$ITEM" -path '*/.index/meta' -exec cut -f4 '{}' + \
-          | cut -d= -f2- |tr , '\n' | sort -u)"
-  tags="$(UNSTRING "$tags")"
-
-  printf '[fieldset [legend %s:][select name=tag size=4 multiple' "Tags"
-  printf %s "$tags" |grep -vF ":" |grep -vxF '' \
-  | while read -r tag; do
-    printf '[option value="%s" %s]' "$(HTML "$tag")" "$(HTML "$tag")"
-  done
-  printf ']]'
-
-  printf %s "$tags" |cut -sd: -f1 |sort -u \
-  | while read -r category; do
-    printf '[fieldset [legend %s:][select name=tag size=4 multiple' "$(HTML "$category")"
-    printf %s "$tags" |grep -wF "${category}" \
-    | while read -r tag; do
-      printf '[option value="%s" %s]' "$(HTML "$tag")" "$(HTML "${tag#*:}")"
-    done
-    printf ']]'
-  done
-
-  printf '[fieldset [legend New:][textarea name=newtag\n][button type=Submit Add Tags]]]'
-}
-
 printf 'Content-Type: text/html;charset=utf-8\r\n\r\n'
 
 "$_EXEC/cgilite/html-sh.sed" <<-EOF