diff options
17 files changed, 570 insertions, 0 deletions
diff --git a/module/admin-core/src/model/cbi/admin_index/contact.lua b/module/admin-core/src/model/cbi/admin_index/contact.lua new file mode 100644 index 0000000000..55f5098a55 --- /dev/null +++ b/module/admin-core/src/model/cbi/admin_index/contact.lua @@ -0,0 +1,15 @@ +m = Map("luci", "Kontakt", [[Diese Daten sind auf der öffentlichen Kontaktseite +sichtbar. Alle Felder sind natürlich freiwillig. Du kannst soviel oder so wenig +über dich angeben, wie du möchtest.]]) + +c = m:section(NamedSection, "contact") + +c:option(Value, "nickname", "Pseudonym") +c:option(Value, "name", "Name") +c:option(Value, "mail", "E-Mail") +c:option(Value, "phone", "Telefon") +c:option(Value, "location", "Standort") +c:option(Value, "geo", "Koordinaten", "Bitte als Breite;Länge angeben") +c:option(Value, "note", "Notiz") + +return m
\ No newline at end of file diff --git a/module/admin-core/src/model/cbi/admin_index/luci.lua b/module/admin-core/src/model/cbi/admin_index/luci.lua new file mode 100644 index 0000000000..eed626c5b7 --- /dev/null +++ b/module/admin-core/src/model/cbi/admin_index/luci.lua @@ -0,0 +1,17 @@ +-- ToDo: Translate, Add descriptions and help texts +m = Map("luci", "FFLuCI") + +c = m:section(NamedSection, "main", "core", "Allgemein") +c:option(Value, "lang", "Sprache") +c:option(Value, "mediaurlbase", "Mediaverzeichnis") + +f = m:section(NamedSection, "flash", "extern", "Firmwareupgrade") +f:option(Value, "keep", "Übernehme Dateien").size = 64 + +p = m:section(NamedSection, "category_privileges", "core", "Kategorieprivilegien") +p.dynamic = true + +u = m:section(NamedSection, "uci_oncommit", "event", "UCI-Befehle beim Anwenden") +u.dynamic = true + +return m
\ No newline at end of file diff --git a/module/admin-core/src/model/cbi/admin_network/dhcp.lua b/module/admin-core/src/model/cbi/admin_network/dhcp.lua new file mode 100644 index 0000000000..83ba196418 --- /dev/null +++ b/module/admin-core/src/model/cbi/admin_network/dhcp.lua @@ -0,0 +1,37 @@ +-- ToDo: Translate, Add descriptions and help texts +require("ffluci.model.uci") +require("ffluci.sys") + +m = Map("dhcp", "DHCP") + +s = m:section(TypedSection, "dhcp") +s.addremove = true +s.anonymous = true + +iface = s:option(ListValue, "interface", "Schnittstelle") +for k, v in pairs(ffluci.model.uci.show("network").network) do + if v[".type"] == "interface" and k ~= "loopback" then + iface:value(k) + end +end + +s:option(Value, "start", "Start").rmempty = true + +s:option(Value, "limit", "Limit").rmempty = true + +s:option(Flag, "dynamicdhcp", "Dynamisches DHCP").rmempty = true + +s:option(Value, "name", "Name").optional = true + +s:option(Flag, "ignore", "Schnittstelle ignorieren").optional = true + +s:option(Value, "netmask", "Netzmaske").optional = true + +s:option(Flag, "force", "Start erzwingen").optional = true + +for i, line in pairs(ffluci.sys.execl("dnsmasq --help dhcp")) do + k, v = line:match("([^ ]+) +([^ ]+)") + s:option(Value, "dhcp"..k, v).optional = true +end + +return m
\ No newline at end of file diff --git a/module/admin-core/src/model/cbi/admin_network/firewall.lua b/module/admin-core/src/model/cbi/admin_network/firewall.lua new file mode 100644 index 0000000000..cf7018e996 --- /dev/null +++ b/module/admin-core/src/model/cbi/admin_network/firewall.lua @@ -0,0 +1,61 @@ +-- ToDo: Translate, Add descriptions and help texts +m = Map("luci_fw", "Firewall") + +s = m:section(TypedSection, "rule") +s.addremove = true +s.anonymous = true + +chain = s:option(ListValue, "chain", "Kette") +chain:value("forward", "Forward") +chain:value("input", "Input") +chain:value("output", "Output") +chain:value("prerouting", "Prerouting") +chain:value("postrouting", "Postrouting") + +s:option(Value, "iface", "Eingangsschnittstelle").optional = true +s:option(Value, "oface", "Ausgangsschnittstelle").optional = true + +proto = s:option(ListValue, "proto", "Protokoll") +proto.optional = true +proto:value("") +proto:value("tcp", "TCP") +proto:value("udp", "UDP") + +s:option(Value, "source", "Quelladresse").optional = true +s:option(Value, "destination", "Zieladresse").optional = true + +sport = s:option(Value, "sport", "Quellport") +sport.optional = true +sport:depends("proto", "tcp") +sport:depends("proto", "udp") + +dport = s:option(Value, "dport", "Zielport") +dport.optional = true +dport:depends("proto", "tcp") +dport:depends("proto", "udp") + +tosrc = s:option(Value, "tosrc", "Neue Quelladresse [SNAT]") +tosrc.optional = true +tosrc:depends("jump", "SNAT") + +tosrc = s:option(Value, "todest", "Neue Zieladresse [DNAT]") +tosrc.optional = true +tosrc:depends("jump", "DNAT") + +jump = s:option(ListValue, "jump", "Aktion") +jump.rmempty = true +jump:value("", "") +jump:value("ACCEPT", "annehmen (ACCEPT)") +jump:value("REJECT", "zurückweisen (REJECT)") +jump:value("DROP", "verwerfen (DROP)") +jump:value("LOG", "protokollieren (LOG)") +jump:value("DNAT", "Ziel umschreiben (DNAT) [nur Prerouting]") +jump:value("MASQUERADE", "maskieren (MASQUERADE) [nur Postrouting]") +jump:value("SNAT", "Quelle umschreiben (SNAT) [nur Postrouting]") + + +add = s:option(Value, "command", "Eigener Befehl") +add.size = 50 +add.rmempty = true + +return m diff --git a/module/admin-core/src/model/cbi/admin_network/ifaces.lua b/module/admin-core/src/model/cbi/admin_network/ifaces.lua new file mode 100644 index 0000000000..193f83f514 --- /dev/null +++ b/module/admin-core/src/model/cbi/admin_network/ifaces.lua @@ -0,0 +1,40 @@ +-- ToDo: Translate, Add descriptions and help texts +m = Map("network", "Schnittstellen") + +s = m:section(TypedSection, "interface") +s.addremove = true +s:exclude("loopback") +s:depends("proto", "static") +s:depends("proto", "dhcp") + +p = s:option(ListValue, "proto", "Protokoll") +p:value("static", "statisch") +p:value("dhcp", "DHCP") +p.default = "static" + +br = s:option(Flag, "type", "Netzwerkbrücke", "überbrückt angegebene Schnittstelle(n)") +br.enabled = "bridge" +br.rmempty = true + +s:option(Value, "ifname", "Schnittstelle") + +s:option(Value, "ipaddr", "IP-Adresse") + +s:option(Value, "netmask", "Netzmaske"):depends("proto", "static") + +gw = s:option(Value, "gateway", "Gateway") +gw:depends("proto", "static") +gw.rmempty = true + +dns = s:option(Value, "dns", "DNS-Server") +dns:depends("proto", "static") +dns.optional = true + +mtu = s:option(Value, "mtu", "MTU") +mtu.optional = true +mtu.isinteger = true + +mac = s:option(Value, "macaddr", "MAC-Adresse") +mac.optional = true + +return m
\ No newline at end of file diff --git a/module/admin-core/src/model/cbi/admin_network/portfw.lua b/module/admin-core/src/model/cbi/admin_network/portfw.lua new file mode 100644 index 0000000000..70a174907f --- /dev/null +++ b/module/admin-core/src/model/cbi/admin_network/portfw.lua @@ -0,0 +1,24 @@ +-- ToDo: Translate, Add descriptions and help texts +require("ffluci.sys") +m = Map("luci_fw", "Portweiterleitung") + +s = m:section(TypedSection, "portfw") +s.addremove = true +s.anonymous = true + +iface = s:option(ListValue, "iface", "Externes Interface") +iface:value("") +for k,v in pairs(ffluci.sys.net.devices()) do + iface:value(v) +end + +proto = s:option(ListValue, "proto", "Protokoll") +proto:value("tcp", "TCP") +proto:value("udp", "UDP") +proto:value("tcpudp", "TCP+UDP") + +dport = s:option(Value, "dport", "Externer Port", "Port[:Endport]") + +to = s:option(Value, "to", "Interne Adresse", "IP-Adresse[:Zielport[-Zielendport]]") + +return m diff --git a/module/admin-core/src/model/cbi/admin_network/ptp.lua b/module/admin-core/src/model/cbi/admin_network/ptp.lua new file mode 100644 index 0000000000..78fcf94b9e --- /dev/null +++ b/module/admin-core/src/model/cbi/admin_network/ptp.lua @@ -0,0 +1,31 @@ +-- ToDo: Translate, Add descriptions and help texts +m = Map("network", "Punkt-zu-Punkt Verbindungen") + +s = m:section(TypedSection, "interface") +s.addremove = true +s:depends("proto", "pppoe") +s:depends("proto", "pptp") + +p = s:option(ListValue, "proto", "Protokoll") +p:value("pppoe", "PPPoE") +p:value("pptp", "PPTP") +p.default = "pppoe" + +s:option(Value, "ifname", "Schnittstelle") + +s:option(Value, "username", "Benutzername") +s:option(Value, "password", "Passwort") + +s:option(Value, "keepalive", "Keep-Alive").optional = true + +s:option(Value, "demand", "Dial on Demand (idle time)").optional = true + +srv = s:option(Value, "server", "PPTP-Server") +srv:depends("proto", "pptp") +srv.optional = true + +mtu = s:option(Value, "mtu", "MTU") +mtu.optional = true +mtu.isinteger = true + +return m
\ No newline at end of file diff --git a/module/admin-core/src/model/cbi/admin_network/routes.lua b/module/admin-core/src/model/cbi/admin_network/routes.lua new file mode 100644 index 0000000000..5a5f780070 --- /dev/null +++ b/module/admin-core/src/model/cbi/admin_network/routes.lua @@ -0,0 +1,16 @@ +-- ToDo: Translate, Add descriptions and help texts +m = Map("network", "Statische Routen") + +s = m:section(TypedSection, "route") +s.addremove = true +s.anonymous = true + +s:option(Value, "interface", "Schnittstelle") + +s:option(Value, "target", "Ziel", "Host-IP oder Netzwerk") + +s:option(Value, "netmask", "Netzmaske", "falls Ziel ein Netzwerk ist").rmemepty = true + +s:option(Value, "gateway", "Gateway") + +return m
\ No newline at end of file diff --git a/module/admin-core/src/model/cbi/admin_network/vlan.lua b/module/admin-core/src/model/cbi/admin_network/vlan.lua new file mode 100644 index 0000000000..3186f2d9bb --- /dev/null +++ b/module/admin-core/src/model/cbi/admin_network/vlan.lua @@ -0,0 +1,10 @@ +-- ToDo: Autodetect things, maybe use MultiValue instead, Translate, Add descriptions +m = Map("network", "VLAN", "Konfguriert den Switch des Routers.") + +s = m:section(TypedSection, "switch") + +for i = 0, 15 do + s:option(Value, "vlan"..i, "vlan"..i).optional = true +end + +return m
\ No newline at end of file diff --git a/module/admin-core/src/model/cbi/admin_services/dnsmasq.lua b/module/admin-core/src/model/cbi/admin_services/dnsmasq.lua new file mode 100644 index 0000000000..d6934c891c --- /dev/null +++ b/module/admin-core/src/model/cbi/admin_services/dnsmasq.lua @@ -0,0 +1,29 @@ +m = Map("dhcp", "Dnsmasq") + +s = m:section(TypedSection, "dnsmasq", "Einstellungen") +s.anonymous = true + +s:option(Flag, "domainneeded", "Anfragen nur mit Domain", "Anfragen ohne Domainnamen nicht weiterleiten") +s:option(Flag, "authoritative", "Authoritativ", "Dies ist der einzige DHCP im lokalen Netz") +s:option(Flag, "boguspriv", "Private Anfragen filtern", "Reverse DNS-Anfragen für lokalen Netze nicht weiterleiten") +s:option(Flag, "filterwin2k", "Windowsanfragen filtern", "nutzlose DNS-Anfragen aktueller Windowssysteme filtern") +s:option(Flag, "localise_queries", "Lokalisiere Anfragen", "Gibt die Adresse eines Hostnamen entsprechend seines Subnetzes zurück") +s:option(Value, "local", "Lokale Server") +s:option(Value, "domain", "Lokale Domain") +s:option(Flag, "expandhosts", "Erweitere Hosts", "Fügt Domainnamen zu einfachen Hosteinträgen in der Resolvdatei hinzu") +s:option(Flag, "nonegcache", "Unbekannte nicht cachen", "Negative DNS-Antworten nicht zwischenspeichern") +s:option(Flag, "readethers", "Verwende /etc/ethers", "Lese Informationen aus /etc/ethers um den DHCP-Server zu konfigurieren") +s:option(Value, "leasefile", "Leasedatei", "Speicherort für vergebenen DHCP-Adressen") +s:option(Value, "resolvfile", "Resolvdatei", "Lokale DNS-Datei") +s:option(Flag, "nohosts", "Ignoriere /etc/hosts").optional = true +s:option(Flag, "strictorder", "Strikte Reihenfolge", "DNS-Server werden strikt der Reihenfolge in der Resolvdatei nach abgefragt").optional = true +s:option(Flag, "logqueries", "Schreibe Abfragelog").optional = true +s:option(Flag, "noresolv", "Ignoriere Resolvdatei").optional = true +s:option(Value, "dnsforwardmax", "gleichzeitige Abfragen").optional = true +s:option(Value, "port", "DNS-Port").optional = true +s:option(Value, "ednspacket_max", "max. EDNS.0 Paketgröße").optional = true +s:option(Value, "dhcpleasemax", "max. DHCP-Leases").optional = true +s:option(Value, "addnhosts", "Zusätzliche Hostdatei").optional = true +s:option(Value, "queryport", "Abfrageport").optional = true + +return m
\ No newline at end of file diff --git a/module/admin-core/src/model/cbi/admin_services/dropbear.lua b/module/admin-core/src/model/cbi/admin_services/dropbear.lua new file mode 100644 index 0000000000..b8fcb9e6b2 --- /dev/null +++ b/module/admin-core/src/model/cbi/admin_services/dropbear.lua @@ -0,0 +1,14 @@ +-- ToDo: Translate, Add descriptions +m = Map("dropbear", "SSH-Server") + +s = m:section(TypedSection, "dropbear") +s.anonymous = true + +port = s:option(Value, "Port", "Port") +port.isinteger = true + +pwauth = s:option(Flag, "PasswordAuth", "Passwortanmeldung") +pwauth.enabled = 'on' +pwauth.disabled = 'off' + +return m
\ No newline at end of file diff --git a/module/admin-core/src/model/cbi/admin_services/httpd.lua b/module/admin-core/src/model/cbi/admin_services/httpd.lua new file mode 100644 index 0000000000..f89dbb7aeb --- /dev/null +++ b/module/admin-core/src/model/cbi/admin_services/httpd.lua @@ -0,0 +1,18 @@ +-- ToDo: Translate, Add descriptions +m = Map("httpd", "HTTP-Server") + +s = m:section(TypedSection, "httpd") +s.anonymous = true + +port = s:option(Value, "port", "Port") +port.isinteger = true + +s:option(Value, "home", "Wurzelverzeichnis") + +config = s:option(Value, "c_file", "Konfigurationsdatei", "/etc/httpd.conf wenn leer") +config.rmempty = true + +realm = s:option(Value, "realm", "Anmeldeaufforderung") +realm.rmempty = true + +return m
\ No newline at end of file diff --git a/module/admin-core/src/model/cbi/admin_services/olsrd.lua b/module/admin-core/src/model/cbi/admin_services/olsrd.lua new file mode 100644 index 0000000000..430b786874 --- /dev/null +++ b/module/admin-core/src/model/cbi/admin_services/olsrd.lua @@ -0,0 +1,82 @@ +-- ToDo: Autodetect things, Translate, Add descriptions +require("ffluci.fs") + +m = Map("olsr", "OLSR") + +s = m:section(NamedSection, "general", "olsr", "Allgemeine Einstellungen") + +debug = s:option(ListValue, "DebugLevel", "Debugmodus") +for i=0, 9 do + debug:value(i) +end + +ipv = s:option(ListValue, "IpVersion", "Internet Protokoll") +ipv:value("4", "IPv4") +ipv:value("6", "IPv6") + +noint = s:option(Flag, "AllowNoInt", "Start ohne Netzwerk") +noint.enabled = "yes" +noint.disabled = "no" + +s:option(Value, "Pollrate", "Abfragerate (Pollrate)", "s").isnumber = true + +tcr = s:option(ListValue, "TcRedundancy", "TC-Redundanz") +tcr:value("0", "MPR-Selektoren") +tcr:value("1", "MPR-Selektoren und MPR") +tcr:value("2", "Alle Nachbarn") + +s:option(Value, "MprCoverage", "MPR-Erfassung").isinteger = true + +lql = s:option(ListValue, "LinkQualityLevel", "VQ-Level") +lql:value("0", "deaktiviert") +lql:value("1", "MPR-Auswahl") +lql:value("2", "MPR-Auswahl und Routing") + +lqfish = s:option(Flag, "LinkQualityFishEye", "VQ-Fisheye") + +s:option(Value, "LinkQualityWinSize", "VQ-Fenstergröße").isinteger = true + +s:option(Value, "LinkQualityDijkstraLimit", "VQ-Dijkstralimit") + +hyst = s:option(Flag, "UseHysteresis", "Hysterese aktivieren") +hyst.enabled = "yes" +hyst.disabled = "no" + + +i = m:section(TypedSection, "Interface", "Schnittstellen") +i.anonymous = true +i.addremove = true +i.dynamic = true + +i:option(Value, "Interface", "Netzwerkschnittstellen") + +i:option(Value, "HelloInterval", "Hello-Intervall").isnumber = true + +i:option(Value, "HelloValidityTime", "Hello-Gültigkeit").isnumber = true + +i:option(Value, "TcInterval", "TC-Intervall").isnumber = true + +i:option(Value, "TcValidityTime", "TC-Gültigkeit").isnumber = true + +i:option(Value, "MidInterval", "MID-Intervall").isnumber = true + +i:option(Value, "MidValidityTime", "MID-Gültigkeit").isnumber = true + +i:option(Value, "HnaInterval", "HNA-Intervall").isnumber = true + +i:option(Value, "HnaValidityTime", "HNA-Gültigkeit").isnumber = true + + +p = m:section(TypedSection, "LoadPlugin", "Plugins") +p.addremove = true +p.dynamic = true + +lib = p:option(ListValue, "Library", "Bibliothek") +lib:value("") +for k, v in pairs(ffluci.fs.dir("/usr/lib")) do + if v:sub(1, 6) == "olsrd_" then + lib:value(v) + end +end + +return m
\ No newline at end of file diff --git a/module/admin-core/src/model/cbi/admin_system/fstab.lua b/module/admin-core/src/model/cbi/admin_system/fstab.lua new file mode 100644 index 0000000000..cf9a483d78 --- /dev/null +++ b/module/admin-core/src/model/cbi/admin_system/fstab.lua @@ -0,0 +1,21 @@ +m = Map("fstab", "Einhängepunkte") + +mount = m:section(TypedSection, "mount", "Einhängepunkte") +mount.anonymous = true +mount.addremove = true + +mount:option(Flag, "enabled", "aktivieren") +mount:option(Value, "device", "Gerät") +mount:option(Value, "target", "Einhängepunkt") +mount:option(Value, "fstype", "Dateisystem") +mount:option(Value, "options", "Optionen") + + +swap = m:section(TypedSection, "swap", "SWAP") +swap.anonymous = true +swap.addremove = true + +swap:option(Flag, "enabled", "aktivieren") +swap:option(Value, "device", "Gerät") + +return m diff --git a/module/admin-core/src/model/cbi/admin_wifi/devices.lua b/module/admin-core/src/model/cbi/admin_wifi/devices.lua new file mode 100644 index 0000000000..0b1b9a2ffe --- /dev/null +++ b/module/admin-core/src/model/cbi/admin_wifi/devices.lua @@ -0,0 +1,52 @@ +-- ToDo: Translate, Add descriptions and help texts + +m = Map("wireless", "Geräte") + +s = m:section(TypedSection, "wifi-device") +--s.addremove = true + +en = s:option(Flag, "disabled", "Aktivieren") +en.enabled = "0" +en.disabled = "1" + +t = s:option(ListValue, "type", "Typ") +t:value("broadcom") +t:value("atheros") +t:value("mac80211") +t:value("prism2") +--[[ +require("ffluci.sys") +local c = ". /etc/functions.sh;for i in /lib/wifi/*;do . $i;done;echo $DRIVERS" +for driver in ffluci.sys.execl(c)[1]:gmatch("[^ ]+") do + t:value(driver) +end +]]-- + +mode = s:option(ListValue, "mode", "Modus") +mode:value("", "standard") +mode:value("11b", "802.11b") +mode:value("11g", "802.11g") +mode:value("11a", "802.11a") +mode:value("11bg", "802.11b+g") +mode.rmempty = true + +s:option(Value, "channel", "Funkkanal") + +s:option(Value, "txantenna", "Sendeantenne").rmempty = true + +s:option(Value, "rxantenna", "Empfangsantenne").rmempty = true + +s:option(Value, "distance", "Distanz", + "Distanz zum am weitesten entfernten Funkpartner (m)").rmempty = true + +s:option(Value, "diversity", "Diversität"):depends("type", "atheros") + +country = s:option(Value, "country", "Ländercode") +country.optional = true +country:depends("type", "broadcom") + +maxassoc = s:option(Value, "maxassoc", "Verbindungslimit") +maxassoc:depends("type", "broadcom") +maxassoc.optional = true + +return m
\ No newline at end of file diff --git a/module/admin-core/src/model/cbi/admin_wifi/networks.lua b/module/admin-core/src/model/cbi/admin_wifi/networks.lua new file mode 100644 index 0000000000..20342ffb03 --- /dev/null +++ b/module/admin-core/src/model/cbi/admin_wifi/networks.lua @@ -0,0 +1,70 @@ +-- ToDo: Translate, Add descriptions and help texts +m = Map("wireless", "Netze") + +s = m:section(TypedSection, "wifi-iface") +s.addremove = true +s.anonymous = true + +s:option(Value, "ssid", "Netzkennung (ESSID)").maxlength = 32 + +device = s:option(ListValue, "device", "Gerät") +local d = ffluci.model.uci.show("wireless").wireless +if d then + for k, v in pairs(d) do + if v[".type"] == "wifi-device" then + device:value(k) + end + end +end + +network = s:option(ListValue, "network", "Netzwerk") +network:value("") +for k, v in pairs(ffluci.model.uci.show("network").network) do + if v[".type"] == "interface" and k ~= "loopback" then + network:value(k) + end +end + +mode = s:option(ListValue, "mode", "Modus") +mode:value("ap", "Access Point") +mode:value("adhoc", "Ad-Hoc") +mode:value("sta", "Client") +mode:value("wds", "WDS") + +s:option(Value, "bssid", "BSSID").optional = true + +s:option(Value, "txpower", "Sendeleistung", "dbm").rmempty = true + +encr = s:option(ListValue, "encryption", "Verschlüsselung") +encr:value("none", "keine") +encr:value("wep", "WEP") +encr:value("psk", "WPA-PSK") +encr:value("wpa", "WPA-Radius") +encr:value("psk2", "WPA2-PSK") +encr:value("wpa2", "WPA2-Radius") + +key = s:option(Value, "key", "Schlüssel") +key:depends("encryption", "wep") +key:depends("encryption", "psk") +key:depends("encryption", "wpa") +key:depends("encryption", "psk2") +key:depends("encryption", "wpa2") +key.rmempty = true + +server = s:option(Value, "server", "Radius-Server") +server:depends("encryption", "wpa") +server:depends("encryption", "wpa2") +server.rmempty = true + +port = s:option(Value, "port", "Radius-Port") +port:depends("encryption", "wpa") +port:depends("encryption", "wpa2") +port.rmempty = true + +s:option(Flag, "isolate", "AP-Isolation", "Unterbindet Client-Client-Verkehr").optional = true + +s:option(Flag, "hidden", "ESSID verstecken").optional = true + + + +return m
\ No newline at end of file diff --git a/module/admin-core/src/model/menu/00admin.lua b/module/admin-core/src/model/menu/00admin.lua new file mode 100644 index 0000000000..2488508bb4 --- /dev/null +++ b/module/admin-core/src/model/menu/00admin.lua @@ -0,0 +1,33 @@ +add("admin", "index", "Übersicht", 10) +act("contact", "Kontakt") +act("luci", "FFLuCI") + +add("admin", "status", "Status", 20) +act("system", "System") + +add("admin", "system", "System", 30) +act("packages", "Paketverwaltung") +act("passwd", "Passwort ändern") +act("sshkeys", "SSH-Schlüssel") +act("fstab", "Einhängepunkte") +act("upgrade", "Firmwareupgrade") +act("reboot", "Neu starten") + +add("admin", "services", "Dienste", 40) +act("olsrd", "OLSR") +act("httpd", "HTTP-Server") +act("dropbear", "SSH-Server") +act("dnsmasq", "Dnsmasq") + +add("admin", "network", "Netzwerk", 50) +act("vlan", "Switch") +act("ifaces", "Schnittstellen") +act("dhcp", "DHCP-Server") +act("ptp", "PPPoE / PPTP") +act("routes", "Statische Routen") +act("portfw", "Portweiterleitung") +act("firewall", "Firewall") + +add("admin", "wifi", "Drahtlos", 60) +act("devices", "Geräte") +act("networks", "Netze")
\ No newline at end of file |