. "$_EXEC/widgets.sh"
list_item() {
- local name path length width height tags comment n
+ local name link path length width height tags comment n
name="$(HTML "$1")"
- path="$(URL "$ITEM/$1")"
+ link="$(URL "$ITEM/$1")"
+ path="$(HTML "$ITEM/$1")"
qry=$(HTML "$QUERY_STRING")
if [ -d "$_DATA/$ITEM/$1" ]; then
$(meta_info "$_DATA/$ITEM/$1")
EOF
printf '[div .list .file
- [a href="%s" [img src="%s?a=thumbnail"][label %s]]
+ [a href="%s" [img src="%s?a=thumbnail"]][label %s]
[span .time %i:%imin] [span .dim %ix%i] %s
- [checkbox "select" "%s" id="select_%s" form="multitag"][label for="select_%s" +]
+ [checkbox "select" "%s" id="select_%s"][label for="select_%s" +]
]' \
- "$path" "$path" "$name" \
+ "$link" "$link" "$name" \
"$((length / 60))" "$((length % 60))" \
"$width" "$height" \
"$(UNSTRING "${tags#tags=}" |tr , '\0' |xargs -r0 printf ' [span .tag %s]')" \
if [ $ORDER = Name ]; then
sort -k6 "$meta"
elif [ $ORDER = Length ]; then
- sort -n "$meta"
+ sort -n -k1 "$meta"
else
cat "$meta"
fi \
| if [ "$FILTER" ]; then
sed -nr "$list_fex"
elif [ "${SEARCH#!}" != "${SEARCH}" ]; then
- grep -viE "$(STRING "${SEARCH#!}")"
+ grep -aviE "$(STRING "${SEARCH#!}" |sed -r ':x s;((^|[^\\])(\\\\)*)\+;\1\\+;g; tx;')"
else
- grep -iE "$(STRING "${SEARCH}")"
+ grep -aiE "$(STRING "${SEARCH}" \
+ | sed -r ':x s;((^|[^\\])(\\\\)*)\+;\1 ;g; tx;
+ s;((^|[^\\])(\\\\)*)\\\+;\1+;g;
+ s; ;\\+;g;')"
fi |cut -f6 | UNSTRING \
| while read -r fn; do
printf '%s\n' "${base}/${fn%${CR}}"
- done
+ done | tee .index/debug
}
list_index(){
local meta
(cd "$_DATA/$ITEM";
find ./ -path '*/.index/meta'
- ) | while meta="$(line)"; do
+ ) | while read -r meta; do
list_filemeta "${meta%/.index/meta}"
done
}
list_items() {
local mode
- mode="$(COOKIE mode |grep -m1 -xE 'index|browse' || printf browse )"
+ mode="$(COOKIE mode |grep -m1 -axE 'index|browse' || printf browse )"
[ "$mode" = browse -a "$ITEM" ] && printf '..\n'
list_paginate() {
local page i c n end
- page="$(GET p |grep -xE '[0-9]+' || printf 1)"; c=1
+ page="$(GET p |grep -axE '[0-9]+' || printf 1)"; c=1
end=$((page + LISTSIZE))
printf '[div .itemlist '
[a #t_avsearch href="#advsearch" Advanced]
[a #t_prefs href="#prefs" ⚙]
]'
- w_prefs
+ w_bookmarks
w_advsearch
+ w_prefs
printf '
[form method=POST action="?a=multitag"'
list_items \