]> git.plutz.net Git - confetti/blobdiff - templates/frame.html.sh
filter pages accessible in bookmarker
[confetti] / templates / frame.html.sh
index b1dbef6062166c717979366ee567df98b6ba1343..a2d8feefe579e5bd95222de7089247fcce26f78a 100755 (executable)
@@ -1,4 +1,6 @@
-# Copyright 2014 Paul Hänsch
+#!/bin/zsh
+
+# Copyright 2014, 2015, 2017 Paul Hänsch
 #
 # This file is part of Confetti.
 # 
 # You should have received a copy of the GNU Affero General Public License
 # along with Confetti.  If not, see <http://www.gnu.org/licenses/>. 
 
+. "${_EXEC}/templates/text_frame.sh"
+[ -x "${_EXEC}/templates/text_${PAGE}.sh" ] && . "${_EXEC}/templates/text_${PAGE}.sh"
+
+bmfile="${_DATA}/mappings/bookmarks"
+
 cat <<EOF
 <!Doctype HTML>
 
 <html>
   <head>
-    <title>$($PAGE title)</title>
-    <style type="text/css">
-    <!--
-body {
-  background: #EEE;
-  margin: 0;
-  padding: 2.5em 0 0 0;
-}
-.NAVIGATION {
-  position: fixed;
-  top: 0;
-  display: inline-block;
-  height: 1.5em;
-  border-style: none solid solid solid;
-  border-width: 0 1px 1px 1px;
-  border-radius: 0 0 4px 4px;
-  margin-top: 0;
-  margin-left: 3%;
-  padding: .5em 1ex .25em 1ex;
-  background: #FFF;
-}
-.NAVIGATION a {
-  color: #008;
-  border-style: solid;
-  border-width: 1px;
-  border-color: #BBF;
-  margin: .5em .5ex .25em .5ex;
-  padding: .2em 3ex .2em 3ex;
-  background: #EFF;
-}
-.NAVIGATION a:hover {
-  border-width: 2px 1px 2px 1px;
-  background: #F3FFFF;
-}
-
-
-    $(. $PAGE css)
-    -->
-    </style>
+    <title>$(l10n p_${PAGE})</title>
+    <meta name="viewport" content="width=device-width">
+    <link rel="stylesheet" href="?static=common.css">
+    <link rel="stylesheet" href="?static=${PAGE}.css">
   </head>
-  <body>
+  <body class="$PAGE">
     <div class="NAVIGATION">
-      $(NAVIGATION |sed -r 's:^([^ ]+) (.+)$:<a href="\1">\2</a>:g')
-    </div>
-    <div class="MAIN">
-      $(. $PAGE body)
+      $(sed -rn '/^[^ ]+\t[^ ]+$/p' "$bmfile" \
+        | while read page name; do
+        printf '<a href="%s">%s</a>' "${page}" "${name}"
+      done)
+      <input  id="navigationconfig" class="config" type="checkbox" />
+      <label for="navigationconfig">$(l10n nc_edit)</label>
+      <form class="config" method="POST" action="?action=update_bookmarks">
+        $(for page in "${_EXEC}/pages/"*.sh; do
+          page="${page##*/}"
+          page="${page%.sh}"
+          printf '<a href="?p=%s">%s</a>\n' "${page}" "$(l10n "p_${page}")"
+        done |grep -E '^<a href="\?p='"${page_filter}" )
+        $(if grep -qF "$REQUEST_URI" "$bmfile"; then
+          printf '<input type="hidden" name="bm_url" value="%s" />
+                  <input type="text" name="bm_name" value="%s" readonly="readonly" /
+                  ><button type="submit" name="submit" value="del">%s</button>' \
+                  "$(attribsafe ${REQUEST_URI})" \
+                  "$(attribsafe $(grep -m1 -F "$REQUEST_URI    " "$bmfile" |sed -r 's;.*\t;;'))" \
+                  "$(l10n bm_del)"
+        else
+          printf '<input type="hidden" name="bm_url" value="%s" />
+                  <input type="text" name="bm_name" placeholder="%s" /
+                  ><button type="submit" name="submit" value="add">%s</button>' \
+                  "$(attribsafe ${REQUEST_URI})" "$(l10n Bookmark)" "$(l10n bm_add)"
+        fi)
+      </form>
     </div>
-  </body>
-</html>
 EOF
 
+debug BODY; [ -x "${BODY}" ] && . "${BODY}" || printf %s 'Error'
+
+printf '</body></html>'
+
 # vi:set filetype=html: