[PATCH v4 2/2] Add new WebUI

Tim Niemeyer tim at tn-x.org
Sa Mär 5 19:10:17 CET 2016


Moin

Ich habs vorhin mal kurz eingespielt. Schaut doch ganz prima aus. Auch
die Architektur sagt mir sehr zu.

Ich hab mir das jetzt nicht im Detail angeschaut, aber beim überfliegen
unten ein paar Kommentare eingebaut:


Am Freitag, den 04.03.2016, 12:27 +0100 schrieb Dominik Heidler:
> Signed-off-by: Dominik Heidler <dominik at heidler.eu>
> ---
[..]

> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/ports.html
> @@ -0,0 +1,97 @@
> +#!/usr/bin/haserl
> +
> +<%                                                                                
> +# write
> +if [ "$REQUEST_METHOD" == "POST" ] ; then
> +	sed -i '/^.*# set via WebUI/d' /etc/network.mode
> +	echo "ETHMODE=\"${POST_mode}\" # set via WebUI" >> /etc/network.mode
> +	cp /rom/etc/sysctl.conf /etc/sysctl.conf
> +	cp /rom/etc/config/network /etc/config/network
> +	do_reboot=1
> +	MSG='<span class="green">Port Modus geändert! Router startet neu...</span>'
> +fi
> +%>
> +<%in /www/ssl/cgi-bin/header %>
> +<%in /www/ssl/cgi-bin/helpers %>
> +<% show_msg %>
> +<form method="POST">
> +<table style="width: 100%;">
> +<% if swconfig list | grep -q switch0 ; then %>
Bist du sicher, dass das Device immer switch0 heißt?

> +	<%# Device has a switch %>
> +	<tr><td>
> +	<fieldset>
> +		<legend>Switch</legend>
> +		<table>
> +			<tr>
> +				<%
> +				swconfig dev switch0 show | grep "\t*link:" | while read line ; do
> +					line=$(echo "$line" | tr -d '\n' | tr -d '\t')
> +					port=$(echo "$line" | sed 's/.* port:\([^ ]*\) .*/\1/')
> +					link=$(echo "$line" | sed 's/.* link:\([^ ]*\).*/\1/')
> +					if [ "$link" == "up" ] ; then
> +						speed=$(echo "$line" | sed 's/.* speed:\([^ ]*\).*/\1/')
> +						duplex=$(echo "$line" | sed 's/.* \([^ ]*-duplex\).*/\1/')
> +					else
> +						speed="no link"
> +						duplex=""
> +					fi
> +					port="Port ${port}"
> +					echo "<td class=\"swport\">"
> +					echo "<span class=\"port\">${port}</span><br />"
> +					echo "<img src=\"/port_${link}.png\" alt=\"${link}\" /><br />"
> +					echo "<span class=\"stat\">$speed<br />$duplex</span>"
> +					echo "</td>"
> +				done
> +				%>
> +			</tr>
> +		</table>
> +	</fieldset>
> +	</td></tr>
> +<% fi %>
> +<% if grep -q network.mode /etc/network.$(uci -q get board.model.name) ; then %>
Ich bin grad noch nicht so richtig überzeugt, dass es gut ist diese
Dateien zu durchsuchen. Eine bessere Alternative habe ich leider aber
grad auch nicht zur Hand.

> +	<%
> +		# Device has only one or two ports and makes use of /etc/network.mode
> +		. /etc/network.mode
> +	%>
> +	<tr><td>
> +	<fieldset>
> +		<legend>Ethernet Anschluss</legend>
> +		<table>
> +			<tr>
> +				<th style="width: 1em;">Anschluss Modus:</th>
> +				<td>
> +					<select name="mode">
> +						<% if grep ETHMODE /etc/network.$(uci -q get board.model.name) | grep -q WAN ; then %>
> +							<option value="WAN" <% [ "$ETHMODE" == "WAN" ] && echo -n selected %>>WAN</option>
> +						<% fi %>
> +						<% if grep ETHMODE /etc/network.$(uci -q get board.model.name) | grep -q CLIENT ; then %>
> +							<option value="CLIENT" <% [ "$ETHMODE" == "CLIENT" ] && echo -n selected %>>Client</option>
> +						<% fi %>
> +						<option value="BATMAN" <% [ "$ETHMODE" == "BATMAN" ] && echo -n selected %>>BATMAN</option>
> +					</select>
> +				</td>
> +			</tr>
> +			<tr><td colspan="2"><input type="submit" name="change_mode" /></td></tr>
> +			<tr><td colspan="2"></td></tr>
> +			<tr><td colspan="2">
> +				WAN: Knoten stellt über Ethernet Anschluss Verbindung zum Internet her.<br />
> +				Client: Normale Clients stellen über Ethernet Anschluss des Knotens Verbindung zum Freifunk Netz her.<br />
> +				BATMAN: Knoten stellt über Ethernet Anschluss Verbindung anderen MESH Knoten her.<br /><br />
> +
> +				Wenn diese Einstellung verändert wird, wird eine evtl. vorhandene manuelle Netzwerkkonfiguration in der
> +				<tt>/etc/config/network</tt> überschrieben.<br />
> +				Anschließend wird der Router neugestartet.
> +			</td></tr>
> +		</table>
> +	</fieldset>
> +	</td></tr>
> +<% fi %>
> +</table>
> +</form>
> +<%in /www/ssl/cgi-bin/footer %>
> +<%
> +# write
> +if [ "$do_reboot" == "1" ] ; then
> +	reboot
> +fi
> +%>
[..]

Tim

-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 473 bytes
Beschreibung: This is a digitally signed message part
URL         : <http://lists.freifunk.net/pipermail/franken-dev-freifunk.net/attachments/20160305/e971cb3a/attachment-0002.sig>


Mehr Informationen über die Mailingliste franken-dev