]> git.plutz.net Git - serve0/blobdiff - templates/list.html.sh
quicker pagination interface
[serve0] / templates / list.html.sh
index 859878d7c8bb9b45be681ec2fbc690494777bf2b..0d6d65409300e88e91c8352a55adb70ea1304af5 100755 (executable)
@@ -35,11 +35,22 @@ cat <<EOF
       <label>Page:</label>
 EOF
 
+  pages="$(
   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"
+    
+    case "$plink" in
+      $(($page - $pagesize))) class=previous;;
+      $page) class=current;;
+      $(($page + $pagesize))) class=next;;
+      * ) class='';;
+    esac
+
+    printf '<a class="%s" href="?%spn=%s">%s</a>\n' "$class" "$page_link" "$plink" "$pn"
   done
+  )"
+  printf %s "$pages"
       
 cat <<EOF
     </div>
@@ -63,12 +74,7 @@ cat <<EOF
 
     <div class="pagination_nav">
       <label>Page:</label>
-      $(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
-       )
+      ${pages}
     </div>
   </div>