diff options
-rw-r--r-- | contrib/package/luci/Makefile | 20 | ||||
-rw-r--r-- | i18n/english/luasrc/i18n/admin-core.en | 37 | ||||
-rw-r--r-- | i18n/english/luasrc/i18n/default.en | 27 | ||||
-rw-r--r-- | libs/web/luasrc/dispatcher.lua | 17 | ||||
-rw-r--r-- | libs/web/root/etc/config/luci | 21 | ||||
-rw-r--r-- | modules/admin-core/luasrc/controller/admin/index.lua | 12 | ||||
-rw-r--r-- | modules/admin-core/luasrc/controller/admin/status.lua | 7 | ||||
-rw-r--r-- | modules/admin-core/luasrc/controller/admin/system.lua | 19 | ||||
-rw-r--r-- | modules/admin-core/luasrc/i18n/admin_index.en | 20 | ||||
-rw-r--r-- | modules/admin-core/luasrc/view/about.htm | 12 | ||||
-rw-r--r-- | modules/admin-core/luasrc/view/admin_index/index.htm | 16 | ||||
-rw-r--r-- | modules/admin-core/luasrc/view/admin_status/index.htm | 4 | ||||
-rw-r--r-- | themes/fledermaus/luasrc/view/themes/fledermaus/header.htm | 5 | ||||
-rw-r--r-- | themes/openwrt.org/Makefile | 2 | ||||
-rw-r--r-- | themes/openwrt.org/luasrc/view/themes/openwrt.org/footer.htm | 8 | ||||
-rw-r--r-- | themes/openwrt.org/luasrc/view/themes/openwrt.org/header.htm | 136 | ||||
-rw-r--r-- | themes/openwrt.org/root/www/luci-static/openwrt.org/cascade.css | 298 |
17 files changed, 591 insertions, 70 deletions
diff --git a/contrib/package/luci/Makefile b/contrib/package/luci/Makefile index fc0e468ea..39f08c4e9 100644 --- a/contrib/package/luci/Makefile +++ b/contrib/package/luci/Makefile @@ -132,6 +132,7 @@ define Package/luci-ff-halle DEPENDS+= \ +luci-sgi-haserl +luci-app-splash \ +luci-app-ffwizard-leipzig \ + +luci-theme-fledermaus \ +olsrd +olsrd-mod-dyn-gw +olsrd-mod-txtinfo +olsrd-mod-nameservice \ +kmod-tun +ip TITLE:=Freifunk Halle Community Meta-Package @@ -148,6 +149,7 @@ define Package/luci-ff-leipzig DEPENDS+= \ +luci-sgi-haserl +luci-app-splash \ +luci-app-ffwizard-leipzig \ + +luci-theme-fledermaus \ +olsrd +olsrd-mod-dyn-gw +olsrd-mod-txtinfo +olsrd-mod-nameservice \ +kmod-tun +ip TITLE:=Freifunk Leipzig Community Meta-Package @@ -163,6 +165,7 @@ define Package/luci-ff-hannover $(call Package/luci/fftemplate) DEPENDS+= \ +luci-sgi-haserl +luci-app-splash \ + +luci-theme-fledermaus \ +olsrd +olsrd-mod-dyn-gw +olsrd-mod-txtinfo +olsrd-mod-nameservice TITLE:=Freifunk Hannover Community Meta-Package URL:=http://www.freifunk-hannover.de/ @@ -179,7 +182,7 @@ endef define Package/luci-mod-admin-core $(call Package/luci/webtemplate) - DEPENDS+=+luci-web +luci-cbi +luci-theme-fledermaus + DEPENDS+=+luci-web +luci-cbi +luci-theme-openwrt TITLE:=Administration module endef @@ -297,13 +300,22 @@ endef ### Templates ### define Package/luci-theme-fledermaus $(call Package/luci/thtemplate) - TITLE:=Fledermaus (default) + TITLE:=Fledermaus (Freifunk theme) endef define Package/luci-theme-fledermaus/install $(call Package/luci/install/template,$(1),themes/fledermaus) endef +define Package/luci-theme-openwrt + $(call Package/luci/thtemplate) + TITLE:=OpenWRT.org (default) +endef + +define Package/luci-theme-openwrt/install + $(call Package/luci/install/template,$(1),themes/openwrt.org) +endef + ### Compile ### ifneq ($(CONFIG_PACKAGE_luci-core),) @@ -356,6 +368,9 @@ endif ifneq ($(CONFIG_PACKAGE_luci-theme-fledermaus),) PKG_SELECTED_MODULES+=themes/fledermaus endif +ifneq ($(CONFIG_PACKAGE_luci-theme-openwrt),) + PKG_SELECTED_MODULES+=themes/openwrt.org +endif $(eval $(call BuildPackage,luci-core)) @@ -378,3 +393,4 @@ $(eval $(call BuildPackage,luci-sgi-haserl)) $(eval $(call BuildPackage,luci-sgi-webuci)) $(eval $(call BuildPackage,luci-theme-fledermaus)) +$(eval $(call BuildPackage,luci-theme-openwrt)) diff --git a/i18n/english/luasrc/i18n/admin-core.en b/i18n/english/luasrc/i18n/admin-core.en new file mode 100644 index 000000000..2e96bdb50 --- /dev/null +++ b/i18n/english/luasrc/i18n/admin-core.en @@ -0,0 +1,37 @@ +a_i_ui = "User Interface" + +c_lucidesc = [[LuCI is a free Lua library with integrated MVC-Webframework and webinterface for embedded devices, +aspecially routers that run OpenWRT. Luci is licensed under the Apache-License.]] +c_projecthome = "Project Homepage" +c_leaddev = "Lead Development" +c_contributors = "Contributing Developers" +c_thanksto = "Thanks To" + +a_i_i_hello = "Hello!" +a_i_i_admin1 = "This is the administration area of LuCI." +a_i_i_admin2 = "LuCI is a free, flexible, and user friendly graphical interface for configuring OpenWRT Kamikaze." +a_i_i_admin3 = "On the following pages you can adjust all important settings of your router." +a_i_i_admin4 = "You will find a navigation leading to the different configuration pages on the left side." +a_i_i_admin5 = [[As we are always want to improve this interface we are looking forward +to your feedback and suggestions.]] +a_i_i_admin6 = "And now have fun with your router!" +a_i_i_team = "The LuCI Team" + +a_i_status1 = [[Here you can find information about the current system status like CPU clock frequency, memory +usage or network interface data.]] +a_i_status2 = [[Also kernel or service logfiles can be viewed here to get an overview over their current state.]] + +a_s_packages = "Software" +a_s_changepw = "Admin Password" +a_s_ipkg = "IPKG-Configuration" +a_s_sshkeys = "SSH-Keys" +a_s_fstab = "Mount Points" + +luci1 = "Here you can customize the settings and the functionality of LuCI." +language = "Language" +general = "General" +ucicommit = "Post-commit actions" +ucicommit1 = [[These commands will be executed automatically when a given UCI configuration is committed allowing +changes to be applied instantly.]] +keepflash = "Files to be kept when flashing a new firmware" +keepflash1 = "When flashing a new firmware with LuCI these files will be added to the new firmware installation."
\ No newline at end of file diff --git a/i18n/english/luasrc/i18n/default.en b/i18n/english/luasrc/i18n/default.en new file mode 100644 index 000000000..a387c5e1c --- /dev/null +++ b/i18n/english/luasrc/i18n/default.en @@ -0,0 +1,27 @@ +about = "About" +add = "Add" +administration = "Administration" +apply = "Apply" + +changes = "Changes" +config = "Configuration" + +fwupgrade = "Firmware Upgrade" + +hostname = "Hostname" + +load = "Load" + +overview = "Overview" +packagemanager = "Package Manager" +path = "Path" + +reset = "Reset" +revert = "Revert" + +save = "Save" +statistics = "Statistics" +syslog = "System Log" +system = "System" + +webui = "Web UI"
\ No newline at end of file diff --git a/libs/web/luasrc/dispatcher.lua b/libs/web/luasrc/dispatcher.lua index e769fd7b1..e9d3b24d1 100644 --- a/libs/web/luasrc/dispatcher.lua +++ b/libs/web/luasrc/dispatcher.lua @@ -128,9 +128,6 @@ function dispatch() tpl.viewns.media = luci.config.main.mediaurlbase tpl.viewns.resource = luci.config.main.resourcebase - -- Load default translation - require("luci.i18n").loadc("default") - if c and type(c.target) == "function" then dispatched = c @@ -224,10 +221,20 @@ function createtree() end require("luci.i18n") + + -- Load default translation + luci.i18n.loadc("default") + + local scope = _G + for k,v in pairs(_M) do + if type(v) == "function" then + scope[k] = v + end + end for k, v in pairs(index) do - luci.util.updfenv(v, _M) - luci.util.extfenv(v, "_NAME", k) + scope._NAME = k + setfenv(v, scope) local stat, err = pcall(v) if not stat then diff --git a/libs/web/root/etc/config/luci b/libs/web/root/etc/config/luci index 701c93938..5fefe5b27 100644 --- a/libs/web/root/etc/config/luci +++ b/libs/web/root/etc/config/luci @@ -1,33 +1,33 @@ config core main option lang de - option mediaurlbase /luci-static/fledermaus + option mediaurlbase /luci-static/openwrt.org option resourcebase /luci-static/resources config core brand - option title "OpenWRT Kamikaze" - option subtitle Freifunkedition - option firmware "OpenWRT Kamikaze" - option distro "Freifunk Firmware 2.x" + option title "OpenWRT Kamikaze" + option subtitle "Lua Configuration Interface" + option firmware "OpenWRT Kamikaze" + option distro "Development Snapshot" config extern flash_keep - option uci "/etc/config" + option uci "/etc/config" option dropbear "/etc/dropbear" option openvpn "/etc/openvpn" option passwd "/etc/passwd" - option ipkg "/etc/ipkg.conf" + option ipkg "/etc/ipkg.conf" option httpd "/etc/httpd.conf" option firewall "/etc/firewall.user" config event uci_oncommit option network "/etc/init.d/network restart" option wireless "/etc/init.d/network restart" - option olsr "/sbin/reboot" - option dhcp "/etc/init.d/dnsmasq restart" + option olsr "/etc/init.d/olsrd restart" + option dhcp "/etc/init.d/dnsmasq restart" option luci_fw "/etc/init.d/luci_fw restart" option dropbear "/etc/init.d/dropbear restart" option httpd "/etc/init.d/httpd restart" option fstab "/etc/init.d/fstab restart" - option qos "/etc/init.d/qos restart" + option qos "/etc/init.d/qos restart" option luci_splash "/etc/init.d/luci_splash restart" option freifunk "/etc/init.d/luci_freifunk restart" @@ -36,4 +36,5 @@ config internal languages option en "English" config internal themes + option OpenWRT "/luci-static/openwrt.org" option Fledermaus "/luci-static/fledermaus" diff --git a/modules/admin-core/luasrc/controller/admin/index.lua b/modules/admin-core/luasrc/controller/admin/index.lua index 7ce7f1bdc..51f60bd83 100644 --- a/modules/admin-core/luasrc/controller/admin/index.lua +++ b/modules/admin-core/luasrc/controller/admin/index.lua @@ -1,26 +1,30 @@ module("luci.controller.admin.index", package.seeall) function index() + luci.i18n.loadc("admin-core") + local i18n = luci.i18n.translate + local root = node() if not root.target then root.target = alias("admin") end - entry({"about"}, template("about")) + entry({"about"}, template("about")).i18n = "admin-core" local page = node("admin") page.target = alias("admin", "index") - page.title = "Administration" + page.title = i18n("administration", "Administration") page.order = 10 + page.i18n = "admin-core" local page = node("admin", "index") page.target = template("admin_index/index") - page.title = "Übersicht" + page.title = i18n("overview", "Übersicht") page.order = 10 local page = node("admin", "index", "luci") page.target = cbi("admin_index/luci") - page.title = "Oberfläche" + page.title = i18n("a_i_ui", "Oberfläche") end
\ No newline at end of file diff --git a/modules/admin-core/luasrc/controller/admin/status.lua b/modules/admin-core/luasrc/controller/admin/status.lua index 79f728b99..223f54b29 100644 --- a/modules/admin-core/luasrc/controller/admin/status.lua +++ b/modules/admin-core/luasrc/controller/admin/status.lua @@ -1,8 +1,11 @@ module("luci.controller.admin.status", package.seeall) function index() - entry({"admin", "status"}, template("admin_status/index"), "Status", 20) - entry({"admin", "status", "syslog"}, call("action_syslog"), "Systemprotokoll") + luci.i18n.loadc("admin-core") + local i18n = luci.i18n.translate + + entry({"admin", "status"}, template("admin_status/index"), i18n("status", "Status"), 20) + entry({"admin", "status", "syslog"}, call("action_syslog"), i18n("syslog", "Systemprotokoll")) end function action_syslog() diff --git a/modules/admin-core/luasrc/controller/admin/system.lua b/modules/admin-core/luasrc/controller/admin/system.lua index a7c65872a..1bd52e943 100644 --- a/modules/admin-core/luasrc/controller/admin/system.lua +++ b/modules/admin-core/luasrc/controller/admin/system.lua @@ -8,14 +8,17 @@ require("luci.model.ipkg") require("luci.model.uci") function index() - entry({"admin", "system"}, template("admin_system/index"), "System", 30) - entry({"admin", "system", "packages"}, call("action_packages"), "Paketverwaltung", 10) - entry({"admin", "system", "packages", "ipkg"}, call("action_ipkg"), "IPKG-Konfiguration") - entry({"admin", "system", "passwd"}, call("action_passwd"), "Passwort ändern", 20) - entry({"admin", "system", "sshkeys"}, call("action_sshkeys"), "SSH-Schlüssel", 30) - entry({"admin", "system", "hostname"}, cbi("admin_system/hostname"), "Hostname", 40) - entry({"admin", "system", "fstab"}, cbi("admin_system/fstab"), "Einhängepunkte", 50) - entry({"admin", "system", "upgrade"}, call("action_upgrade"), "Firmwareupgrade", 60) + luci.i18n.loadc("admin-core") + local i18n = luci.i18n.translate + + entry({"admin", "system"}, template("admin_system/index"), i18n("system", "System"), 30) + entry({"admin", "system", "packages"}, call("action_packages"), i18n("a_s_packages", "Paketverwaltung"), 10) + entry({"admin", "system", "packages", "ipkg"}, call("action_ipkg"), i18n("a_s_ipkg", "IPKG-Konfiguration")) + entry({"admin", "system", "passwd"}, call("action_passwd"), i18n("a_s_changepw", "Passwort ändern"), 20) + entry({"admin", "system", "sshkeys"}, call("action_sshkeys"), i18n("a_s_sshkeys", "SSH-Schlüssel"), 30) + entry({"admin", "system", "hostname"}, cbi("admin_system/hostname"), i18n("hostname", "Hostname"), 40) + entry({"admin", "system", "fstab"}, cbi("admin_system/fstab"), i18n("a_s_fstab", "Einhängepunkte"), 50) + entry({"admin", "system", "upgrade"}, call("action_upgrade"), i18n("fwupgrade", "Firmwareupgrade"), 60) entry({"admin", "system", "reboot"}, call("action_reboot"), "Neu starten", 70) end diff --git a/modules/admin-core/luasrc/i18n/admin_index.en b/modules/admin-core/luasrc/i18n/admin_index.en deleted file mode 100644 index 0831b59f0..000000000 --- a/modules/admin-core/luasrc/i18n/admin_index.en +++ /dev/null @@ -1,20 +0,0 @@ -luci = "User Interface" - -hello = "Hello!" -admin1 = "This is the administration area of LuCI." -admin2 = "LuCI is a free, flexible, and user friendly graphical interface for configuring OpenWRT Kamikaze." -admin3 = "On the following pages you can adjust all important settings of your router." -admin4 = "You will find a navigation leading to the different configuration pages on the left side." -admin5 = [[As we are always want to improve this interface we are looking forward -to your feedback and suggestions.]] -admin6 = "And now have fun with your router!" -team = "The LuCI Team" - -luci1 = "Here you can customize the settings and the functionality of LuCI." -language = "Language" -general = "General" -ucicommit = "Post-commit actions" -ucicommit1 = [[These commands will be executed automatically when a given UCI configuration is committed allowing -changes to be applied instantly.]] -keepflash = "Files to be kept when flashing a new firmware" -keepflash1 = "When flashing a new firmware with LuCI these files will be added to the new firmware installation."
\ No newline at end of file diff --git a/modules/admin-core/luasrc/view/about.htm b/modules/admin-core/luasrc/view/about.htm index 48a8674e0..c6dd1a101 100644 --- a/modules/admin-core/luasrc/view/about.htm +++ b/modules/admin-core/luasrc/view/about.htm @@ -1,25 +1,25 @@ <%+header%> -<h1><%:about Über%> Luci</h1> -<p><%:lucidesc Luci ist eine freie Lua-Bibliothek mit integriertem MVC-Webframework und Weboberfläche für eingebettete Geräte, +<h1><%:about Über%> LuCI</h1> +<p><%:c_lucidesc LuCI ist eine freie Lua-Bibliothek mit integriertem MVC-Webframework und Weboberfläche für eingebettete Geräte, speziell Netzwerkrouter unter OpenWRT. Luci steht unter der Apache-Lizenz.%></p> -<p><strong><%:projecthome Projekt-Homepage%>: </strong><a href="http://luci.freifunk-halle.net">luci.freifunk-halle.net</a></p> +<p><strong><%:c_projecthome Projekt-Homepage%>: </strong><a href="http://luci.freifunk-halle.net">luci.freifunk-halle.net</a></p> <br /> -<h2><%:leaddev Leitende Entwicklung%></h2> +<h2><%:c_leaddev Leitende Entwicklung%></h2> <ul style="font-weight: bold"> <li><a href="mailto:steven-at-midlink-dot-org">Steven "Cyrus" Barth</a> (OpenWRT, Freifunk Halle)</li> <li><a href="mailto:xm-at-leipzig.freifunk-dot-net">Jo-Philipp "Jow" Wich</a> (Freifunk Leipzig)</li> </ul> <br /> -<h2><%:contributors Mitwirkende Entwickler%></h2> +<h2><%:c_contributors Mitwirkende Entwickler%></h2> <ul style="font-weight: bold"> <li><a href="mailto:nbd-at-openwrt-dot-org">Felix "nbd" Fietkau</a> (OpenWRT)</li> </ul> <br /> -<h2><%:thanksto Dank an%></h2> +<h2><%:c_thanksto Dank an%></h2> <ul style="font-weight: bold"> <li><a href="http://www.computerhilfe-halle.de">Mono</a> (Computerhilfe-Halle.de)</li> <li><a href="mailto:mickey-at-netfreaks-dot-org">Mickey Knox</a> (Freifunk Hannover)</li> diff --git a/modules/admin-core/luasrc/view/admin_index/index.htm b/modules/admin-core/luasrc/view/admin_index/index.htm index 8bcf59746..0623eddae 100644 --- a/modules/admin-core/luasrc/view/admin_index/index.htm +++ b/modules/admin-core/luasrc/view/admin_index/index.htm @@ -1,11 +1,11 @@ <%+header%> -<h1><%:hello Hallo!%></h1> -<p><%:admin1 Dies ist der Administrationsbereich von LuCI.%></p> -<p><%:admin2 LuCI ist eine freie, flexible und benutzerfreundliche grafische Oberfläche zur Konfiguration von OpenWRT Kamikaze.%><br /> -<%:admin3 Auf den folgenden Seiten können alle wichtigen Einstellungen des Routers vorgenommen werden.%></p> -<p><%:admin4 Auf der linken Seite befindet sich eine Navigation, die zu den einzelnen Konfigurationsseiten führt.%></p> -<p><%:admin5 Wir sind natürlich stets darum bemüht, diese Oberfläche +<h1><%:a_i_i_hello Hallo!%></h1> +<p><%:a_i_i_admin1 Dies ist der Administrationsbereich von LuCI.%></p> +<p><%:a_i_i_admin2 LuCI ist eine freie, flexible und benutzerfreundliche grafische Oberfläche zur Konfiguration von OpenWRT Kamikaze.%><br /> +<%:a_i_i_admin3 Auf den folgenden Seiten können alle wichtigen Einstellungen des Routers vorgenommen werden.%></p> +<p><%:a_i_i_admin4 Auf der linken Seite befindet sich eine Navigation, die zu den einzelnen Konfigurationsseiten führt.%></p> +<p><%:a_i_i_admin5 Wir sind natürlich stets darum bemüht, diese Oberfläche noch besser und intuitiver zu Gestalten und freuen uns über jegliche Art von Feedback oder Verbesserungsvorschlägen.%></p> -<p><%:admin6 Und nun wünschen wir viel Spaß mit dem Router!%></p> -<p><em><strong><a href="<%=controller%>/about"><%:team Das LuCI-Team%></a></strong></em></p> +<p><%:a_i_i_admin6 Und nun wünschen wir viel Spaß mit dem Router!%></p> +<p><em><strong><a href="<%=controller%>/about"><%:a_i_i_team Das LuCI-Team%></a></strong></em></p> <%+footer%>
\ No newline at end of file diff --git a/modules/admin-core/luasrc/view/admin_status/index.htm b/modules/admin-core/luasrc/view/admin_status/index.htm index 984093693..849a7a67e 100644 --- a/modules/admin-core/luasrc/view/admin_status/index.htm +++ b/modules/admin-core/luasrc/view/admin_status/index.htm @@ -1,7 +1,7 @@ <%+header%> <h1><%:status Status%></h1> -<p><%:status1 Hier finden sich Informationen über den aktuellen Status des Systems, beispielsweise +<p><%:a_i_status1 Hier finden sich Informationen über den aktuellen Status des Systems, beispielsweise Prozessortakt, Speicherauslastung und Netzwerkschnittstellen.%></p> -<p><%:status2 Zusätzlich können hier Protokolldaten, des Kernels und diverser Systemdienste eingesehen werden, +<p><%:a_i_status2 Zusätzlich können hier Protokolldaten, des Kernels und diverser Systemdienste eingesehen werden, um deren Zustand zu kontrollieren.%></p> <%+footer%>
\ No newline at end of file diff --git a/themes/fledermaus/luasrc/view/themes/fledermaus/header.htm b/themes/fledermaus/luasrc/view/themes/fledermaus/header.htm index 5f876781f..99bd39924 100644 --- a/themes/fledermaus/luasrc/view/themes/fledermaus/header.htm +++ b/themes/fledermaus/luasrc/view/themes/fledermaus/header.htm @@ -1,7 +1,6 @@ <% require("luci.sys") local load1, load5, load15 = luci.sys.loadavg() - local request = require("luci.dispatcher").request local category = request[1] local tree = luci.dispatcher.node() @@ -27,7 +26,7 @@ require("luci.http").prepare_content("text/html") <% if node and node.css then %><link rel="stylesheet" type="text/css" href="<%=resource%>/<%=node.css%>" /><% end %> <meta http-equiv="content-type" content="text/xhtml+xml; charset=utf-8" /> <meta http-equiv="content-script-type" content="text/javascript" /> - <title>LuCI - Lua Configuration Interface</title> + <title>LuCI - Lua Configuration Interface - <%=node.title%></title> </head> <body> <div id="header"> @@ -104,7 +103,7 @@ end %> </div> <div class="sidebar right"> - <div><%:webif Weboberfläche%> + <div><%:webui Weboberfläche%> <ul><% for k,node in pairs(tree.nodes) do if node.title then %> diff --git a/themes/openwrt.org/Makefile b/themes/openwrt.org/Makefile new file mode 100644 index 000000000..81a96f6a8 --- /dev/null +++ b/themes/openwrt.org/Makefile @@ -0,0 +1,2 @@ +include ../../build/config.mk +include ../../build/module.mk
\ No newline at end of file diff --git a/themes/openwrt.org/luasrc/view/themes/openwrt.org/footer.htm b/themes/openwrt.org/luasrc/view/themes/openwrt.org/footer.htm new file mode 100644 index 000000000..6fc2f6089 --- /dev/null +++ b/themes/openwrt.org/luasrc/view/themes/openwrt.org/footer.htm @@ -0,0 +1,8 @@ + </div> + <div class="clear"></div> +</div></div> +</div> + +<div class="separator black whitetext bold"><a href="<%=controller%>/about"><%=require("luci").__appname__ .. " " .. luci.__version__%> - Lua Configuration Interface</a></div> +</body> +</html>
\ No newline at end of file diff --git a/themes/openwrt.org/luasrc/view/themes/openwrt.org/header.htm b/themes/openwrt.org/luasrc/view/themes/openwrt.org/header.htm new file mode 100644 index 000000000..2ab67ecf4 --- /dev/null +++ b/themes/openwrt.org/luasrc/view/themes/openwrt.org/header.htm @@ -0,0 +1,136 @@ +<% +require("luci.sys") +local load1, load5, load15 = luci.sys.loadavg() +local request = require("luci.dispatcher").request +local category = request[1] +local tree = luci.dispatcher.node() +local cattree = category and luci.dispatcher.node(category) +local node = luci.dispatcher.dispatched + +local c = tree +for i,r in ipairs(request) do + if c.nodes and c.nodes[r] then + c = c.nodes[r] + c._menu_selected = true + end +end + +require("luci.i18n").loadc("default") + +require("luci.http").prepare_content("text/html") +%><?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> + <link rel="stylesheet" type="text/css" href="<%=media%>/cascade.css" /> + <% if node and node.css then %><link rel="stylesheet" type="text/css" href="<%=resource%>/<%=node.css%>" /><% end %> + <meta http-equiv="content-type" content="text/xhtml+xml; charset=utf-8" /> + <meta http-equiv="content-script-type" content="text/javascript" /> + <title>LuCI - Lua Configuration Interface - <%=node.title%></title> +</head> +<body> +<div id="header"> + <div class="whitetext smalltext bold right"> + <%=luci.config.brand.firmware%><br /> + <%=luci.config.brand.distro%><br /> + <%:load Last%>: <%=load1%> <%=load5%> <%=load15%><br /> + <%:hostname Hostname%>: <%=luci.sys.hostname()%> + </div> + <div> + <span class="headertitle"><%=luci.config.brand.title%></span><br /> + <span class="whitetext bold"><%=luci.config.brand.subtitle%></span> + </div> +</div> + +<div class="separator black whitetext bold"> +<%:path Pfad%>: <% +local c = tree +local url = controller +for k,v in pairs(request) do + if c.nodes and c.nodes[v] then + c = c.nodes[v] + url = url .. "/" .. v + %><a href="<%=url%>"><%=c.title or v%></a> <% if k ~= #request then %>» <% end + end +end +%> +</div> + +<div id="page"> +<div id="columns"><div id="columnswrapper"> + <div class="sidebar left"> +<% +local function submenu(prefix, node) + if not node._menu_selected or not node.nodes then + return false + end + local index = {} + for k, n in pairs(node.nodes) do + table.insert(index, {name=k, order=n.order or 100}) + end + + table.sort(index, function(a, b) return a.order < b.order end) +%> + <ul> + <% for j, v in pairs(index) do + local nnode = node.nodes[v.name]%> + <li> + <span<% if nnode._menu_selected then %> class="blacktext"<%end%>><a href="<%=controller .. prefix .. v.name%>"><%=nnode.title%></a></span> + <% submenu(prefix .. v.name .. "/", nnode) %> + </li> + <% end %> + </ul> +<% +end + +if cattree and cattree.nodes then + local index = {} + for k, node in pairs(cattree.nodes) do + table.insert(index, {name=k, order=node.order or 100}) + end + + table.sort(index, function(a, b) return a.order < b.order end) + + for i, k in ipairs(index) do + node = cattree.nodes[k.name] + if node.title then %> + <div<% if node._menu_selected then %> class="blacktext"<%end%>><a href="<%=controller%>/<%=category%>/<%=k.name%>"><%=node.title%></a> + <%submenu("/" .. category .. "/" .. k.name .. "/", node)%> + </div> +<% end + end +end +%> + </div> + <div class="sidebar right"> + <div><%:webui Weboberfläche%> + <ul><% + for k,node in pairs(tree.nodes) do + if node.title then %> + <li<% if request[1] == k then %> class="blacktext"<%end%>><a href="<%=controller%>/<%=k%>"><%=node.title%></a></li> +<% end + end%> + </ul> + </div> + <% + if "admin" == request[1] then + require("luci.model.uci") + local ucic = luci.model.uci.changes() + if ucic then + ucic = #luci.util.split(ucic) + end + %> + <div><%:config Konfiguration%> + <ul> + <% if ucic then %> + <li><a href="<%=controller%>/admin/uci/changes"><%:changes Änderungen%>: <%=ucic%></a></li> + <li><a href="<%=controller%>/admin/uci/apply"><%:apply Anwenden%></a></li> + <li><a href="<%=controller%>/admin/uci/revert"><%:revert Verwerfen%></a></li> + <% else %> + <li><%:changes Änderungen%>: 0</li> + <% end %> + </ul> + </div> + <% end %> + </div> + <div id="content">
\ No newline at end of file diff --git a/themes/openwrt.org/root/www/luci-static/openwrt.org/cascade.css b/themes/openwrt.org/root/www/luci-static/openwrt.org/cascade.css new file mode 100644 index 000000000..6469b8f23 --- /dev/null +++ b/themes/openwrt.org/root/www/luci-static/openwrt.org/cascade.css @@ -0,0 +1,298 @@ +@charset "utf-8"; + +body { + font-family: Verdana, Arial, sans-serif; + background-color: #557788; +} + +h1 { + margin: 0%; + font-size: 1.4em; + font-weight: bold; + margin-bottom: 0.5em; +} + +h2 { + margin: 0%; + font-size: 1.2em; + font-weight: bold; +} + +h3 { + margin: 0%; +} + +#page { + background-color: #d4dce0; + border-left: 3px solid #000000; + border-right: 3px solid #000000; +} + +#header { + padding: 0.2em; + height: 4.5em; + padding-left: 1.2em; +} + +#columns { + border-left: 10.1em solid #ccd6db; + border-right: 10.1em solid #ccd6db; + display: block; + padding: 0.1em; +} + +#columnswrapper { + display: block; + margin-left: -10em; + margin-right: -10em; +} + +#content { + margin-left: 14em; + margin-right: 14em; + display: block; + position: relative; + padding: 2px; + font-size: 0.8em; +} + +.headerlogo { + height: 4em; + padding: 5px; +} + +.headerlogo img { + height: 100%; +} + +.headertitle { + font-size: 2.4em; + color: black; + font-weight: bold; + letter-spacing: 0.6em; + text-transform: lowercase; +} + +.separator { + padding-left: 0.25em; + font-weight: bold; + font-size: 0.8em; + line-height: 1.4em; +} + +.whitetext { + color: white; +} + +.blacktext { + color: #000000; +} + +.magentatext { + color: #dc0065; +} + +.inheritcolor { + color: inherit; +} + +.smalltext { + font-size: 0.8em; +} + +.black { + background-color: #000000; +} + +.nodeco { + text-decoration: none; +} + +.redhover:hover { + color: red; +} + +.bold { + font-weight: bold; +} + +.sidebar { + position: relative; + padding: 0.25em; + color: gray; + width: 9em; + font-weight: bold; +} + +.separator a, .sidebar a { + color: inherit; + text-decoration: inherit; +} + +.separator a:hover, .sidebar a:hover { + color: red; +} + +.sidebar div { + padding-bottom: 0.5em; +} + +.sidebar ul { + font-size: 0.8em; + color: white; + list-style-type: none; + padding-left: 1em; + margin-top: 0%; +} + +.table { + display: table; +} + +.table-row { + display: table-row; +} + +.table-cell { + display: table-cell; +} + +.left { + float: left; + text-align: left; +} + +.right { + float: right; + text-align: right; +} + +.clear { + clear: both; +} + +.hidden { + display: none; +} + +.inline { + display: inline; +} + +.code { + background: #f7f7f7; + border: 1px solid #d7d7d7; + margin: 1em 1.75em; + padding: 1em; +} + +code { + display: block; + background: #f7f7f7; + border: 1px solid #d7d7d7; + margin: 1em 1.75em; + padding: 1em; + overflow: auto; + white-space: pre; +} + +.cbi-section { + margin-top: 1em; +} + +.cbi-section-remove { + text-align: right; +} + +.cbi-value { + display: table-row; +} + +.cbi-value-title { + display: table-cell; + line-height: 1.75em; + font-weight: bold; + padding: 0.25em; +} + +.cbi-value-field { + display: table-cell; + text-align: left; + padding: 0.25em; + line-height: 1.75em; +} + +.cbi-value-field input, .cbi-value-field select, +.cbi-optionals select, .cbi-optionals input, +.cbi-section-remove input, .cbi-section-create input { + font-size: 0.8em; + margin: 0%; +} + +.cbi-section-descr { + padding-bottom: 1em; +} + +.cbi-value-description { + display: inline; + font-style: italic; + font-size: 0.8em; + padding: 0.25em; + margin-bottom: 0.5em; +} + +.cbi-form-separator { + margin-top: 1em; +} + +.cbi-section-node { + display: table; + padding: 0.25em; + border: 1px solid #000000; +} + +.cbi-section-row { + display: table-row; +} + +.cbi-section-row-head { + display: table-cell; + font-weight: bold; + padding: 0.25em; +} + +.cbi-section-row-descr { + display: table-cell; + padding: 0.25em; + font-size: 0.8em; +} + +.cbi-section-node h3 { + margin-bottom: 0.5em; +} + +.cbi-error { + color: red; + font-weight: bold; + font-size: 0.8em; + margin-bottom: 0.75em; +} + +.cbi-optionals { + margin-top: 1em; + display: table-cell; +} + +.cbi-optionals option { + font-size: 0.8em; +} + +.error { + color: red; + font-weight: bold; +} + +.ok { + color: green; + font-weight: bold; +}
\ No newline at end of file |