${description}
EOF
rm "${_DATA}/cache/$info.cache" 2>/dev/null
- rm ${_DATA}/cache/*[0-9]\?* 2>/dev/null
+ rm ${_DATA}/cache/\?* 2>/dev/null
rm ${_DATA}/cache/taglist 2>/dev/null
fi
[ -z "$n" ] && n=0 || n=$(($n + 1))
done
-rm "${_DATA}"/cache/*[0-9]\?* 2>/dev/null
+rm "${_DATA}"/cache/\?* 2>/dev/null
[ -n "${_POST[tags]}" ] && rm "${_DATA}"/cache/taglist 2>/dev/null
redirect "?o=$order&s=$search&f=$filter&pn=$page"
order="${_GET[o]}" #validated
page="${_GET[pn]}" #validated
pagesize="${_COOKIE[pagesize]}" #validated
+pagecount=0
page_link=''
[ -n "$info" ] && page_link="i=$(urlsafe "$info")&"
esac
}
-thumblist() {
- cachebase="${pagesize}?o=${order}&s=${search//\//}&f=${filter//\//}&pn=${page}"
+selectionlist() {
+ cachebase="?o=${order}&s=${search//\//}&f=${filter//\//}"
cache="${_DATA}/cache/${cachebase}"
if [ "$cache" -nt ${_DATA}/videos -a "$cache" -nt ${_DATA}/meta ]; then
cat "$cache"
debug "No search or filtering"
cat
fi \
- | sed -n "$page,$(($page + $pagesize - 1))p" \
| tee "$cache"
- fi \
+ fi
+}
+
+thumblist() {
+ selectionlist \
+ | sed -n "$page,$(($page + $pagesize - 1))p" \
| while read line; do
_printVideo "$line"
done
}
+
+pagecount="$(( $(selectionlist | wc -l) / $pagesize ))"
.pagination_nav {
display: inline-block;
- border: none;
position: absolute;
- right: 1em;
- bottom: .25em;
- width: 3.5em;
- padding-top: .125em;
+ border: none;
+ right: 0; bottom: .25em;
+ padding: .125em .5em 0 0;
+}
+
+.pagination_nav a {
+ display: none;
+ margin: 1ex 1px;
+ padding: 0 1ex;
+ text-decoration: none;
+}
+
+.pagination_nav a.current {
+ display: inline;
+ color: #F66;
+ font-weight: bold;
+}
+.pagination_nav:hover {
+ position: fixed;
+ bottom: auto;
+ text-align: right;
+ background-color: #333;
+ border-bottom: 1px solid #FFF;
+ line-height: 1.75em;
+ transition: none;
+}
+.pagination_nav:hover a {
+ display: inline;
}
/* == Panels == */
display: block;
width: 100%;
margin: 0;
- padding: .25em 1em;
- padding-right: 4em;
+ padding: .25em .5em;
background-color: #333;
border-width: 1px;
border-style: none none solid none;
}
-@media(min-width: 620px){
- .panel {padding-right: 8em;}
- .pagination_nav { width: auto;}
-}
-
a.panel {
font-weight: bold;
display: inline-block;
border: none;
width: auto;
- padding-right: 1em;
+ padding: 0;
+ margin-right: 1em;
+ margin-bottom: 1ex;
}
.panel .help { display: block;}
.panel#foot {
position: fixed;
bottom: 0px;
- min-height: 2em;
border-style: solid none none none;
}
/* == Switchable Panels == */
-.panel#advfilter,
-.panel#tagger,
-.panel#preferences {
+form.panel,
+div.panel {
z-index: 1;
overflow: hidden;
min-height: 0; max-height: 0;
padding-top: 0; padding-bottom: 0;
}
-.panel#advfilter:target,
-.panel#tagger:target,
-.panel#preferences:target {
+
+.panel#search,
+.panel#foot {
+ max-height: 100%;
+ z-index: 0;
+ padding: .25em 6em 0 .5em;
+}
+
+.panel:target {
max-height: 100%;
overflow-y: scroll;
}
.panel#advfilter:target{ padding-bottom: 1em; }
-
/* == Panel Switches == */
+.panel#playctl a.panel,
.panel#advfilter a.panel,
.panel#preferences a.panel,
.panel#tagger a.panel {
#advfilter .quicklinks * {
display: block;
word-wrap: break-word;
+ margin-bottom: .75em;
}
/* == Thumblist == */
-# Copyright 2014, 2015 Paul Hänsch
+# Copyright 2014 - 2016 Paul Hänsch
#
# This file is part of Serve0
#
<form class="panel" id="search" action="?" method="get" accept-charset="UTF-8">
<input type="text" name="s" value="$search" placeholder="Search">
- <label for="o1" class="order">Order by:</label>
<select class="order" size="1" name="o" id="o1">
+ <option class="label" selected disabled>Order by</option>
<option>Name</option>
<option>Date</option>
<option>Length</option>
</select>
- <input type="submit" name="submit" value="Find">
+ <!-- input type="submit" name="submit" value="Find" -->
<a class="panel clearsearch" href="?">Clear All</a>
<a class="panel toggle" href="#advfilter">Advanced</a>
+ <a class="panel toggle" href="#playctl">Player</a>
<div class="pagination_nav">
<label>Page:</label>
- <a href="?${page_prev}"><<</a>
- <a href="?${page_this}">$(($page / $pagesize + 1))</a>
- <a href="?${page_next}">>></a>
+ $(seq 1 $pagecount \
+ | while read pn; do
+ plink="$(($pn * $pagesize - $pagesize + 1))"
+ printf '<a %s href="?%spn=%s">%s</a>\n' "$([ $plink = $page ] && printf class=current)" "$page_link" "$plink" "$pn"
+ done
+ )
</div>
</form>
+ <div class="panel" id="playctl">
+ <a class="panel toggle" href="#">Hide</a>
+ <form action="?action=playctl" method="post">
+ <button type="submit" name="seek" value="-60"><<<</button>
+ <button type="submit" name="seek" value="-10"><<</button>
+ <button type="submit" name="ctl" value="stop">■</button>
+ <button type="submit" name="ctl" value="pause">|| / ▶</button>
+ <button type="submit" name="seek" value="+10">>></button>
+ <button type="submit" name="seek" value="+60">>>></button>
+ <br>
+ <button type="submit" name="amp" value="off">Amp Off</button>
+ <button type="submit" name="amp" value="on">Amp On</button>
+ <br>
+ $(for n in $(seq 0 5 100); do
+ printf '<button class="%s" type="submit" name="vol" value="%s"> </button>' "$([ "$volume" = "$n" ] && printf selected)" "$n"
+ done)
+ <br>
+ <button type="submit" name="osd" value="progression">Progress</button>
+ </form>
+ </div>
+
+
<form action="?action=multitag&${page_this}" method="post" accept-charset="UTF-8">
<ul id="thumblist">
$(thumblist)
<div class="pagination_nav">
<label>Page:</label>
- <a href="?${page_prev}"><<</a>
- <a href="?${page_this}">$(($page / $pagesize + 1))</a>
- <a href="?${page_next}">>></a>
+ $(seq 1 $pagecount \
+ | while read pn; do
+ plink="$(($pn * $pagesize - $pagesize + 1))"
+ printf '<a %s href="?%spn=%s">%s</a>\n' "$([ $plink = $page ] && printf class=current)" "$page_link" "$plink" "$pn"
+ done
+ )
</div>
</div>
<input type="submit" name="submit" value="Find">
<a class="panel clearsearch" href="?">Clear All</a>
- <a class="panel" href="${info:+?p=list&${page_this}}${info:-?p=tree&d=${directory}&${page_this}}#$(urlsafe $info)">Dismiss</a>
+ <a class="panel" href="${info:+?p=list&${page_this}}${directory:+?p=tree&d=${directory}&${page_this}}#$(urlsafe $info)">Dismiss</a>
<div class="pagination_nav">
<label>Page:</label>