]> git.plutz.net Git - busy/blob - templates/Wiki_list.page
relative URI syntax in form actions, link references and redirects
[busy] / templates / Wiki_list.page
1 #!/bin/zsh
2
3 list_search(){
4   if [ -n "$search" ]; then
5     echo "<h1>Wiki search results for: $search</h1>"
6     for each in $(grep -ile "$search" Wiki/<0000000000-9999999999>_<000-999>); do
7       echo "<div class='search'><a href='?p=Wiki&amp;i=${each:t}'><h2>$(grep '^title=' "$each.meta" |cut -d= -f2-)</h2></a>"
8       grep -C1 -ie "$search" "$each" |sed "s:$search:<b>&</b>:g;s:$:<br>:g"
9       echo '</div>'
10     done
11     echo '<hr>'
12   fi
13 }
14
15 change_wiki(){
16   info="$1"
17
18   cat <<WikiEND
19       <div id="change_$info" style="display: none;">
20         <form action="./?action=wikimeta&i=$info" method="post" accept-charset="UTF-8">
21           <b>Title:</b> <input type="text" name="title" value="$title"><br>
22           <b>Description:</b><br>
23           <textarea name="desc" rows="6" style="width:100%;">$description</textarea><br>
24           <input type="submit" value="Submit">
25           <a class="function" href="#" onclick="javascript:hide_screen('change_$info');show_screen('display_$info');">Cancel</a>
26         </form>
27       </div>
28 WikiEND
29 }
30
31 add_page() {
32   cat <<WikiEND
33     <a id='addp_button' class='function' href='#' onclick='javascript:show_screen("add_page");hide_screen("addp_button");'>Add a new Page</a>
34     <div id="add_page" style="display: none;">
35       <form action="./?action=wikimeta" method="post" accept-charset="UTF-8">
36         <br><b>Title:</b><br>
37         <input type="text" name="title" placeholder="Fill in a title"><br>
38         <b>Description:</b><br>
39         <textarea name="desc" rows="6" ></textarea><br>
40         <input type="submit" value="Submit">
41         <a class="function" href="#" onclick="javascript:hide_screen('add_page');show_screen('addp_button');">Cancel</a>
42       </form>
43     </div>
44 WikiEND
45 }
46
47 list_wikis(){
48   stat -c '' Wiki/<0000000000-9999999999>_<000-999> \
49   && for each in Wiki/<0000000000-9999999999>_<000-999>; do
50     info=$(sed 's,Wiki/,,' <<<"$each")
51     title="$(egrep -x 'title=.+' "$each.meta" |cut -d= -f2- || echo '(Untitled)')"
52     description="$(egrep -x 'description=.+' "$each.meta" |cut -d= -f2-)"
53     owner="$(egrep -x 'owner=.+' "$each.meta" |cut -d= -f2-)"
54
55     cat <<WikiEND
56     <div class="article">
57       <div id="display_$info">
58         <a name="$info" href="./?p=Wiki&amp;i=$info"><h1>$title</h1></a>
59         $description<br><br>
60         <a class="function" href="./?p=Wiki&amp;i=$info">View</a> 
61         $($ACL_WIKIEDIT && echo "<a class='function' href='#' onclick=\"javascript:show_screen('change_$info');hide_screen('display_$info');\">Change Info</a>")
62       </div>
63       $($ACL_WIKIEDIT && change_wiki $info)
64     </div>
65 WikiEND
66   done
67 }
68
69 cat <<WikiEND
70     <div id="LEFT">
71       <form method="GET" action="./" accept-charset="utf-8">
72         <input type="hidden" name="p" value="Wiki">
73         <input type="text" name="s" placeholder="Search"><br>
74         <input type="submit" value="Search Wiki">
75       </form>
76       <hr>
77       $(list_search)
78     </div><div id="RIGHT">
79       $($LOGIN && add_page)
80     </div><div id="MAIN">
81       $(list_wikis)
82     </div>
83 WikiEND