]> git.plutz.net Git - busy/blobdiff - templates/Wiki_list.page
porting busy to confetti framework
[busy] / templates / Wiki_list.page
diff --git a/templates/Wiki_list.page b/templates/Wiki_list.page
new file mode 100755 (executable)
index 0000000..317e45a
--- /dev/null
@@ -0,0 +1,83 @@
+#!/bin/zsh
+
+list_search(){
+  if [ -n "$search" ]; then
+    echo "<h1>Wiki search results for: $search</h1>"
+    for each in $(grep -ile "$search" Wiki/<0000000000-9999999999>_<000-999>); do
+      echo "<div class='search'><a href='?p=Wiki&amp;i=${each:t}'><h2>$(grep '^title=' "$each.meta" |cut -d= -f2-)</h2></a>"
+      grep -C1 -ie "$search" "$each" |sed "s:$search:<b>&</b>:g;s:$:<br>:g"
+      echo '</div>'
+    done
+    echo '<hr>'
+  fi
+}
+
+change_wiki(){
+  info="$1"
+
+  cat <<WikiEND
+      <div id="change_$info" style="display: none;">
+        <form action="/?action=wikimeta&i=$info" method="post" accept-charset="UTF-8">
+         <b>Title:</b> <input type="text" name="title" value="$title"><br>
+         <b>Description:</b><br>
+         <textarea name="desc" rows="6" style="width:100%;">$description</textarea><br>
+         <input type="submit" value="Submit">
+          <a class="function" href="#" onclick="javascript:hide_screen('change_$info');show_screen('display_$info');">Cancel</a>
+       </form>
+      </div>
+WikiEND
+}
+
+add_page() {
+  cat <<WikiEND
+    <a id='addp_button' class='function' href='#' onclick='javascript:show_screen("add_page");hide_screen("addp_button");'>Add a new Page</a>
+    <div id="add_page" style="display: none;">
+      <form action="/?action=wikimeta" method="post" accept-charset="UTF-8">
+        <br><b>Title:</b><br>
+       <input type="text" name="title" placeholder="Fill in a title"><br>
+        <b>Description:</b><br>
+        <textarea name="desc" rows="6" ></textarea><br>
+        <input type="submit" value="Submit">
+        <a class="function" href="#" onclick="javascript:hide_screen('add_page');show_screen('addp_button');">Cancel</a>
+      </form>
+    </div>
+WikiEND
+}
+
+list_wikis(){
+  stat -c '' Wiki/<0000000000-9999999999>_<000-999> \
+  && for each in Wiki/<0000000000-9999999999>_<000-999>; do
+    info=$(sed 's,Wiki/,,' <<<"$each")
+    title="$(egrep -x 'title=.+' "$each.meta" |cut -d= -f2- || echo '(Untitled)')"
+    description="$(egrep -x 'description=.+' "$each.meta" |cut -d= -f2-)"
+    owner="$(egrep -x 'owner=.+' "$each.meta" |cut -d= -f2-)"
+
+    cat <<WikiEND
+    <div class="article">
+      <div id="display_$info">
+        <a name="$info" href="/?p=Wiki&amp;i=$info"><h1>$title</h1></a>
+        $description<br><br>
+        <a class="function" href="/?p=Wiki&amp;i=$info">View</a> 
+        $($ACL_WIKIEDIT && echo "<a class='function' href='#' onclick=\"javascript:show_screen('change_$info');hide_screen('display_$info');\">Change Info</a>")
+      </div>
+      $($ACL_WIKIEDIT && change_wiki $info)
+    </div>
+WikiEND
+  done
+}
+
+cat <<WikiEND
+    <div id="LEFT">
+      <form method="GET" action="/${SCRIPTNAME}" accept-charset="utf-8">
+       <input type="hidden" name="p" value="Wiki">
+       <input type="text" name="s" placeholder="Search"><br>
+       <input type="submit" value="Search Wiki">
+      </form>
+      <hr>
+      $(list_search)
+    </div><div id="RIGHT">
+      $($LOGIN && add_page)
+    </div><div id="MAIN">
+      $(list_wikis)
+    </div>
+WikiEND