tazpanel annotate index.cgi @ rev 90

index.cgi: add edit button
author Pascal Bellard <pascal.bellard@slitaz.org>
date Thu Apr 14 13:14:34 2011 +0200 (2011-04-14)
parents 25602bc63ca7
children 783e2405d384
rev   line source
pankso@2 1 #!/bin/sh
pankso@2 2 #
paul@52 3 # Main CGI interface for TazPanel. In on word: KISS. Use the main css form
paul@52 4 # command so we are faster and do not load unneeded functions. If necessary
pankso@14 5 # you can use the lib/ dir to handle external resources.
pankso@2 6 #
pankso@42 7 # Copyright (C) 2011 SliTaz GNU/Linux - GNU gpl v3
pankso@42 8 #
pankso@2 9
pankso@14 10 # Common functions from libtazpanel
pankso@14 11 . lib/libtazpanel
pankso@14 12 get_config
pascal@81 13 header
pankso@2 14
pankso@22 15 # Include gettext helper script.
pankso@22 16 . /usr/bin/gettext.sh
pankso@22 17
pankso@22 18 # Export package name for gettext.
pankso@39 19 TEXTDOMAIN='tazpanel'
pankso@22 20 export TEXTDOMAIN
pankso@22 21
pankso@2 22 #
pankso@49 23 # Things to do before displaying the page
pankso@49 24 #
pankso@49 25
pascal@81 26 [ -n "$(GET panel_pass)" ] &&
pascal@81 27 sed -i s@/:root:.*@/:root:$(GET panel_pass)@ $HTTPD_CONF
pankso@49 28
pankso@49 29 #
pankso@2 30 # Commands
pankso@2 31 #
pankso@2 32
pascal@81 33 case " $(GET) " in
pascal@81 34 *\ file\ *)
pankso@56 35 #
paul@60 36 # Handle files (may have an edit function, we will see)
pankso@56 37 #
pankso@56 38 TITLE="- File"
pankso@56 39 xhtml_header
pascal@81 40 file="$(GET file)"
pascal@81 41 echo "<h2>$file</h2>"
pascal@90 42 if [ "$(GET action)" == "edit" ]; then
pascal@90 43 cat <<EOT
pascal@90 44 <form method="post" action="/index.cgi?file=$file">
pascal@90 45 <img src="/styles/default/images/edit.png" />
pascal@90 46 <input type="submit" value="`gettext "Save"`">
pascal@90 47 <textarea name="content" rows="30" style="width: 100%;">
pascal@90 48 $(cat $file)
pascal@90 49 </textarea>
pascal@90 50 </form>
pascal@90 51 EOT
pascal@90 52 else
pascal@90 53 [ -n "$(POST content)" ] &&
pascal@90 54 sed "s/`echo -en '\r'` /\n/g" > $file <<EOT
pascal@90 55 $(POST content)
pascal@90 56 EOT
pascal@90 57 cat <<EOT
pascal@90 58 <div id="actions">
pascal@90 59 <a class="button" href='/index.cgi?file=$file&action=edit'>
pascal@90 60 <img src="/styles/default/images/edit.png" />`gettext "Edit"`</a>
pascal@90 61
pascal@90 62 </div>
pascal@90 63 <pre>
pascal@90 64 EOT
pascal@90 65 # Handle file type by extension as a Web Server does it.
pascal@90 66 case "$file" in
pascal@90 67 *.conf|*.lst)
pascal@90 68 syntax_highlighter conf ;;
pascal@90 69 *.sh|*.cgi)
pascal@90 70 syntax_highlighter sh ;;
pascal@90 71 *)
pascal@90 72 cat ;;
pascal@90 73 esac < $file
pascal@90 74 echo '</pre>'
pascal@90 75 fi ;;
pascal@81 76 *\ debug\ *)
pankso@53 77 TITLE="- Debug"
pankso@53 78 xhtml_header
pankso@55 79 echo '<h2>HTTP Environment</h2>'
pankso@55 80 echo '<pre>'
pascal@81 81 httpinfo
pankso@55 82 echo '</pre>' ;;
pankso@2 83 *)
pankso@14 84 #
pankso@2 85 # Default xHTML content
pankso@14 86 #
pankso@8 87 xhtml_header
pascal@81 88 [ -n "$(GET gen_locale)" ] && new_locale=$(GET gen_locale)
pascal@81 89 [ -n "$(GET rdate)" ] && echo ""
pankso@2 90 cat << EOT
pankso@13 91 <div id="wrapper">
pankso@14 92 <h2>`gettext "Host:"` `hostname`</h2>
paul@52 93 <p>`gettext "SliTaz administration and configuration Panel"`<p>
pankso@14 94 </div>
pankso@14 95
pankso@14 96 <h3>`gettext "Summary"`</h3>
pankso@14 97 <div id="summary">
pankso@33 98 <p>
pankso@33 99 `gettext "Uptime:"` `uptime`
pankso@33 100 </p>
pankso@33 101 <p>
pankso@33 102 `gettext "Memory in Mb"`
pankso@33 103 `free -m | grep Mem: | awk \
pankso@33 104 '{print "| Total:", $2, "| Used:", $3, "| Free:", $4}'`
pankso@33 105 </p>
pankso@33 106 <!-- Close summary -->
pankso@33 107 </div>
pankso@14 108
pankso@33 109 <h4>`gettext "Network status"`</h4>
pankso@33 110 `list_network_interfaces`
pankso@33 111
pankso@33 112 <h4>`gettext "Filesystem usage statistics"`</h4>
pankso@14 113 <pre>
pankso@14 114 `df -h | grep ^/dev`
pankso@14 115 </pre>
pankso@49 116
pankso@76 117 <h3>`gettext "Panel Activity"`</h3>
pankso@76 118 <pre>
pankso@76 119 $(cat $LOG_FILE | tail -n 6)
pankso@76 120 </pre>
pankso@76 121
pankso@49 122 <h3>`gettext "Panel settings"`</h3>
pankso@49 123 <form method="get" action="$SCRIPT_NAME">
pankso@49 124 <div>
pankso@54 125 `gettext "Panel password:"`
pascal@81 126 <input type="password" name="panel_pass"/>
pankso@54 127 <input type="submit" value="`gettext "Change"`" />
pankso@49 128 </div>
pankso@49 129 </form>
pankso@53 130 <p>
paul@60 131 $(gettext "TazPanel provides a debuging mode and page:")
pankso@54 132 <a href='$SCRIPT_NAME?debug'>debug</a>
pankso@53 133 </p>
pankso@49 134
pankso@2 135 EOT
pankso@2 136 ;;
pankso@2 137 esac
pankso@2 138
pankso@14 139 xhtml_footer
pankso@14 140 exit 0