tazweb annotate data/bookmarks.cgi @ rev 149
Fix user bookmarks on first run
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Sun Apr 13 02:30:09 2014 +0200 (2014-04-13) |
parents | c2ec2ff2e813 |
children | e40064ab71b4 |
rev | line source |
---|---|
pankso@141 | 1 #!/bin/sh |
pankso@141 | 2 # |
pankso@141 | 3 # TazWeb Bookmarks CGI handler |
pankso@141 | 4 # Copyright (C) 2014 SliTaz GNU/Linux - BSD License |
pankso@141 | 5 # |
pankso@141 | 6 . /usr/lib/slitaz/httphelper.sh |
pankso@141 | 7 |
pankso@141 | 8 script="$SCRIPT_NAME" |
pankso@141 | 9 home="$(GET home)" |
pankso@141 | 10 user="$(basename $home)" |
pankso@141 | 11 config="/home/$user/.config/tazweb" |
pankso@141 | 12 bookmarks="$config/bookmarks.txt" |
pankso@141 | 13 |
pankso@141 | 14 # Security check |
pankso@141 | 15 if [ "$REMOTE_ADDR" != "127.0.0.1" ]; then |
pankso@141 | 16 echo "Security exit" && exit 1 |
pankso@141 | 17 fi |
pankso@141 | 18 |
pankso@141 | 19 # HTML 5 header with built-in minimal CSS |
pankso@141 | 20 html_header() { |
pankso@141 | 21 cat << EOT |
pankso@141 | 22 <!DOCTYPE html> |
pankso@141 | 23 <html lang="en"> |
pankso@141 | 24 <head> |
pankso@141 | 25 <meta charset="utf-8" /> |
pankso@141 | 26 <title>TazWeb - Bookmarks</title> |
pankso@141 | 27 <style type="text/css"> |
pankso@141 | 28 body { margin: 2% 10%; } .rm { color: #666; } ul { padding: 0; } |
pankso@141 | 29 .rm:hover { text-decoration: none; color: #B70000; } |
pankso@141 | 30 h1 { color: #666; border-bottom: 4px solid #666; } |
pankso@141 | 31 a { text-decoration: none; } a:hover { text-decoration: underline; } |
pankso@141 | 32 li { list-style-type: none; color: #666; line-height: 1.4em; padding: 0; } |
pankso@141 | 33 footer { font-size: 80%; border-top: 2px solid #666; padding: 5px 0; } |
pankso@149 | 34 textarea { width: 100%; height: 240px; font-size: 98%; } |
pankso@141 | 35 </style> |
pankso@141 | 36 </head> |
pankso@141 | 37 <body> |
pankso@141 | 38 <section id="content"> |
pankso@141 | 39 |
pankso@141 | 40 EOT |
pankso@141 | 41 } |
pankso@141 | 42 |
pankso@141 | 43 # HTML 5 footer |
pankso@141 | 44 html_footer() { |
pankso@141 | 45 cat << EOT |
pankso@141 | 46 |
pankso@141 | 47 </section> |
pankso@141 | 48 |
pankso@141 | 49 <footer> |
pankso@149 | 50 <a href="$script?home=$home">Bookmarks</a> |
pankso@149 | 51 - <a href="$script?raw&home=$home">Raw</a> |
pankso@149 | 52 - <a href="$script?edit&home=$home">Edit</a> |
pankso@141 | 53 </footer> |
pankso@141 | 54 |
pankso@141 | 55 </body> |
pankso@141 | 56 </html> |
pankso@141 | 57 EOT |
pankso@141 | 58 } |
pankso@141 | 59 |
pankso@141 | 60 # Handle GET actions: continue or exit |
pankso@141 | 61 |
pankso@141 | 62 case " $(GET) " in |
pankso@149 | 63 |
pankso@149 | 64 *\ edit\ *) |
pankso@149 | 65 header |
pankso@149 | 66 html_header |
pankso@149 | 67 cat << EOT |
pankso@149 | 68 <h1>Bookmarks Edit</h1> |
pankso@149 | 69 <form method="get" action="$script" name="edit"> |
pankso@149 | 70 <input type="hidden" name="save" /> |
pankso@149 | 71 <input type="hidden" name="home" value="$home" /> |
pankso@149 | 72 <textarea name="content">$(cat "$bookmarks")</textarea> |
pankso@149 | 73 <p><input type="submit" value="$(gettext "Save bookmarks")" /></p> |
pankso@149 | 74 </form> |
pankso@149 | 75 EOT |
pankso@149 | 76 html_footer && exit 0 ;; |
pankso@149 | 77 |
pankso@149 | 78 *\ save\ *) |
pankso@149 | 79 sed "s/$(echo -en '\r') /\n/g" > ${bookmarks} << EOT |
pankso@149 | 80 $(GET content) |
pankso@149 | 81 EOT |
pankso@149 | 82 ;; |
pankso@149 | 83 |
pankso@141 | 84 *\ raw\ *) |
pankso@141 | 85 # View bookmarks file |
pankso@141 | 86 header |
pankso@141 | 87 html_header |
pankso@149 | 88 echo '<h1>Raw Bookmarks</h1>' |
pankso@149 | 89 echo "<pre>" |
pankso@149 | 90 IFS="|" |
pankso@149 | 91 cat ${bookmarks} | cat ${bookmarks} | while read title url null |
pankso@149 | 92 do |
pankso@149 | 93 echo "$title | <a href='$url'>$url</a>" |
pankso@149 | 94 done |
pankso@149 | 95 unset IFS |
pankso@141 | 96 echo "</pre>" |
pankso@141 | 97 html_footer && exit 0 ;; |
pankso@149 | 98 |
pankso@141 | 99 *\ rm\ *) |
paul@144 | 100 # Remove a bookmark item and continue |
pankso@141 | 101 url=$(GET rm) |
pankso@141 | 102 [ "$url" ] || continue |
pankso@141 | 103 sed -i s"#.*${url}.*##" ${bookmarks} |
pankso@141 | 104 sed -i "/^$/"d ${bookmarks} ;; |
pankso@149 | 105 |
pankso@141 | 106 esac |
pankso@141 | 107 |
pankso@141 | 108 # Show all bookmarks |
pankso@141 | 109 header |
pankso@141 | 110 html_header |
pankso@141 | 111 echo '<h1>TazWeb Bookmarks</h1>' |
pankso@141 | 112 echo '<ul>' |
pankso@141 | 113 IFS="|" |
pankso@141 | 114 cat ${bookmarks} | while read title url null |
pankso@141 | 115 do |
pankso@141 | 116 cat << EOT |
pankso@141 | 117 <li><a class="rm" href="?rm=$url&home=$home">⊗<a/> |
pankso@141 | 118 <a href="${url}">${title}<a/></li> |
pankso@141 | 119 EOT |
pankso@141 | 120 done |
pankso@141 | 121 unset IFS |
pankso@141 | 122 echo '</ul>' |
pankso@141 | 123 html_footer |
pankso@141 | 124 |
pankso@141 | 125 exit 0 |