X-Git-Url: http://git.plutz.net/?a=blobdiff_plain;f=widgets.sh;h=7c945d6ad3baf954928a47ab862adcca1dee5f04;hb=b9eab7e6648bd2aabf00bed5cf274fd6d5118d93;hp=5a73148c2c40328524e274520663aa45da3c394e;hpb=1dd87fbd99fe1362e394556dcee4bc8fa88a515f;p=serve0 diff --git a/widgets.sh b/widgets.sh index 5a73148..7c945d6 100644 --- a/widgets.sh +++ b/widgets.sh @@ -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-0-0-g; s-1-1-g; s-2-2-g; s-3-3-g; s-4-4-g; s-5-5-g; s-6-6-g; s-7-7-g; s-8-8-g; s-9-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;,\;;&[wbr];g;')" \ "$search" "$filter" \ @@ -113,7 +125,7 @@ w_bookmarks(){ w_search(){ printf ' - [form #search method=GET action=? + [form #search method=GET action=./? [select name=o size=1 [option disabled=disabled Order By] [option value=Name %s Name] @@ -232,6 +244,15 @@ w_advsearch(){ "$w_colength" "$w_cogroup" } +w_delete(){ + printf '[a href="#multitag" Add Tags / Remove Tags] + [div #multitag [input type="hidden" name="ref" value="%s"] + [a href="#" Hide][br] + [fieldset [legend New:] + [submit "op" "filedelete" Delete Files] + ]]' "$w_refuri" +} + w_tagging(){ local tag category d printf '[a href="#multitag" Add Tags / Remove Tags]