]> git.plutz.net Git - serve0/commitdiff
Use page titles based on content
authorPaul Hänsch <paul@plutz.net>
Sat, 26 Jan 2019 18:48:25 +0000 (19:48 +0100)
committerPaul Hänsch <paul@plutz.net>
Sat, 26 Jan 2019 18:48:25 +0000 (19:48 +0100)
list.sh
view.sh
widgets.sh

diff --git a/list.sh b/list.sh
index 08cef51f1cf36ff9365347774d03ab378c6050eb..cdb99e006a588412c4866ed4d1eaa7682acf445b 100644 (file)
--- a/list.sh
+++ b/list.sh
@@ -209,7 +209,10 @@ printf 'Content-Type: text/html;charset=utf-8\r\n\r\n'
 
 { printf '
 [!DOCTYPE HTML]
-[html [head [title Listing]
+[html [head [title '
+  w_bmname
+  printf ' by %s]' "$ORDER"
+  printf '
   [meta name="viewport" content="width=device-width"]
   [link rel=stylesheet href="/style.css" ]
 ] [body
diff --git a/view.sh b/view.sh
index 887876d9beefe810f0213645b01b2502c3a5fa0a..4ee5fb590ec6d731a3f256b03064f4dc77bd9a59 100644 (file)
--- a/view.sh
+++ b/view.sh
@@ -11,7 +11,9 @@ printf 'Content-Type: text/html;charset=utf-8\r\n\r\n'
 
 { printf '
 [!DOCTYPE HTML]
-[html [head [title View]
+[html [head [title \n'
+  HTML "${ITEM##*/}"
+  printf ']
   [meta name="viewport" content="width=device-width"]
   [link rel=stylesheet href="/style.css" ]
 ] [body #view
index a4ec856e296cb6a8069bf1e3cf94f3de36710f8e..25ec01e9c05bcfdd78b2a0d965dfafdc7c3bbf20 100644 (file)
@@ -7,6 +7,9 @@ include_widgets="$0"
 
 w_refuri="$(URL "$PATH_INFO")?$(HTML "$QUERY_STRING")"
 
+w_str_s="$(STRING "$SEARCH")"
+w_str_f="$(STRING "$FILTER")"
+
 w_ascii='
   s-&#48;-0-g; s-&#49;-1-g; s-&#50;-2-g; s-&#51;-3-g; s-&#52;-4-g; s-&#53;-5-g;
   s-&#54;-6-g; s-&#55;-7-g; s-&#56;-8-g; s-&#57;-9-g;
@@ -58,23 +61,33 @@ fi
 [ "$ORDER" = Length ] && w_colength=checked
 [ "$ORDER" = Group  ] && w_cogroup=checked
 
+w_bmname=
+w_bmname(){
+  [ "$w_bmname" ] || w_bmname="$(
+    bm="$_DATA/.index/bookmarks"
+    name="$(grep -m1 -aF "     search=${w_str_s}       filter=${w_str_f}${CR}" "$bm" 2>&-)"
+
+    if [ "$name" ]; then
+      printf '%s' "$name" |cut -f1 |UNSTRING |HTML
+    else
+      printf '%s\t%s' "$SEARCH" "$FILTER" \
+      | sed -r '/^\t$/{  s;\t;All;; q;}
+                /.*\t$/{ s;\t$;;; q;}
+                /^\t.*/{ s;^\t;;;
+                         :x; s;(^|[~^|])([^|^~:]+):;\1;; tx;
+                         s;\^; and ;g; s;\|;,;g; s;~;not ;g; q;}' \
+      | HTML
+    fi
+  )"
+  printf '%s' "$w_bmname"
+}
+
 w_bookmarks(){
-  local name='' cf='' cs='' bm="$_DATA/.index/bookmarks" proposed_name=''
+  local bm="$_DATA/.index/bookmarks" name='' search='' filter=''
   [ ! -d "${bm%/*}" ] && return 0
   [ ! -f "$bm" ] && touch "$bm"
 
-  [ "$SEARCH" ] && cs="$(STRING "$SEARCH")"
-  [ "$FILTER" ] && cf="$(STRING "$FILTER")"
-
-  name="$(grep -m1 -aF "       search=$cs      filter=$cf${CR}" "$bm" |cut -f1 |UNSTRING)"
-  [ ! "$name" ] && proposed_name="$(
-    printf '%s\t%s' "$SEARCH" "$FILTER" \
-    |sed -r '/^\t$/{  s;\t;All;; q;}
-             /.*\t$/{ s;\t$;;; q;}
-             /^\t.*/{ s;^\t;;;
-                      :x; s;(^|[~^|])([^|^~:]+):;\1;; tx;
-                      s;\^; and ;g; s;\|;,;g; s;~;not ;g; q;}'
-    )"
+  grep -qaF "  search=$w_str_s filter=${w_str_f}${CR}" "$bm" && name=Update || name=Add
 
   printf '[form #bookmarks action=?a=bookmark method=POST
             [a href="#" x]
@@ -85,22 +98,21 @@ w_bookmarks(){
             [button type="submit" %s]' \
             "$w_refuri" \
             "$(HTML "$SEARCH")" "$(HTML "$FILTER")" \
-            "$(HTML "${name:-${proposed_name}}")" \
-            "${name:+Update}${proposed_name:+Add}"
+            "$(w_bmname)" "${name}"
   [ "$name" ] && printf ' [submit "delete" "delete" Delete]'
 
   sort "$bm" |while read -r name search filter; do
     search="${search#search=}" filter="${filter#filter=}" filter="${filter%${CR}}"
-    [ "$search" = "${cs}" -a "$filter" = "${cf}" ] && continue
+    [ "$search" = "${w_str_s}" -a "$filter" = "${w_str_f}" ] && continue
 
     name="$(UNSTRING "$name")";
     search="$(UNSTRING "${search}" |URL)";
     filter="$(UNSTRING "${filter}" |URL)";
     printf '[label .link %s]
-            [a .link target=blank href="?o=Name&s=%s&f=%s" by Name]
-            [a .link target=blank href="?o=Date&s=%s&f=%s" by Date]
-            [a .link target=blank href="?o=Length&s=%s&f=%s" by Length]
-            [a .link target=blank href="?o=Group&s=%s&f=%s" by Group]
+            [a .link target=blank href="/?o=Name&s=%s&f=%s" by Name]
+            [a .link target=blank href="/?o=Date&s=%s&f=%s" by Date]
+            [a .link target=blank href="/?o=Length&s=%s&f=%s" by Length]
+            [a .link target=blank href="/?o=Group&s=%s&f=%s" by Group]
             [br]' \
             "$(HTML "$name" |sed 's;&#44\;;&[wbr];g;')" \
             "$search" "$filter" \