packages/fff: Add package fff-web-l3config #12

Closed
ChristianD wants to merge 1 commits from ChristianD/firmware:l3configweb into master
4 changed files with 120 additions and 0 deletions

View File

@ -19,6 +19,7 @@ define Package/fff-layer3
+fff-layer3-config \
+fff-network \
+fff-ra \
+fff-web-l3config \
+fff-wireguard \
+arptables \
+bmon \

View File

@ -0,0 +1,30 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=fff-web-l3config
PKG_RELEASE:=1
include $(INCLUDE_DIR)/package.mk
ChristianD marked this conversation as resolved Outdated

PKG_BUILD_DIR kann weg, siehe #25

PKG_BUILD_DIR kann weg, siehe #25
define Package/fff-web-l3config
SECTION:=base
CATEGORY:=Freifunk
TITLE:=Freifunk-Franken layer3 config webui
URL:=http://www.freifunk-franken.de
DEPENDS:= \
+fff-layer3-config \
+fff-web-ui
endef
ChristianD marked this conversation as resolved Outdated

Da du das eh nochmal änderst, würde ich gleich alphabetisch sortieren...

Da du das eh nochmal änderst, würde ich gleich alphabetisch sortieren...
define Package/fff-web-l3config/description
Configure a layer3 router via a web UI
endef
define Build/Compile
ChristianD marked this conversation as resolved Outdated

"Configure a layer3 router via a web UI"

