tazpanel rev 420
network: things are now successfull: connect to Ethernet or {new or stored} Wi-Fi, re-connect Ethernet <-> Wi-Fi without previously stopping, start and stop Ethernet or Wi-Fi connections. Seems network part of TazPanel is fully workable now.
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Wed Mar 25 00:38:04 2015 +0200 (2015-03-25) |
parents | 299f204b8f1f |
children | 4074a9fc45ee |
files | lib/tazpanel.js network.cgi styles/default/tweaks.css |
line diff
1.1 --- a/lib/tazpanel.js Tue Mar 24 03:39:08 2015 +0200 1.2 +++ b/lib/tazpanel.js Wed Mar 25 00:38:04 2015 +0200 1.3 @@ -402,5 +402,8 @@ 1.4 password.value = networks[i].password; 1.5 } 1.6 1.7 + // Not used yet 1.8 + document.getElementById('bssid').value = ''; 1.9 + 1.10 wifiSettingsChange(); 1.11 }
2.1 --- a/network.cgi Tue Mar 24 03:39:08 2015 +0200 2.2 +++ b/network.cgi Wed Mar 25 00:38:04 2015 +0200 2.3 @@ -33,6 +33,51 @@ 2.4 } 2.5 2.6 2.7 +# Connect to a Wi-Fi network 2.8 +connect_wifi() { 2.9 + /etc/init.d/network.sh stop | log 2.10 + sed -i \ 2.11 + -e "s|^WIFI_ESSID=.*|WIFI_ESSID=\"$(GET essid)\"|" \ 2.12 + -e "s|^WIFI_BSSID=.*|WIFI_BSSID=\"$(GET bssid)\"|" \ 2.13 + -e "s|^WIFI_KEY_TYPE=.*|WIFI_KEY_TYPE=\"$(GET keyType)\"|" \ 2.14 + -e "s|^WIFI_KEY=.*|WIFI_KEY=\"$(GET password)\"|" \ 2.15 + -e "s|^WIFI_EAP_METHOD=.*|WIFI_EAP_METHOD=\"$(GET eap)\"|" \ 2.16 + -e "s|^WIFI_CA_CERT=.*|WIFI_CA_CERT=\"$(GET caCert)\"|" \ 2.17 + -e "s|^WIFI_CLIENT_CERT=.*|WIFI_CLIENT_CERT=\"$(GET clientCert)\"|" \ 2.18 + -e "s|^WIFI_IDENTITY=.*|WIFI_IDENTITY=\"$(GET identity)\"|" \ 2.19 + -e "s|^WIFI_ANONYMOUS_IDENTITY=.*|WIFI_ANONYMOUS_IDENTITY=\"$(GET anonymousIdentity)\"|" \ 2.20 + -e "s|^WIFI_PHASE2=.*|WIFI_PHASE2=\"$(GET phase2)\"|" \ 2.21 + /etc/network.conf 2.22 + . /etc/network.conf 2.23 + start_wifi 2.24 +} 2.25 + 2.26 + 2.27 +# Start an Ethernet connection 2.28 + 2.29 +start_eth() { 2.30 + case "$(GET staticip)" in 2.31 + on) DHCP='no'; STATIC='yes';; 2.32 + *) DHCP='yes'; STATIC='no';; 2.33 + esac 2.34 + 2.35 + /etc/init.d/network.sh stop | log 2.36 + sleep 2 2.37 + sed -i \ 2.38 + -e "s|^INTERFACE=.*|INTERFACE=\"$(GET iface)\"|" \ 2.39 + -e 's|^WIFI=.*|WIFI="no"|' \ 2.40 + -e "s|^DHCP=.*|DHCP=\"$DHCP\"|" \ 2.41 + -e "s|^STATIC=.*|STATIC=\"$STATIC\"|" \ 2.42 + -e "s|^IP=.*|IP=\"$(GET ip)\"|" \ 2.43 + -e "s|^NETMASK=.*|NETMASK=\"$(GET netmask)\"|" \ 2.44 + -e "s|^GATEWAY=.*|GATEWAY=\"$(GET gateway)\"|" \ 2.45 + -e "s|^DNS_SERVER=.*|DNS_SERVER=\"$(GET dns)\"|" \ 2.46 + /etc/network.conf 2.47 + /etc/init.d/network.sh start | log 2.48 + . /etc/network.conf 2.49 +} 2.50 + 2.51 + 2.52 # Use /etc/wpa/wpa.conf as single database for known networks, passwords, etc. 2.53 # Translate this data to use in javascript. 2.54 2.55 @@ -85,8 +130,12 @@ 2.56 *\ restart\ *) 2.57 /etc/init.d/network.sh restart | log 2.58 wait_up ;; 2.59 - *\ start-wifi\ *) 2.60 + *\ start_wifi\ *) 2.61 start_wifi ;; 2.62 + *\ start_eth\ *) 2.63 + start_eth ;; 2.64 + *\ connect_wifi\ *) 2.65 + connect_wifi ;; 2.66 *\ host\ *) 2.67 get_hostname="$(GET host)" 2.68 echo $(eval_gettext 'Changed hostname: $get_hostname') | log 2.69 @@ -129,28 +178,21 @@ 2.70 *\ eth\ *) 2.71 # Wired connections settings 2.72 xhtml_header 2.73 - if [ "$(GET ip)" ]; then 2.74 - DHCP=no 2.75 - STATIC=no 2.76 - [ -n "$(GET dhcp)" ] && DHCP=yes 2.77 - [ -n "$(GET static)" ] && STATIC=yes 2.78 - LOADING_MSG=$(gettext 'Setting up IP...'); loading_msg 2.79 2.80 - sed -i \ 2.81 - -e s"/^INTERFACE=.*/INTERFACE=\"$(GET iface)\""/ \ 2.82 - -e s"/^DHCP=.*/DHCP=\"$DHCP\"/" \ 2.83 - -e s"/^STATIC=.*/STATIC=\"$STATIC\"/" \ 2.84 - -e s"/^NETMASK=.*/NETMASK=\"$(GET netmask)\"/" \ 2.85 - -e s"/^GATEWAY=.*/GATEWAY=\"$(GET gateway)\"/" \ 2.86 - -e s"/^DNS_SERVER=.*/DNS_SERVER=\"$(GET dns)\"/" \ 2.87 - -e s"/^IP=.*/IP=\"$(GET ip)\"/" /etc/network.conf 2.88 - /etc/init.d/network stop | log 2.89 - sleep 2 2.90 - /etc/init.d/network start | log 2.91 - . /etc/network.conf 2.92 + PAR1="size=\"20\" required"; PAR="$PAR1 pattern=\"\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\"" 2.93 + 2.94 + case "$STATIC" in 2.95 + yes) use_static='checked';; 2.96 + *) use_static='';; 2.97 + esac 2.98 + 2.99 + stop_disabled=''; start_disabled='' 2.100 + if cat /sys/class/net/eth*/operstate | fgrep -q up; then 2.101 + start_disabled='disabled' 2.102 + else 2.103 + stop_disabled='disabled' 2.104 fi 2.105 2.106 - PAR1="size=\"20\" required"; PAR="$PAR1 pattern=\"\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\" data-x=\"Four numbers, each in range 0-255, delimited by full stop.\"" 2.107 cat <<EOT 2.108 <h2>$(gettext 'Ethernet connection')</h2> 2.109 2.110 @@ -164,45 +206,48 @@ 2.111 <div> 2.112 <table> 2.113 <tr><td>$(gettext 'Interface')</td> 2.114 - <td><select name="iface" value="$INTERFACE" style="width:100%"/> 2.115 + <td><select name="iface" value="$INTERFACE" style="width:100%"> 2.116 $(cd /sys/class/net; ls -1 | awk -viface="$INTERFACE" '{ 2.117 sel = ($0 == iface) ? " selected":"" 2.118 printf "<option value=\"%s\"%s>%s", $0, sel, $0 2.119 }') 2.120 </select></td> 2.121 </tr> 2.122 - <tr><td> </td> 2.123 - <td><label><input type="checkbox" name="staticip" id="staticip"/> 2.124 + <tr><td>$(gettext 'Static IP')</td> 2.125 + <td><label><input type="checkbox" name="staticip" id="staticip" $use_static/> 2.126 $(gettext 'Use static IP')</td> 2.127 - <tr><td>$(gettext 'IP address')</td> 2.128 - <td><input type="text" name="ip" id="st1" value="$IP" $PAR/></td> 2.129 </tr> 2.130 - <tr><td>$(gettext 'Netmask')</td> 2.131 - <td><input type="text" name="netmask" id="st2" value="$NETMASK" $PAR/></td> 2.132 + <tr id="st1"><td>$(gettext 'IP address')</td> 2.133 + <td><input type="text" name="ip" value="$IP" $PAR/></td> 2.134 </tr> 2.135 - <tr><td>$(gettext 'Gateway')</td> 2.136 - <td><input type="text" name="gateway" id="st3" value="$GATEWAY" $PAR/></td> 2.137 + <tr id="st2"><td>$(gettext 'Netmask')</td> 2.138 + <td><input type="text" name="netmask" value="$NETMASK" $PAR/></td> 2.139 </tr> 2.140 - <tr><td>$(gettext 'DNS server')</td> 2.141 - <td><input type="text" name="dns" id="st4" value="$DNS_SERVER" $PAR/></td> 2.142 + <tr id="st3"><td>$(gettext 'Gateway')</td> 2.143 + <td><input type="text" name="gateway" value="$GATEWAY" $PAR/></td> 2.144 + </tr> 2.145 + <tr id="st4"><td>$(gettext 'DNS server')</td> 2.146 + <td><input type="text" name="dns" value="$DNS_SERVER" $PAR/></td> 2.147 </tr> 2.148 </table> 2.149 </div> 2.150 </form> 2.151 <footer><!-- 2.152 - --><button form="conf" type="submit" name="static" data-icon="ok" >$(gettext 'Activate (static)')</button><!-- 2.153 - --><button form="conf" type="submit" name="dhcp" data-icon="ok" >$(gettext 'Activate (DHCP)' )</button><!-- 2.154 - --><button form="conf" name="disable" data-icon="cancel">$(gettext 'Disable' )</button><!-- 2.155 + --><button form="conf" type="submit" name="start_eth" data-icon="start" $start_disabled>$(gettext 'Start' )</button><!-- 2.156 + --><button form="conf" type="submit" name="stop" data-icon="stop" $stop_disabled >$(gettext 'Stop' )</button><!-- 2.157 --></footer> 2.158 </section> 2.159 2.160 <script type="text/javascript"> 2.161 - document.getElementById('staticip').onchange = static_change; 2.162 +function static_change() { 2.163 + staticip = document.getElementById('staticip').checked; 2.164 + for (i = 1; i < 5; i++) { 2.165 + document.getElementById('st' + i).style.display = staticip ? '' : 'none'; 2.166 + } 2.167 +} 2.168 2.169 - function static_change() { 2.170 - staticip = document.getElementById('staticip'); 2.171 - alert(staticip.checked); 2.172 - } 2.173 +document.getElementById('staticip').onchange = static_change; 2.174 +static_change(); 2.175 </script> 2.176 2.177 <section> 2.178 @@ -343,7 +388,7 @@ 2.179 fi 2.180 2.181 cat <<EOT 2.182 - <button name="start-wifi" data-icon="start" $start_disabled>$(gettext 'Start')</button><!-- 2.183 + <button name="start_wifi" data-icon="start" $start_disabled>$(gettext 'Start')</button><!-- 2.184 --><button name="stop" data-icon="stop" $stop_disabled >$(gettext 'Stop' )</button><!-- 2.185 --><button type="submit" data-icon="refresh" $stop_disabled >$(gettext 'Scan' )</button> 2.186 </form> 2.187 @@ -361,23 +406,6 @@ 2.188 </script> 2.189 EOT 2.190 2.191 - ESSID="$(GET essid)" 2.192 - #WIFI_KEY_TYPE="$(GET keyType)" 2.193 - #WIFI_KEY="$(GET key)" 2.194 - #WIFI_AP="$(GET ap)" 2.195 - 2.196 - if [ -n "$ESSID" ]; then 2.197 - /etc/init.d/network.sh stop | log 2.198 - sed -i \ 2.199 - -e "s/^WIFI_ESSID=.*/WIFI_ESSID=\"$essid\"/" \ 2.200 - -e "s/^WIFI_KEY_TYPE=.*/WIFI_KEY_TYPE=\"$WIFI_KEY_TYPE\"/" \ 2.201 - -e "s/^WIFI_KEY=.*/WIFI_KEY=\"$WIFI_KEY\"/" \ 2.202 - -e "s/^WIFI_AP=.*/WIFI_AP=\"$WIFI_AP\"/" \ 2.203 - /etc/network.conf 2.204 - . /etc/network.conf 2.205 - start_wifi 2.206 - fi 2.207 - 2.208 # ESSID names are clickable 2.209 #SELECT="$(GET select)" 2.210 #if [ -n "$SELECT" ]; then 2.211 @@ -390,7 +418,8 @@ 2.212 <header>$(gettext 'Connection')</header> 2.213 <div> 2.214 <form id="connection"> 2.215 - <input type="hidden" name="connect-wifi"/> 2.216 + <input type="hidden" name="connect_wifi"/> 2.217 + <input type="hidden" name="bssid" id="bssid"/> 2.218 <table> 2.219 <tr><td>$(gettext 'Network SSID')</td> 2.220 <td><input type="text" name="essid" value="$WIFI_ESSID" id="essid"/></td>
3.1 --- a/styles/default/tweaks.css Tue Mar 24 03:39:08 2015 +0200 3.2 +++ b/styles/default/tweaks.css Wed Mar 25 00:38:04 2015 +0200 3.3 @@ -224,6 +224,9 @@ 3.4 3.5 [data-img="web"]::before {color:#268bd2} /*blue*/ 3.6 3.7 +/* disabled buttons with gray icons */ 3.8 +[disabled][data-icon]:before { color: #888; } 3.9 + 3.10 3.11 3.12 /**********