tazpanel annotate lib/libtazpanel @ rev 292
translatable header, footer & titles; make pot
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Wed Apr 11 20:12:41 2012 +0300 (2012-04-11) |
parents | 4c35cd60c1d8 |
children | fdfc6b494539 |
rev | line source |
---|---|
pankso@15 | 1 #!/bin/sh |
pankso@15 | 2 # |
pankso@15 | 3 # Common functions for TazPanel CGI and cmdline interface |
pankso@15 | 4 # |
pankso@15 | 5 |
pascal@81 | 6 # Get parameters with GET, POST and FILE functions |
pascal@81 | 7 . /usr/bin/httpd_helper.sh |
pascal@81 | 8 |
pankso@109 | 9 # I18n |
pankso@286 | 10 . /etc/locale.conf |
pankso@40 | 11 . /usr/bin/gettext.sh |
pankso@40 | 12 TEXTDOMAIN='tazpanel' |
pankso@286 | 13 export TEXTDOMAIN LANG LC_ALL |
pankso@40 | 14 |
pankso@15 | 15 # We need a config file first |
pankso@15 | 16 get_config() { |
pankso@15 | 17 CONFIG="/etc/slitaz/tazpanel.conf" |
pankso@116 | 18 [ -f data/tazpanel.conf ] && CONFIG="data/tazpanel.conf" |
pankso@110 | 19 [ -f "$CONFIG" ] && . $CONFIG |
pankso@110 | 20 [ ! -f "$PANEL/lib/libtazpanel" ] && \ |
pankso@15 | 21 echo "No config file or libtazpanel found: $CONFIG" && \ |
pankso@15 | 22 exit 1 |
pankso@15 | 23 } |
pankso@15 | 24 |
pankso@74 | 25 # Syntax highlighting for config file and SHell scripts |
pankso@76 | 26 # HTML entities: -e 's|&|\&|g' -e 's|<|\<|g' -e 's|>|\>|g' |
pankso@74 | 27 syntax_highlighter() { |
pankso@74 | 28 case $1 in |
pankso@74 | 29 conf) |
pascal@176 | 30 sed -e 's|&|\&|g' -e 's|<|\<|g' -e 's|>|\>|g' \ |
slaxemulator@177 | 31 -e s"#^\#\([^']*\)#<span class='conf-comment'>\0</span>#"g \ |
pankso@74 | 32 -e s"#^[A-Z]\([^']*\)=#<span class='conf-var'>\0</span>#"g \ |
pankso@74 | 33 -e s"#^[a-z]\([^']*\)#<span class='conf-var'>\0</span>#"g \ |
pankso@74 | 34 -e s"#\"\([^']*\)\"#<span class='conf-val'>\0</span>#"g ;; |
pankso@75 | 35 sh) |
pascal@176 | 36 sed -e 's|&|\&|g' -e 's|<|\<|g' -e 's|>|\>|g' \ |
pascal@176 | 37 -e s"#^\#\([^']*\)#<span class='sh-comment'>\0</span>#"g \ |
pascal@91 | 38 -e s"#\"\([^']*\)\"#<span class='sh-val'>\0</span>#"g ;; |
pascal@91 | 39 diff) |
pankso@94 | 40 sed -e 's|&|\&|g' -e 's|<|\<|g' -e 's|>|\>|g' \ |
pascal@171 | 41 -e s"#^-\(.*\).#<span class='diff-rm'>\0</span>#"g \ |
pascal@171 | 42 -e s"#^+\(.*\).#<span class='diff-add'>\0</span>#"g \ |
pascal@171 | 43 -e s"#@@\(.*\)@@#<span class='diff-at'>@@\1@@</span>#"g ;; |
pankso@120 | 44 activity) |
pankso@120 | 45 sed s"#^\([^']*:\)#<span class='activity-log''>\0</span>#"g ;; |
pankso@74 | 46 esac |
pankso@53 | 47 } |
pankso@53 | 48 |
pascal@99 | 49 # Remove status and ESC char from tazpkg/tazlito commands output |
pascal@99 | 50 filter_taztools_msgs() { |
pascal@168 | 51 sed -e s'/\[^Gm]*.//g' \ |
pascal@167 | 52 -e ':a;s/^\(.\{1,68\}\)\(\[ [A-Za-z]* \]\)/\1 \2/;ta' \ |
pascal@167 | 53 -e 's#\[ OK \]#[ <span class="diff-add">OK</span> ]#' \ |
pascal@167 | 54 -e 's#\[ Failed \]#[ <span class="diff-rm">Failed</span> ]#' |
pascal@99 | 55 } |
pascal@99 | 56 |
pankso@51 | 57 # LOG activities |
pankso@51 | 58 log() { |
pankso@96 | 59 date=$(date "+%Y-%m-%d %H:%M") |
pascal@99 | 60 filter_taztools_msgs | \ |
pankso@94 | 61 sed s"#[^']*#$date : \0#" >> $LOG_FILE |
pankso@51 | 62 } |
pankso@51 | 63 |
pankso@161 | 64 ok_status() { |
pankso@161 | 65 echo "[<span class='diff-add'> OK </span>]" |
pankso@161 | 66 } |
pankso@161 | 67 |
pankso@40 | 68 # Network interface status |
pankso@40 | 69 interface_status() { |
pankso@40 | 70 if ifconfig | grep -A 1 $i | grep -q inet; then |
pankso@40 | 71 ip=`ifconfig | grep -A 1 $i | grep inet | \ |
pankso@40 | 72 awk '{ print $2 }' | cut -d ":" -f 2` |
pankso@40 | 73 echo "<td>connected</td><td>$ip</td>" |
pascal@136 | 74 echo "<td><a href='/network.cgi?scan=$ip'>" |
pankso@148 | 75 echo "<img src='$IMAGES/recharge.png' /></a></td>" |
pankso@40 | 76 else |
pascal@136 | 77 echo "<td>----</td><td>----</td><td></td>" |
pankso@40 | 78 fi |
pankso@40 | 79 } |
pankso@40 | 80 |
pankso@40 | 81 # Catch network interface (used in summary and network main page) |
pankso@40 | 82 list_network_interfaces() { |
pankso@40 | 83 table_start |
pankso@40 | 84 cat << EOT |
pankso@40 | 85 <tr id="thead"> |
pankso@40 | 86 <td>`gettext "Interface"`</td> |
pankso@40 | 87 <td>`gettext "Name"`</td> |
pankso@40 | 88 <td>`gettext "Status"`</td> |
pankso@40 | 89 <td>`gettext "IP Address"`</td> |
pankso@148 | 90 <td>`gettext "Scan ports"`</td> |
pankso@40 | 91 </tr> |
pankso@40 | 92 EOT |
pankso@40 | 93 for i in `ls /sys/class/net` |
pankso@40 | 94 do |
pankso@40 | 95 case $i in |
pankso@40 | 96 eth*) |
pankso@41 | 97 echo "<tr><td><a href='/network.cgi?eth'> |
pankso@41 | 98 <img src='$IMAGES/ethernet.png' />$i</a></td> |
pankso@148 | 99 <td>Ethernet</td> $(interface_status)</tr>" ;; |
pankso@40 | 100 wlan*|ath*|ra*) |
pankso@41 | 101 echo "<tr><td><a href='/network.cgi?wifi'> |
pankso@41 | 102 <img src='$IMAGES/wireless.png' />$i</a></td> |
pankso@148 | 103 <td>Wireless</td> $(interface_status)</tr>" ;; |
pankso@40 | 104 lo) |
pankso@40 | 105 echo "<tr><td><img src='$IMAGES/loopback.png' />$i</td> |
pankso@148 | 106 <td>Loopback</td> $(interface_status)</tr>" ;; |
pankso@40 | 107 *) |
pankso@40 | 108 continue ;; |
pankso@40 | 109 esac |
pankso@40 | 110 done |
pankso@40 | 111 table_end |
pankso@40 | 112 } |
pankso@40 | 113 |
slaxemulator@232 | 114 # Get the list of panel styles |
slaxemulator@232 | 115 list_styles() { |
slaxemulator@232 | 116 for style in $PANEL/styles/* |
slaxemulator@232 | 117 do |
slaxemulator@232 | 118 style=$(basename $style) |
slaxemulator@232 | 119 echo "<option value='$style'>$style</option>" |
slaxemulator@232 | 120 done |
slaxemulator@232 | 121 } |
slaxemulator@232 | 122 |
slaxemulator@232 | 123 # Get the list of system locales |
slaxemulator@232 | 124 list_locales() { |
slaxemulator@232 | 125 for locale in $(find /usr/share/i18n/locales -type f -name "[a-z][a-z]_[A-Z][A-Z]") |
slaxemulator@232 | 126 do |
slaxemulator@232 | 127 echo "<option value='$locale'>$locale</option>" |
slaxemulator@232 | 128 done |
slaxemulator@232 | 129 } |
slaxemulator@232 | 130 |
slaxemulator@232 | 131 # Get the list of console keymaps |
slaxemulator@232 | 132 list_keymaps() { |
slaxemulator@232 | 133 for keymap in /usr/share/kmap/*.kmap |
slaxemulator@232 | 134 do |
slaxemulator@232 | 135 basename $keymap .kmap | sed "s|.*|<option value='&'>&</option>|" |
slaxemulator@232 | 136 done |
slaxemulator@232 | 137 } |
slaxemulator@232 | 138 |
pankso@15 | 139 # |
pankso@15 | 140 # xHTML 5 (header and footer skel are from the style) |
pankso@15 | 141 # |
pankso@15 | 142 |
pankso@44 | 143 loading_msg() { |
pankso@44 | 144 cat << EOT |
pankso@44 | 145 <script type="text/javascript"> |
pankso@44 | 146 document.write('<div id="loading"><img src="/styles/default/images/loader.gif" />$LOADING_MSG</div>'); |
pankso@44 | 147 </script> |
pankso@44 | 148 EOT |
pankso@44 | 149 } |
pankso@44 | 150 |
pankso@15 | 151 xhtml_header() { |
al@292 | 152 . ${PANEL}$HEADER |
pankso@67 | 153 if [ $DEBUG == "1" ]; then |
pascal@81 | 154 local i |
pascal@81 | 155 local j |
pascal@81 | 156 local x |
pascal@81 | 157 args="" |
pascal@81 | 158 for x in GET POST COOKIE ; do |
pascal@81 | 159 for i in $($x) ; do |
pascal@81 | 160 if [ $($x $i count) -gt 1 ]; then |
pascal@81 | 161 for j in $(seq 1 $($x $i count)); do |
pascal@81 | 162 args="$args $x($i,$j)='$($x $i $j)'" |
pascal@81 | 163 done |
pascal@81 | 164 else |
pascal@81 | 165 args="$args $x($i)='$($x $i)'" |
pascal@81 | 166 fi |
pascal@81 | 167 done |
pascal@81 | 168 done |
pascal@81 | 169 for i in $(FILE); do |
pascal@81 | 170 for j in name size type tmpname ; do |
pascal@81 | 171 args="$args FILE($i,$j)=$(FILE $i $j)" |
pascal@81 | 172 done |
pascal@81 | 173 done |
pankso@70 | 174 cat << EOT |
pankso@70 | 175 <pre class='debug'> |
pascal@81 | 176 QUERY_STRING="$QUERY_STRING"$args |
pankso@70 | 177 </pre> |
pankso@70 | 178 EOT |
pankso@67 | 179 fi |
pankso@15 | 180 } |
pankso@15 | 181 |
pankso@15 | 182 xhtml_footer() { |
al@292 | 183 . ${PANEL}$FOOTER |
pankso@15 | 184 } |
pankso@15 | 185 |
pankso@15 | 186 table_start() { |
pankso@15 | 187 cat << EOT |
pankso@15 | 188 <table> |
pankso@15 | 189 <tbody> |
pankso@15 | 190 EOT |
pankso@15 | 191 } |
pankso@15 | 192 |
pankso@282 | 193 table_end() { |
pankso@15 | 194 cat << EOT |
pankso@15 | 195 </tbody> |
pankso@15 | 196 </table> |
pankso@15 | 197 EOT |
al@292 | 198 |
pankso@15 | 199 } |
pankso@153 | 200 |
pankso@153 | 201 df_thead() { |
pankso@153 | 202 cat << EOT |
pankso@153 | 203 <thead> |
pankso@153 | 204 <tr> |
pankso@190 | 205 <td>$(gettext "Disk")</td> |
pankso@153 | 206 <td>$(gettext "Size")</td> |
pankso@153 | 207 <td>$(gettext "Available")</td> |
pankso@153 | 208 <td>$(gettext "Used")</td> |
pankso@153 | 209 <td>$(gettext "Mount point")</td> |
pankso@153 | 210 </tr> |
pankso@153 | 211 </thead> |
pankso@153 | 212 EOT |
pankso@153 | 213 } |