"Configure a layer3 router via a web UI"
# nothing
endef
define Package/fff-web-l3config/install
$(CP) ./files/* $(1)/
endef
$(eval $(call BuildPackage,fff-web-l3config))
ChristianD marked this conversation as resolved Outdated

Prepare und Configure können weg.

Prepare und Configure können weg.

View File

@ -0,0 +1 @@
l3settings,Layer 3
ChristianD marked this conversation as resolved
Review

wir haben überall den Link komplett ausgeschrieben, daher würde ich auch hier 'layer3' statt 'l3settings' bevorzugen.
Wenn noch weitere Layer-3 Seiten geplant sind, dann sollte etwas in der Art l3settings/l3config beibehalten werden und stattdessen der Name der Seite ("Layer 3") angepasst werden.

wir haben überall den Link komplett ausgeschrieben, daher würde ich auch hier 'layer3' statt 'l3settings' bevorzugen. Wenn noch weitere Layer-3 Seiten geplant sind, dann sollte etwas in der Art l3settings/l3config beibehalten werden und stattdessen der Name der Seite ("Layer 3") angepasst werden.

View File

@ -0,0 +1,88 @@
#!/usr/bin/haserl
<%in /www/include/header %>
<%in /www/include/helpers %>
<% show_msg %>
<fieldset style="min-height: 7em;" class="smallinput">
<legend>Status</legend>
<table><tr><td>
<textarea name="status" rows="7" cols="100" readonly>
ChristianD marked this conversation as resolved
Review

Die Einrückung in dieser Datei hat noch Verbesserungspotential.

Die Einrückung in dieser Datei hat noch Verbesserungspotential.
<%
# write
if [ "$REQUEST_METHOD" = "POST" ] && [ -n "${POST_writeconfig}" ] ; then
ChristianD marked this conversation as resolved Outdated

Ich persönlich hab da immer lieber ein "-n" anstatt direkt die Variable als bool zu prüfen. Praktisch sollte es aber egal sein. Ein paar weitere Fälle darunter.

Ich persönlich hab da immer lieber ein "-n" anstatt direkt die Variable als bool zu prüfen. Praktisch sollte es aber egal sein. Ein paar weitere Fälle darunter.
https://git.freifunk-franken.de/freifunk-franken/firmware/src/branch/master/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html#L5 Ich hab mir das von hier geklaut, so ist es wenigstens überall im WebUI gleich

Ich meine nicht [ "$REQUEST_METHOD" = "POST" ], das ist ein Vergleich und okay.

Ich meine [ "${POST_writeconfig}" ], wo der string aus der Variable direkt gegen bool geprüft wird.

Ich meine _nicht_ `[ "$REQUEST_METHOD" = "POST" ]`, das ist ein Vergleich und okay. Ich meine `[ "${POST_writeconfig}" ]`, wo der string aus der Variable direkt gegen bool geprüft wird.

ah ok, ja ist vielleicht schöner, habs mal überarbeitet

ah ok, ja ist vielleicht schöner, habs mal überarbeitet
echo "${POST_l3config}" > /etc/config/gateway
echo "Konfiguration wurde gespeichert. Bitte nun Konfiguration schreiben"
fi
if [ -n "${POST_loadconfig}" ] ; then
yes | configure-layer3 -c
ChristianD marked this conversation as resolved
Review

configure ist ein Schritt, der im WebUI einzeln nur wenig Sinn ergibt. Ich würde das configure stattdessen eher mit in die "testen" und "anwenden" Aktionen packen, so dass es für den Nutzer nur noch zwei Möglichkeiten gibt. Wenn configure-layer3 einen Exitstatus != 0 hat, dann abbrechen und Fehler anzeigen.

configure ist ein Schritt, der im WebUI einzeln nur wenig Sinn ergibt. Ich würde das configure stattdessen eher mit in die "testen" und "anwenden" Aktionen packen, so dass es für den Nutzer nur noch zwei Möglichkeiten gibt. Wenn configure-layer3 einen Exitstatus != 0 hat, dann abbrechen und Fehler anzeigen.
fi
if [ -n "${POST_testconfig}" ] ; then
configure-layer3 -t &
# we need a sleep, because configure-layer3 -t need some time
sleep 1;
echo "Konfigurationstest l&auml;uft, bitte innerhalb von 200 Sekunden abbrechen ansonsten wird die Konfiguration zur&uuml;ck gesetzt"
fi
if [ -n "${POST_testconfigcancel}" ] ; then
configure-layer3 -k 1>&2
echo "Testmodus abgebrochen, Konfiguration bleibt gespeichert. Zum endg&uuml;ltigen &Uuml;bernehmen auf 'Konfiguration &Uuml;bernehmen' klicken"
fi
if [ -n "${POST_applyconfig}" ] ; then
configure-layer3 -a
echo "Konfiguration wurde komplett gespeichert und ist nun rebootfest"
fi
if [ -f /tmp/configure-layer3-pid ] ; then
echo "Testmodus aktiv"
fi
if [ -n "${POST_loadvlandefault}" ] ; then
yes | loadvlandefault 1>&2
echo "VLAN Defaults wurden geladen"
fi
%>
</textarea>
<p>
<form method="post"><input type="submit" name="loadconfig" value="Router konfigurieren" style="margin-top: 5px; margin-left: 3px;" />
<%
if [ -f /tmp/configure-layer3-pid ] ; then
echo "<input type=\"submit\" name=\"testconfigcancel\" value=\"Test beenden\" style=\"margin-top: 5px; margin-left: 3px;\" />"
else
echo "<input type=\"submit\" name=\"testconfig\" value=\"Konfiguration testen\" style=\"margin-top: 5px; margin-left: 3px;\" />"
fi
%>
<input type="submit" name="applyconfig" value="Konfiguration &uuml;bernehmen" style="margin-top: 5px; margin-left: 3px;" /></form>
</p>
</td>
<td>
* Erstelle zuerst unten eine Konfiguration und speichere diese ab</br>
ChristianD marked this conversation as resolved
Review

Passiv verwenden. "Zuerst muss eine Konfiguration [..]"

Passiv verwenden. "Zuerst muss eine Konfiguration [..]"
* Klicke danach auf 'Router konfigurieren' um diese Konfiguration in die Routereinstellungen zu schreiben</br>
* Danach kannst du mit Konfiguration testen, die Konfiguration testen. Sollte alles funktionieren musst du diesen Test mit Test beenden beenden ansonsten werden nach 200 Sekunden die Einstellungen zur&uuml;ruck gesetzt. Sollte die Konfiguration fehlerhaft sein, warte einfach 200 Sekunden und du kommst auf den alten Weg wieder auf das Ger&auml;t. Ein manueller Neustart setzt auch die komplette Konfiguriation z&uuml;ruck</br>
* Wenn die Einstellungen funktionieren klicke auf Konfiguration &uuml;bernehmen, erst dann ist die Konfiguration auch rebootfest.</br>
ChristianD marked this conversation as resolved
Review

Bitte HTML Aufzählungen (ul/li) verwenden.

Noch besser: Als eigenen Block umsetzen.

Bitte HTML Aufzählungen (ul/li) verwenden. Noch besser: Als eigenen Block umsetzen.
</td></tr>
</table>
</fieldset>
<%
# read
l3config=$(cat /etc/config/gateway)
%>
<form method="post">
<table style="width: 100%;">
<tr><td>
<fieldset style="min-height: 13em;">
<legend>Konfigurationsdatei</legend>
ChristianD marked this conversation as resolved
Review

Ein Verweis auf den Dateipfad wäre hier vermutlich nicht schlecht, dann weiß man was man da editiert.

Ein Verweis auf den Dateipfad wäre hier vermutlich nicht schlecht, dann weiß man was man da editiert.
<textarea name="l3config" rows="25" cols="100"><% echo "$l3config" %></textarea>
</fieldset>
<p><input type="submit" name="writeconfig" value="Konfigurationdatei speichern" style="margin-top: 5px; margin-left: 3px;" />
<input type="submit" onclick="return confirm('Achtung: Es werden alle VLAN Einstellungen zur&uuml;ck gesetzt und die Standarteinstellungen gelanden. Willst du dies wirklich?')" name="loadvlandefault" value="VLAN default laden" style="margin-top: 5px; margin-left: 3px;" /></p>
ChristianD marked this conversation as resolved
Review

Typo: Standard

Ich würde das ganze "Auf Standard(einstellungen) zurücksetzen" oder "Standardkonfiguration laden" nennen.

Die Buttons mit in das fieldset der Konfigurationsdatei.

Typo: Standard Ich würde das ganze "Auf Standard(einstellungen) zurücksetzen" oder "Standardkonfiguration laden" nennen. Die Buttons mit in das fieldset der Konfigurationsdatei.
</td><td>
</form>
</table>
<%in /www/include/footer %>