tazpanel rev 13
A bunch of change, users mangement, javascript small function, css, tazpg.cgi
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Sun Apr 03 03:21:00 2011 +0200 (2011-04-03) |
parents | 4c1174a446ee |
children | 2ea20065417a |
files | index.cgi lib/checkbox.js po/tazpkg-cgi/tazpkg-cgi.pot styles/default/header.html styles/default/style.css tazpanel tazpanel.conf tazpanel.desktop tazpkg.cgi |
line diff
1.1 --- a/index.cgi Sat Apr 02 21:45:16 2011 +0200 1.2 +++ b/index.cgi Sun Apr 03 03:21:00 2011 +0200 1.3 @@ -1,55 +1,191 @@ 1.4 #!/bin/sh 1.5 # 1.6 -# CGI/Shell script example for TazPanel 1.7 +# Main CGI interface for TazPanel. In on word: KISS 1.8 # 1.9 echo "Content-Type: text/html" 1.10 echo "" 1.11 1.12 -. tazpanel.conf 1.13 +# We need a config file first 1.14 +CONFIG="/etc/slitaz/tazpanel.conf" 1.15 +[ -f $CONFIG ] && . $CONFIG 1.16 +[ -f tazpanel.conf ] && . tazpanel.conf 1.17 +[ -z $PANEL ] && echo "No config file found" && exit 1 1.18 1.19 +# xHTML 5 header 1.20 xhtml_header() { 1.21 - # xHTML 5 header 1.22 cat $HEADER | sed s/'- %TITLE%'/"$TITLE"/ 1.23 } 1.24 1.25 -[ $DEBUG == "1" ] && echo "<p class='debug'>DEBUG on</p>" 1.26 +table_start() { 1.27 + cat << EOT 1.28 +<table> 1.29 + <tbody> 1.30 +EOT 1.31 +} 1.32 + 1.33 +table_end () { 1.34 + cat << EOT 1.35 + </tbody> 1.36 +</table> 1.37 +EOT 1.38 +} 1.39 1.40 # 1.41 # Commands 1.42 # 1.43 1.44 case "$QUERY_STRING" in 1.45 - users) 1.46 + boot) 1.47 + # Everything until user login 1.48 + TITLE="- Network" 1.49 + xhtml_header 1.50 + cat << EOT 1.51 +<div id="wrapper"> 1.52 +<h2>`gettext "Boot & startup"`</h2> 1.53 +<p> 1.54 + `gettext "Everything that appends before user login."` 1.55 +</p> 1.56 + 1.57 +<h3>`gettext "Kernel cmdline"`</h3> 1.58 +<pre> 1.59 +`cat /proc/cmdline` 1.60 +</pre> 1.61 +EOT 1.62 + echo '</div>' ;; 1.63 + users|user=*) 1.64 + # Manage system user accounts 1.65 TITLE="- Users" 1.66 xhtml_header 1.67 - echo '<ul>' 1.68 - fgrep /home /etc/passwd | while read line 1.69 + 1.70 + cmdline=`echo ${QUERY_STRING#user*=} | sed s'/&/ /g'` 1.71 + #user=`echo ${cmdline} | sed s'/=/ /' | awk '{print $1}'` 1.72 + #cmd=`echo ${cmdline} | sed s'/=/ /' |awk '{print $2}'` 1.73 + 1.74 + [ $DEBUG == "1" ] && echo \ 1.75 + "<p class='debug'>$cmdline</p>" 1.76 + #$REQUEST_METHOD $QUERY_STRING 1.77 + # Parse cmdline 1.78 + for opt in $cmdline 1.79 do 1.80 - echo '<li>' 1.81 - echo " <img src='$IMAGES/user.png' />$line" 1.82 - echo '</li>' 1.83 + case $opt in 1.84 + adduser=*) 1.85 + user=${opt#adduser=} 1.86 + cmd=adduser ;; 1.87 + deluser=*) 1.88 + user=${opt#deluser=} 1.89 + deluser $user ;; 1.90 + passwd=*) 1.91 + pass=${opt#passwd=} ;; 1.92 + esac 1.93 done 1.94 - echo '</ul>' ;; 1.95 + case "$cmd" in 1.96 + adduser) 1.97 + echo "$user" 1.98 + echo $pass 1.99 + adduser -D $user 1.100 + echo "$pass" | chpasswd 1.101 + for g in audio cdrom floppy video 1.102 + do 1.103 + addgroup $user $g 1.104 + done ;; 1.105 + *) continue ;; 1.106 + esac 1.107 + cat << EOT 1.108 +<div id="wrapper"> 1.109 +<h2>`gettext "Manage users"`</h2> 1.110 +<div>`gettext "Manage human users on your SliTaz system"`</div> 1.111 +<form method="get" action="$SCRIPT_NAME"> 1.112 +EOT 1.113 + table_start 1.114 + cat << EOT 1.115 +<tr id="thead"> 1.116 + <td>`gettext "Name"`</td> 1.117 + <td>`gettext "User ID"`</td> 1.118 + <td>`gettext "Name"`</td> 1.119 + <td>`gettext "Home"`</td> 1.120 + <td>`gettext "SHell"`</td> 1.121 +</tr> 1.122 +EOT 1.123 + for i in `cat /etc/passwd | cut -d ":" -f 1` 1.124 + do 1.125 + if [ -d /home/$i ]; then 1.126 + login=$i 1.127 + uid=`cat /etc/passwd | grep $i | cut -d ":" -f 3` 1.128 + gid=`cat /etc/passwd | grep $i | cut -d ":" -f 4` 1.129 + name=`cat /etc/passwd | grep $i | cut -d ":" -f 5 | \ 1.130 + sed s/,,,//` 1.131 + home=`cat /etc/passwd | grep $i | cut -d ":" -f 6` 1.132 + shell=`cat /etc/passwd | grep $i | cut -d ":" -f 7` 1.133 + echo '<tr>' 1.134 + echo "<td><input type='hidden' name='user' /> 1.135 + <input type='checkbox' name='deluser' value='$login' /> 1.136 + <img src='$IMAGES/user.png' />$login</td>" 1.137 + echo "<td>$uid:$gid</td>" 1.138 + echo "<td>$name</td>" 1.139 + echo "<td>$home</td>" 1.140 + echo "<td>$shell</td>" 1.141 + echo '</tr>' 1.142 + fi 1.143 + done 1.144 + table_end 1.145 + #`gettext "Selection:"` 1.146 + cat << EOT 1.147 +<div> 1.148 + <input type="submit" value="`gettext "Delete selected user"`" /> 1.149 +</div> 1.150 + 1.151 +</form> 1.152 +</div> 1.153 + 1.154 +<h3>`gettext "Add a user"`</h3> 1.155 +<form method="get" action="$SCRIPT_NAME"> 1.156 +<input type="hidden" name="user" size="30" /> 1.157 +<p> 1.158 + `gettext ""` 1.159 + <input type="text" name="adduser" size="30" /> 1.160 +</p> 1.161 +<p> 1.162 + `gettext ""` 1.163 + <input type="password" name="passwd" size="30" /> 1.164 +</p> 1.165 +<input type="submit" value="`gettext ""`Create user" /> 1.166 +</form 1.167 +EOT 1.168 + ;; 1.169 network) 1.170 + # Network configuration 1.171 TITLE="- Network" 1.172 xhtml_header 1.173 + cat << EOT 1.174 +<div id="wrapper"> 1.175 +<h2>`gettext "Connections`</h2> 1.176 +EOT 1.177 echo '<pre>' 1.178 ifconfig 1.179 - echo '</pre>' ;; 1.180 + echo '</pre>' 1.181 + echo '</div>' ;; 1.182 hardware) 1.183 TITLE="- Hardware" 1.184 xhtml_header 1.185 + cat << EOT 1.186 +<div id="wrapper"> 1.187 +<h2>`gettext "Drivers & Devices"`</h2> 1.188 +EOT 1.189 echo '<pre>' 1.190 lspci 1.191 - echo '</pre>' ;; 1.192 + echo '</pre>' 1.193 + echo '</div>' ;; 1.194 *) 1.195 # Default xHTML content 1.196 xhtml_header 1.197 cat << EOT 1.198 +<div id="wrapper"> 1.199 +<h2>`gettext "Host:"` `hostname`</h2> 1.200 <p> 1.201 Uptime: `uptime` 1.202 </p> 1.203 EOT 1.204 + echo '</div>' 1.205 ;; 1.206 esac 1.207
2.1 --- a/lib/checkbox.js Sat Apr 02 21:45:16 2011 +0200 2.2 +++ b/lib/checkbox.js Sun Apr 03 03:21:00 2011 +0200 2.3 @@ -1,20 +1,19 @@ 2.4 -javascript:(function(){ 2.5 -function checkFrames(w) { 2.6 - 2.7 - try { 2.8 - var inputs = w.document.getElementsByTagName('input'); 2.9 - for (var i = 0; i < inputs.length; i++) { 2.10 - if (inputs[i].type && inputs[i].type == 'checkbox'){ 2.11 - inputs[i].checked = !inputs[i].checked; 2.12 - } 2.13 - } 2.14 - } catch (e){} 2.15 - if(w.frames && w.frames.length>0){ 2.16 - for(var i = 0; i < w.frames.length;i++){ 2.17 - var fr = w.frames[i]; 2.18 - checkFrames(fr); 2.19 - } 2.20 - } 2.21 +javascript:(function() { 2.22 +function checkBoxes(w) { 2.23 + try { 2.24 + var inputs = w.document.getElementsByTagName('input'); 2.25 + for (var i = 0; i < inputs.length; i++) { 2.26 + if (inputs[i].type && inputs[i].type == 'checkbox') { 2.27 + inputs[i].checked = !inputs[i].checked; 2.28 + } 2.29 + } 2.30 + } catch (e){} 2.31 + if (w.frames && w.frames.length>0) { 2.32 + for (var i = 0; i < w.frames.length;i++) { 2.33 + var fr = w.frames[i]; 2.34 + checkFrames(fr); 2.35 + } 2.36 + } 2.37 } 2.38 -checkFrames(window); 2.39 +checkBoxes(window); 2.40 })()
3.1 --- a/po/tazpkg-cgi/tazpkg-cgi.pot Sat Apr 02 21:45:16 2011 +0200 3.2 +++ b/po/tazpkg-cgi/tazpkg-cgi.pot Sun Apr 03 03:21:00 2011 +0200 3.3 @@ -8,7 +8,7 @@ 3.4 msgstr "" 3.5 "Project-Id-Version: Tazpkg CGI\n" 3.6 "Report-Msgid-Bugs-To: \n" 3.7 -"POT-Creation-Date: 2011-04-02 21:33+0200\n" 3.8 +"POT-Creation-Date: 2011-04-03 03:19+0200\n" 3.9 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 3.10 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" 3.11 "Language-Team: LANGUAGE <LL@li.org>\n" 3.12 @@ -41,55 +41,55 @@ 3.13 msgid "Blocked packages : " 3.14 msgstr "" 3.15 3.16 -#: tazpkg.cgi:97 3.17 +#: tazpkg.cgi:96 3.18 msgid "Search" 3.19 msgstr "" 3.20 3.21 -#: tazpkg.cgi:109 3.22 +#: tazpkg.cgi:108 3.23 msgid "Name" 3.24 msgstr "" 3.25 3.26 -#: tazpkg.cgi:110 3.27 +#: tazpkg.cgi:109 3.28 msgid "Version" 3.29 msgstr "" 3.30 3.31 -#: tazpkg.cgi:111 3.32 +#: tazpkg.cgi:110 3.33 msgid "Description" 3.34 msgstr "" 3.35 3.36 -#: tazpkg.cgi:112 3.37 +#: tazpkg.cgi:111 3.38 msgid "Web" 3.39 msgstr "" 3.40 3.41 -#: tazpkg.cgi:127 3.42 +#: tazpkg.cgi:126 3.43 msgid "List:" 3.44 msgstr "" 3.45 3.46 -#: tazpkg.cgi:128 tazpkg.cgi:182 3.47 +#: tazpkg.cgi:127 tazpkg.cgi:181 3.48 msgid "My packages" 3.49 msgstr "" 3.50 3.51 -#: tazpkg.cgi:129 tazpkg.cgi:213 tazpkg.cgi:231 3.52 +#: tazpkg.cgi:128 tazpkg.cgi:213 tazpkg.cgi:231 3.53 msgid "All packages" 3.54 msgstr "" 3.55 3.56 -#: tazpkg.cgi:130 tazpkg.cgi:246 3.57 +#: tazpkg.cgi:129 tazpkg.cgi:246 3.58 msgid "Recharge" 3.59 msgstr "" 3.60 3.61 -#: tazpkg.cgi:131 3.62 +#: tazpkg.cgi:130 3.63 msgid "Upgradeable" 3.64 msgstr "" 3.65 3.66 -#: tazpkg.cgi:132 tazpkg.cgi:349 3.67 +#: tazpkg.cgi:131 tazpkg.cgi:349 3.68 msgid "Configuration" 3.69 msgstr "" 3.70 3.71 -#: tazpkg.cgi:141 tazpkg.cgi:151 tazpkg.cgi:162 3.72 +#: tazpkg.cgi:140 tazpkg.cgi:150 tazpkg.cgi:161 3.73 msgid "Selection:" 3.74 msgstr "" 3.75 3.76 -#: tazpkg.cgi:165 3.77 +#: tazpkg.cgi:164 3.78 msgid "Toogle all" 3.79 msgstr "" 3.80
4.1 --- a/styles/default/header.html Sat Apr 02 21:45:16 2011 +0200 4.2 +++ b/styles/default/header.html Sun Apr 03 03:21:00 2011 +0200 4.3 @@ -6,13 +6,14 @@ 4.4 <link rel="shortcut icon" href="styles/default/favicon.ico" /> 4.5 <link rel="stylesheet" type="text/css" href="styles/default/style.css" /> 4.6 </head> 4.7 -<body> 4.8 - 4.9 +<body onLoad="init()"> 4.10 + 4.11 <h1>TazPanel - %TITLE%</h1> 4.12 4.13 <div id="block"> 4.14 <a href="./">Panel</a> 4.15 | <a href="tazpkg.cgi">Packages</a> 4.16 + | <a href="index.cgi?boot">Boot</a> 4.17 | <a href="index.cgi?users">Users</a> 4.18 | <a href="index.cgi?network">Network</a> 4.19 | <a href="index.cgi?hardware">Hardware</a>
5.1 --- a/styles/default/style.css Sat Apr 02 21:45:16 2011 +0200 5.2 +++ b/styles/default/style.css Sun Apr 03 03:21:00 2011 +0200 5.3 @@ -49,6 +49,7 @@ 5.4 /* Content */ 5.5 5.6 #content { margin: 0; } 5.7 +#wrapper { margin: 80px 0 20px; } 5.8 5.9 .search { 5.10 position: absolute; 5.11 @@ -67,7 +68,7 @@ 5.12 .box { 5.13 margin: 10px 0; 5.14 padding: 12px; 5.15 - background: #efefef; 5.16 + background: #f8f8f8; 5.17 border: 1px solid #ddd; 5.18 } 5.19 5.20 @@ -80,12 +81,15 @@ 5.21 border: 1px solid #ddd; 5.22 } 5.23 5.24 +.float_left { float: right; } 5.25 +.float_right { float: right; } 5.26 + 5.27 /* Table */ 5.28 5.29 table { 5.30 background-color: #f8f8f8; 5.31 border: 1px solid #ddd; 5.32 - margin: 30px 0 0 0; 5.33 + margin: 40px 0 0 0; 5.34 padding: 10px 10px 10px 0; 5.35 width: 100%; 5.36 }
6.1 --- a/tazpanel Sat Apr 02 21:45:16 2011 +0200 6.2 +++ b/tazpanel Sun Apr 03 03:21:00 2011 +0200 6.3 @@ -3,8 +3,11 @@ 6.4 # Tiny Tazpanel cmdline interface 6.5 # 6.6 6.7 -#. /etc/slitaz/tazpanel.conf 6.8 +CONFIG="/etc/slitaz/tazpanel.conf" 6.9 + 6.10 +[ -f $CONFIG ] && . $CONFIG 6.11 [ -f tazpanel.conf ] && . tazpanel.conf 6.12 +[ -z $PANEL ] && echo "No config file found" && exit 1 6.13 6.14 case "$1" in 6.15 start)
7.1 --- a/tazpanel.conf Sat Apr 02 21:45:16 2011 +0200 7.2 +++ b/tazpanel.conf Sun Apr 03 03:21:00 2011 +0200 7.3 @@ -14,9 +14,9 @@ 7.4 7.5 # Busybox HTTP deamon config 7.6 # /etc/slitaz/httpd.conf 7.7 -HTTPD_CONF="httpd.conf" 7.8 +HTTPD_CONF="/etc/slitaz/httpd.conf" 7.9 HTTPD_PORT="8080" 7.10 7.11 -# Tazpkg paths 7.12 +# Shared Tazpkg paths 7.13 LOCALSTATE="/var/lib/tazpkg" 7.14 INSTALLED="$LOCALSTATE/installed"
8.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 8.2 +++ b/tazpanel.desktop Sun Apr 03 03:21:00 2011 +0200 8.3 @@ -0,0 +1,7 @@ 8.4 +[Desktop Entry] 8.5 +Encoding=UTF-8 8.6 +Name=TazPanel 8.7 +Icon=slitaz-menu 8.8 +Exec=browser http://tazpanel:8080/ 8.9 +Type=Application 8.10 +Categories=System;
9.1 --- a/tazpkg.cgi Sat Apr 02 21:45:16 2011 +0200 9.2 +++ b/tazpkg.cgi Sun Apr 03 03:21:00 2011 +0200 9.3 @@ -92,7 +92,6 @@ 9.4 <div class="search"> 9.5 <form method="get" action="$SCRIPT_NAME"> 9.6 <p> 9.7 - 9.8 <input type="text" name="search" size="20"> 9.9 <input type="submit" value="`gettext "Search"`"> 9.10 </p> 9.11 @@ -207,6 +206,7 @@ 9.12 list-all) 9.13 # List all available packages on mirror 9.14 cd $LOCALSTATE 9.15 + loader 9.16 search_form 9.17 sub_block 9.18 cat << EOT