tazpanel annotate index.cgi @ rev 97

index.cgi: fix images path
author Pascal Bellard <pascal.bellard@slitaz.org>
date Thu Apr 14 20:36:07 2011 +0200 (2011-04-14)
parents 4b09b20ce287
children bec06e84d6c6
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
pascal@91 22 # Check wether a configuration file has been modified after installation
pascal@91 23 file_is_modified()
pascal@91 24 {
pascal@91 25 grep -l " $1$" $INSTALLED/*/md5sum | while read file; do
pascal@91 26
pascal@91 27 # Found, but can we do diff ?
pascal@91 28 [ "$(grep -h " $1$" $file)" != "$(md5sum $1)" ] || break
pascal@91 29 org=$(dirname $file)/volatile.cpio.gz
pascal@91 30 zcat $org 2>/dev/null | cpio -t 2>/dev/null | \
pascal@91 31 grep -q "^${1#/}$" || break
pascal@91 32
pascal@91 33 case "$2" in
pascal@91 34 diff)
pascal@91 35 tmp=/tmp/tazpanel$$
pascal@91 36 mkdir -p $tmp
pascal@91 37 ( cd $tmp ; zcat $org | cpio -id ${1#/} )
pascal@91 38 diff -u $tmp$1 $1
pascal@91 39 rm -rf $tmp ;;
pascal@91 40 button)
pascal@91 41 cat <<EOT
pascal@91 42 <a class="button" href='/index.cgi?file=$1&action=diff'>
pascal@97 43 <img src="$IMAGES/help.png" />`gettext "Differences"`</a>
pascal@91 44 EOT
pascal@91 45 esac
pascal@93 46 break
pascal@91 47 done
pascal@91 48 }
pascal@91 49
pankso@2 50 #
pankso@49 51 # Things to do before displaying the page
pankso@49 52 #
pankso@49 53
pascal@81 54 [ -n "$(GET panel_pass)" ] &&
pascal@81 55 sed -i s@/:root:.*@/:root:$(GET panel_pass)@ $HTTPD_CONF
pankso@49 56
pankso@49 57 #
pankso@2 58 # Commands
pankso@2 59 #
pankso@2 60
pascal@81 61 case " $(GET) " in
pascal@81 62 *\ file\ *)
pankso@56 63 #
pascal@91 64 # Handle files
pankso@56 65 #
pankso@56 66 TITLE="- File"
pankso@56 67 xhtml_header
pascal@81 68 file="$(GET file)"
pascal@81 69 echo "<h2>$file</h2>"
pascal@90 70 if [ "$(GET action)" == "edit" ]; then
pascal@90 71 cat <<EOT
pascal@90 72 <form method="post" action="/index.cgi?file=$file">
pascal@97 73 <img src="$IMAGES/edit.png" />
pascal@90 74 <input type="submit" value="`gettext "Save"`">
pascal@90 75 <textarea name="content" rows="30" style="width: 100%;">
pascal@90 76 $(cat $file)
pascal@90 77 </textarea>
pascal@90 78 </form>
pascal@90 79 EOT
pascal@91 80 elif [ "$(GET action)" == "diff" ]; then
pascal@91 81 echo '<pre id="diff">'
pascal@91 82 file_is_modified $file diff | syntax_highlighter diff
pascal@91 83 echo '</pre>'
pascal@90 84 else
pascal@90 85 [ -n "$(POST content)" ] &&
pascal@90 86 sed "s/`echo -en '\r'` /\n/g" > $file <<EOT
pascal@90 87 $(POST content)
pascal@90 88 EOT
pascal@90 89 cat <<EOT
pascal@90 90 <div id="actions">
pascal@90 91 <a class="button" href='/index.cgi?file=$file&action=edit'>
pascal@97 92 <img src="$IMAGES/edit.png" />`gettext "Edit"`</a>
pascal@90 93 EOT
pascal@91 94 file_is_modified $file button
pascal@91 95 echo -e "</div>\n<pre>"
pascal@90 96 # Handle file type by extension as a Web Server does it.
pascal@90 97 case "$file" in
pascal@90 98 *.conf|*.lst)
pascal@90 99 syntax_highlighter conf ;;
pascal@90 100 *.sh|*.cgi)
pascal@90 101 syntax_highlighter sh ;;
pascal@90 102 *)
pascal@90 103 cat ;;
pascal@90 104 esac < $file
pascal@90 105 echo '</pre>'
pascal@90 106 fi ;;
pascal@81 107 *\ debug\ *)
pankso@53 108 TITLE="- Debug"
pankso@53 109 xhtml_header
pankso@55 110 echo '<h2>HTTP Environment</h2>'
pankso@55 111 echo '<pre>'
pascal@81 112 httpinfo
pankso@55 113 echo '</pre>' ;;
pankso@2 114 *)
pankso@14 115 #
pankso@2 116 # Default xHTML content
pankso@14 117 #
pankso@8 118 xhtml_header
pascal@81 119 [ -n "$(GET gen_locale)" ] && new_locale=$(GET gen_locale)
pascal@81 120 [ -n "$(GET rdate)" ] && echo ""
pankso@2 121 cat << EOT
pankso@13 122 <div id="wrapper">
pankso@14 123 <h2>`gettext "Host:"` `hostname`</h2>
paul@52 124 <p>`gettext "SliTaz administration and configuration Panel"`<p>
pankso@14 125 </div>
pankso@14 126
pankso@14 127 <h3>`gettext "Summary"`</h3>
pankso@14 128 <div id="summary">
pankso@33 129 <p>
pankso@33 130 `gettext "Uptime:"` `uptime`
pankso@33 131 </p>
pankso@33 132 <p>
pankso@33 133 `gettext "Memory in Mb"`
pankso@33 134 `free -m | grep Mem: | awk \
pankso@33 135 '{print "| Total:", $2, "| Used:", $3, "| Free:", $4}'`
pankso@33 136 </p>
pankso@33 137 <!-- Close summary -->
pankso@33 138 </div>
pankso@14 139
pankso@33 140 <h4>`gettext "Network status"`</h4>
pankso@33 141 `list_network_interfaces`
pankso@33 142
pankso@33 143 <h4>`gettext "Filesystem usage statistics"`</h4>
pankso@14 144 <pre>
pankso@14 145 `df -h | grep ^/dev`
pankso@14 146 </pre>
pankso@49 147
pankso@76 148 <h3>`gettext "Panel Activity"`</h3>
pankso@76 149 <pre>
pankso@76 150 $(cat $LOG_FILE | tail -n 6)
pankso@76 151 </pre>
pankso@76 152
pankso@49 153 <h3>`gettext "Panel settings"`</h3>
pankso@49 154 <form method="get" action="$SCRIPT_NAME">
pankso@49 155 <div>
pankso@54 156 `gettext "Panel password:"`
pascal@81 157 <input type="password" name="panel_pass"/>
pankso@54 158 <input type="submit" value="`gettext "Change"`" />
pankso@49 159 </div>
pankso@49 160 </form>
pankso@53 161 <p>
paul@60 162 $(gettext "TazPanel provides a debuging mode and page:")
pankso@54 163 <a href='$SCRIPT_NAME?debug'>debug</a>
pankso@53 164 </p>
pankso@49 165
pankso@2 166 EOT
pankso@2 167 ;;
pankso@2 168 esac
pankso@2 169
pankso@14 170 xhtml_footer
pankso@14 171 exit 0