From f00bf93f0739040b68fd53499652bcb00307fb8e Mon Sep 17 00:00:00 2001 From: Manuel Munz Date: Wed, 17 Nov 2010 22:34:21 +0000 Subject: [PATCH] Add luci-theme-freifunk-generic --- contrib/package/luci/Makefile | 2 + themes/freifunk-generic/Makefile | 2 + .../htdocs/luci-static/freifunk-generic/bg.jpg | Bin 0 -> 354 bytes .../luci-static/freifunk-generic/cascade.css | 839 +++++++++++++++++++++ .../htdocs/luci-static/freifunk-generic/header.jpg | Bin 0 -> 316 bytes .../htdocs/luci-static/freifunk-generic/ie7.css | 20 + .../htdocs/luci-static/freifunk-generic/logo.jpg | Bin 0 -> 4742 bytes themes/freifunk-generic/ipkg/postinst | 3 + .../luasrc/view/themes/freifunk-generic/footer.htm | 21 + .../luasrc/view/themes/freifunk-generic/header.htm | 192 +++++ .../etc/uci-defaults/luci-theme-freifunk-generic | 4 + 11 files changed, 1083 insertions(+) create mode 100644 themes/freifunk-generic/Makefile create mode 100644 themes/freifunk-generic/htdocs/luci-static/freifunk-generic/bg.jpg create mode 100644 themes/freifunk-generic/htdocs/luci-static/freifunk-generic/cascade.css create mode 100644 themes/freifunk-generic/htdocs/luci-static/freifunk-generic/header.jpg create mode 100644 themes/freifunk-generic/htdocs/luci-static/freifunk-generic/ie7.css create mode 100644 themes/freifunk-generic/htdocs/luci-static/freifunk-generic/logo.jpg create mode 100644 themes/freifunk-generic/ipkg/postinst create mode 100644 themes/freifunk-generic/luasrc/view/themes/freifunk-generic/footer.htm create mode 100644 themes/freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm create mode 100644 themes/freifunk-generic/root/etc/uci-defaults/luci-theme-freifunk-generic diff --git a/contrib/package/luci/Makefile b/contrib/package/luci/Makefile index bd2db7861..07f0bcd90 100644 --- a/contrib/package/luci/Makefile +++ b/contrib/package/luci/Makefile @@ -487,6 +487,8 @@ $(eval $(call theme,freifunk-bno,Freifunk Berlin Nordost Theme,\ $(eval $(call theme,freifunk-hannover,Freifunk Hannover Theme,\ Mikolas Bingemer )) +$(eval $(call theme,freifunk-generic,Freifunk Generic Theme,\ + Manuel Munz )) ### Translations ### define translation diff --git a/themes/freifunk-generic/Makefile b/themes/freifunk-generic/Makefile new file mode 100644 index 000000000..f7fac7740 --- /dev/null +++ b/themes/freifunk-generic/Makefile @@ -0,0 +1,2 @@ +include ../../build/config.mk +include ../../build/module.mk diff --git a/themes/freifunk-generic/htdocs/luci-static/freifunk-generic/bg.jpg b/themes/freifunk-generic/htdocs/luci-static/freifunk-generic/bg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..822527ead873a1e8e33f55fb22df23314a8a8ddb GIT binary patch literal 354 zcmb7;J8l9o5QhKRhrL)R*uwI{l4y|-#EU@U23SH`B~%m?9DuV>=SV4Xh&-CqT*BC- zNko+yY4q!#Zyx^Le?xBD=N3eSr;zYp*nnj@%QMDu#yKm56r$4+`mWcNr5+4QZA|qr zt*g=G-k9-XJefT<^JZ8tS4+E^+Q!Bu#5os*=nK)em8tB%!@oim$pMs-LZT>D^i=j5_0 RhvV_b31jVEYGkPW#|2ttEi3>4 literal 0 HcmV?d00001 diff --git a/themes/freifunk-generic/htdocs/luci-static/freifunk-generic/cascade.css b/themes/freifunk-generic/htdocs/luci-static/freifunk-generic/cascade.css new file mode 100644 index 000000000..19ac29bf9 --- /dev/null +++ b/themes/freifunk-generic/htdocs/luci-static/freifunk-generic/cascade.css @@ -0,0 +1,839 @@ +@charset "utf-8"; + +@media all { + +html { + min-height: 100%; + height: auto; +} + +body { + color: #cccccc; + background:#fff url(bg.jpg) repeat-x bottom center; + font-family: Verdana, Arial, sans-serif; + font-size: 100%; + line-height: 100%; + padding-bottom: 1.5em; +} + +* { + margin: 0; + padding: 0; +} + +abbr, +acronym { + font-style: normal; + font-variant: normal; +} + +abbr[title], +acronym[title] { + border-bottom: 1px dotted; + cursor: help; +} + +a:link abbr[title], +a:visited abbr[title], +a:link acronym[title], +a:visited acronym[title] { + cursor: pointer; +} + +code { + font-family: monospace; + white-space: pre; +} + +#maincontent ul { + margin-left: 2em; +} + +.warning { + color: red; + background-color: white; + font-weight: bold; + text-decoration: blink; +} + +.clear { + clear: both; +} + +.skiplink, +.navigation, +.hidden { + position: absolute; + left: -1000px; + top: -1000px; + width: 0px; + height: 0px; + overflow: hidden; + display: inline; +} + +.error { + color: #ff0000; + background-color: white; +} + +#header { + min-height: 98px; + background: #FFF url(header.jpg) repeat-x left bottom; + color: #cccccc; + font-weight: bold; +} + +#header_left{ +position: absolute; +text-align:left; +top: 42px; +} + +#header_left a{ +color: #dc0067; +font: bold 28px Helvetica; +text-decoration: none; +} + +#header_right{ +text-align:right; +} + +#header h1 { + padding: 1em 1em 0 1em; +} + +#header p { + padding: 0 1em 1em 1em; +} + +#header h1, +#header p { + font-size: 70%; + font-weight: normal; + line-height: 160%; + text-align: right; +} + +ul.dropdowns { + float: left; + margin: 0; + padding: 0; + width: auto; + list-style: none; +} + +html>body ul.dropdowns { + position: relative; +} + +ul.dropdowns li, +ul.dropdowns ul { + margin: 0; + padding: 0; + list-style: none; +} + +ul.dropdowns li { + float: left; + position: relative; + white-space: nowrap; +} + +ul.dropdowns li ul { + position: absolute; + z-index: 1000; + top: auto; + min-width: 10em; +} + +ul.dropdowns li li { + float: none; + position: relative; +} + +ul.dropdowns li a { + display: block; +} + +ul.dropdowns ul li ul { + top: 0; +} + +ul.dropdowns li ul, +ul.dropdowns li.over ul ul, +ul.dropdowns li.focus ul ul, +ul.dropdowns li:hover ul ul, +ul.dropdowns li.over ul ul ul, +ul.dropdowns li.focus ul ul ul, +ul.dropdowns li:hover ul ul ul, +ul.dropdowns li.over ul ul ul ul, +ul.dropdowns li.focus ul ul ul ul, +ul.dropdowns li:hover ul ul ul ul { + left: -3000px; +} + +ul.dropdowns li.over ul, +ul.dropdowns li.focus ul, +ul.dropdowns li:hover ul { + left: 0; +} + +ul.dropdowns ul li.over ul, +ul.dropdowns ul li.focus ul, +ul.dropdowns ul li:hover ul, +ul.dropdowns ul ul li.over ul, +ul.dropdowns ul ul li.focus ul, +ul.dropdowns ul ul li:hover ul, +ul.dropdowns ul ul ul li.over ul, +ul.dropdowns ul ul ul li.focus ul, +ul.dropdowns ul ul ul li:hover ul { + left: 100%; +} + +#menubar { + position: relative; + width: 100%; + background: #FFF; + color: #004a9c; +} + +#menubar .warning { + color: red; + background-color: #FFF; +} + +#menubar ul.dropdowns { + min-height: 1.8em; + background: #FFF; + color: #004a9c; +} + +#menubar ul.dropdowns li ul { + background: #FFF; + color: #004a9c; + border-width: 0 1px 1px 1px; + border-style: dashed; + border-color: #5a5a5a; +} + +#menubar ul.dropdowns ul li ul { + border-width: 1px; +} + +html #menubar a:link, +html #menubar a:visited { + position: relative; + display: block; + padding: 0.5em; + background: #FFF; + color: #004a9c; + text-decoration: none; + font-size: 80%; + font-weight: normal; +} + + +html #menubar a:link:hover, +html #menubar a:visited:hover, +html #menubar a:link:active, +html #menubar a:visited:active, +#menubar a:link:focus, +#menubar a:visited:focus { + background: #F2F2F2; + color: #e60076; +} + +html #menubar a:link.active, +html #menubar a:visited.active, +html #menubar a:link.preactive, +html #menubar a:visited.preactive { + background: #FFF; + color: #e60076; +} + +html #menubar a:link.warning, +html #menubar a:visited.warning { + background: #FFF; + color: red; + font-weight: bold; + text-decoration: blink; +} + +#menubar ul.dropdowns li.over>a, +#menubar ul.dropdowns li.focus>a, +#menubar ul.dropdowns li:hover>a { +} + +.lang_de #submenu_mini_system { min-width: 13.3em; } +* html .lang_de #submenu_mini_system { width: 13.3em; } + +.lang_pt-br #submenu_mini_network { min-width: 14em; } +* html .lang_pt-br #submenu_mini_network { width: 14em; } + +.lang_pt-br #submenu_mini_system { min-width: 11.5em; } +* html .lang_pt-br #submenu_mini_system { width: 11.5em; } + +.lang_ru #submenu_mini_system { min-width: 18em; } +* html .lang_ru #submenu_mini_system { width: 18em; } + +.lang_pt-br #submenu_admin_index { min-width: 11em; } +* html .lang_pt-br #submenu_admin_index { width: 11em; } + +.lang_ru #submenu_admin_index { min-width: 15.5em; } +* html .lang_ru #submenu_admin_index { width: 15.5em; } + +.lang_ru #submenu_admin_status { min-width: 10.5em; } +* html .lang_ru #submenu_admin_status { width: 10.5em; } + +.lang_de #submenu_admin_system { min-width: 13.3em; } +* html .lang_de #submenu_admin_system { width: 13.3em; } + +.lang_fr #submenu_admin_system { min-width: 14.5em; } +* html .lang_fr #submenu_admin_system { width: 14.5em; } + +.lang_pt-br #submenu_admin_system { min-width: 11.5em; } +* html .lang_pt-br #submenu_admin_system { width: 11.5em; } + +.lang_ru #submenu_admin_system { min-width: 18em; } +* html .lang_ru #submenu_admin_system { width: 18em; } + +#submenu_admin_services_chillispot { min-width: 15.5em; } +* html #submenu_admin_services_chillispot { width: 15.5em; } + +#submenu_admin_services_coovachilli { min-width: 15em; } +* html #submenu_admin_services_coovachilli { width: 15em; } + +.lang_ru #submenu_admin_network_routes { min-width: 15.3em; } +* html .lang_ru #submenu_admin_network_routes { width: 15.3em; } + +#submenu_admin_network_firewall { min-width: 14em; } +* html #submenu_admin_network_firewall { width: 14em; } + +.lang_de #submenu_admin_network_firewall { min-width: 16.5em; } +* html .lang_de #submenu_admin_network_firewall { width: 16.5em; } + +.lang_pt-br #submenu_admin_network_firewall { min-width: 15em; } +* html .lang_pt-br #submenu_admin_network_firewall { width: 15em; } + +#modemenu { + width: auto; + background: #000000; + color: #ffffff; + list-style: none; + margin-right: 1px; +} + +#modemenu li { + float: right; + list-style: none; +} + +#savemenu { + float: right; + margin-right: 2em; +} + +.lang_de #submenu_admin_uci { + width: 12em; +} + +.lang_ru #submenu_admin_uci { + width: 11.5em; +} + +textarea#syslog { + width: 98%; + min-height: 500px; + border: 3px solid #cccccc; + padding: 5px; + font-family: monospace; +} + +#maincontent { + clear: both; + width: 80%; + margin: 0 auto; + margin-top: 2em; + padding: 0.5em; + color: #000000; + font-size: 80%; + background: #fff url(bg.jpg) repeat-x center bottom; + border: 1px dashed #CCCCCC; +} + +#maincontent h2 { + font:normal bold 150% "Trebuchet MS", Verdana, sans-serif; + margin: 0.25em 0 0.7em 0; + border-bottom: 1px solid; + padding: 10px 0 4px 0; + color: #404040; +} + +#maincontent h3 { + margin: 0.5em 0 1.1em 0; + font:italic bold 125% "Trebuchet MS", Verdana, sans-serif; + color: #404040; +} + +#maincontent p { + margin-bottom: 1em; +} + +.cbi-section { + margin-bottom: 0.5em; + padding: 0.5em 1em; + border: 1px dotted #555555; + background-color: #ffffff; + color: #000000; +} + +.cbi-section legend { + font-size: 110%; + font-weight: bold; + height: 1em; + padding: 0 0.25em; + background-color: transparent; + color: #404040 ; +} + +.cbi-section h2 { + margin: 0em 0 0.5em -0.5em !important; +} + +.cbi-section h3 { + text-decoration: none !important; + font-weight: bold !important; + color: #555555 !important; + margin: 0.25em !important; + font-size: 100% !important; +} + +.cbi-section-descr { + margin-bottom: 0.5em; + font-size: 95%; +} + +.cbi-title-ref { + color: inherit; + text-decoration: none; + padding-right: 18px; + background: url('../resources/cbi/link.gif') no-repeat scroll right center; + background-color: inherit; +} + +ul.cbi-apply { + font-size: 90%; +} + +ul.cbi-tabmenu { + padding: 3px 0; + margin-left: 0 !important; + margin-bottom: -1px; + list-style-type: none; +} + +ul.cbi-tabmenu li.cbi-tab, +ul.cbi-tabmenu li.cbi-tab-disabled { + display: inline; + margin: 0; +} + +ul.cbi-tabmenu li.cbi-tab a, +ul.cbi-tabmenu li.cbi-tab-disabled a { + text-decoration: none; + padding: 3px 7px; + margin-right: 3px; + border: 1px outset #000000; + border-bottom: none; + background-color: #EEEEEE; + color: #BBBBBB; +} + +ul.cbi-tabmenu li.cbi-tab-highlighted a { + color: #000000; + background-color: #FFEEAA; +} + +ul.cbi-tabmenu li a:hover { + color: #000000; +} + +ul.cbi-tabmenu li.cbi-tab a { + position: relative; + top: 1px; + padding-top: 4px; + color: #000000; + background-color: #FFFFFF; +} + +div.cbi-tab-descr { + background-image: url(/luci-static/resources/cbi/help.gif); + background-position: 0.25em 50%; + background-repeat: no-repeat; + border-bottom: 1px solid #CCCCCC; + margin: 0.25em 0.25em 2em; + padding: 0.5em 0.5em 0.5em 2em; +} + + +input[type=submit], +input[type=reset], +input[type=image] { + cursor: pointer; +} + + +select, +input, +textarea { + background: #ffffff; + color: #000000; + border: 1px solid #cccccc; +} + +input[type=image] { + border: none; +} + +input:focus, +input:hover, +select:focus, +select:hover, +textarea:focus, +textarea:hover { + background-color: #ffffff; + color: #000000; +} + +select, +input[type=text], +input[type=password] { + width: 20em; +} + +td select, +td input[type=text], +td input[type=password] { + width: 99%; +} + +input.cbi-input-user { + background: url('../resources/cbi/user.gif') no-repeat scroll 1px center; + background-color: inherit; + color: #000000; + text-indent: 17px; +} + +input.cbi-input-password { + background: url('../resources/cbi/key.gif') no-repeat scroll 1px center; + background-color: inherit; + color: #000000; + text-indent: 17px; +} + +input.cbi-input-find { + background: url('../resources/cbi/find.gif') no-repeat scroll 1px center; + background-color: inherit; + color: #000000; + padding-left: 17px; +} + +input.cbi-input-reload { + background: url('../resources/cbi/reload.gif') no-repeat scroll 1px center; + background-color: inherit; + color: #000000; + padding-left: 17px; +} + +input.cbi-input-add, +input.cbi-button-add { + background: url('../resources/cbi/add.gif') no-repeat scroll 1px center; + background-color: inherit; + color: #000000; + padding-left: 17px; + padding-right: 1px; + border: 1px solid #FFF; +} + +input.cbi-input-fieldadd, +input.cbi-button-fieldadd { + background: url(../resources/cbi/fieldadd.gif) no-repeat scroll 1px center; + background-color: inherit; + color: #000000; + padding-left: 17px; + padding-right: 1px; +} + +input.cbi-input-reset, +input.cbi-button-reset { + background: url('../resources/cbi/reset.gif') no-repeat scroll 1px center; + background-color: inherit; + color: #000000; + padding-left: 17px; + padding-right: 1px; + border: none; +} + +input.cbi-input-save, +input.cbi-button-save { + background: url('../resources/cbi/save.gif') no-repeat scroll 1px center; + background-color: inherit; + color: #000000; + padding-left: 17px; + padding-right: 1px; + border: none; +} + +input.cbi-input-apply, +input.cbi-button-apply { + background: url('../resources/cbi/apply.gif') no-repeat scroll 1px center; + background-color: inherit; + color: #000000; + padding-left: 17px; + padding-right: 1px; + border: none; +} + +input.cbi-input-remove, +div.cbi-section-remove input { + background: url('../resources/cbi/remove.gif') no-repeat scroll 1px center; + background-color: inherit; + color: #000000; + padding-left: 17px; + padding-right: 1px; + border: 1px solid #fff; +} + +div.cbi-section-remove input { + border-bottom: none; +} + +textarea { + margin-left: -1px; + margin-bottom: 0.5em; +} + +form > div > input[type=submit], +form > div > input[type=reset] { + float: right; + margin-left: 0.5em; +} + +table td, +table th { + color: #000000; +} + +table.smalltext { + background: #f5f5f5; + color: #000000; + border: 1px solid #666666; + font-size: 90%; + width: 80%; + margin-left: auto; + margin-right: auto; + border-collapse: collapse; +} + +table.smalltext tr:hover td { + background-color: #bbddee; + color: #000000; +} + +table.smalltext tr th { + padding: 0 0.25em; + border-left: 1px solid #666666; + text-align: left; +} + +table.smalltext tr td { + padding: 0 0.25em; + border-top: 1px solid #666666; + border-left: 1px solid #666666; +} + +table.cbi-section-table .cbi-rowstyle-1, +table.cbi-section-table .cbi-rowstyle-1 * { + background-color: #f1f6fa; + color: #000000; +} + +.cbi-section .cbi-rowstyle-1 h3 { + background-color: #f1f6fa; + color: #555555; +} + +.cbi-rowstyle-2 { + color: #000000; +} + +div.cbi-value { + clear: left; + vertical-align: middle; + padding-left: 0.25em; + border-bottom: 1px dashed #bbbbbb; +} + +div.cbi-value:hover { + background: #f8f8f8; + color: #000000; +} + +.cbi-value-title { + float: left; + width: 40%; + line-height: 1.8em; +} + +div.cbi-value-field { + width: 58%; + margin-left: 40%; + padding: 0.25em 0; +} + +div.cbi-value-description { + font-size: 90%; + display: inline; +} + +div.cbi-section-create { + clear: left; + white-space: nowrap; + vertical-align: top; +} + +div.cbi-tblsection-create { + border-bottom: 1px dotted #bbbbbb; +} + +div.cbi-section-create .cbi-button { + margin: 0.25em; +} + +input.cbi-section-create-name { + border: ; + margin-right: -0.25em; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #999999; + border-right-color: #999999; + border-bottom-color: #999999; + border-left-color: #999999; +} + +div.cbi-map-descr { + margin-bottom: 1em; +} + +div.cbi-optionals { + padding: 0.25em; + border-bottom: 1px dotted #bbbbbb; +} + +div.cbi-section-remove { + float: right; +} + +.cbi-section-node { + clear: both; + border-top: 1px dotted #bbbbbb; + border-left: 1px dotted #bbbbbb; + border-right: 1px dotted #bbbbbb; + border-bottom: none; + padding-bottom: 0; +} + +.cbi-section-node table div { + padding-bottom: 0; + border-bottom: none; +} + +.cbi-section-node div.cbi-section-table-row { + margin: 0.25em; +} + +table.cbi-section-table { + width: 100%; + font-size: 95%; +} + +table.cbi-section-table th, +table.cbi-section-table td { + text-align: center; +} + +tr.cbi-section-table-descr th { + font-weight: normal; + font-size: 90%; +} + +td.cbi-section-table-optionals { + text-align: left !important; + padding-top: 1em; +} + +.cbi-value-helpicon img { + vertical-align: bottom; +} + +div.cbi-error { + font-size: 95%; + font-weight: bold; + color: #ff0000; + background-color: #ffffff; +} + +td.cbi-value-error { + border-color: red; +} + +.cbi-value-error input, +.cbi-value-error select { + color: red; + background-color: #ffcccc; +} + +.cbi-section-error { + color: red; + background-color: white; + font-size: 95%; + border: 1px dotted red; + margin: 3px; + padding: 3px; +} + +.right { + text-align: right; +} + +.luci { + position: fixed; + bottom: 0; + left: 0; + text-align: right; +} + +.luci a:link, +.luci a:visited { + background-color: transparent; + color: #666666; + text-decoration: none; + font-size: 70%; +} + +.inline { + display: inline; +} + +.error500 { + white-space: normal; + border: 1px dotted #ff0000; + background-color: #ffffff; + color: #000000; + padding: 0.5em; +} + diff --git a/themes/freifunk-generic/htdocs/luci-static/freifunk-generic/header.jpg b/themes/freifunk-generic/htdocs/luci-static/freifunk-generic/header.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2fde5a21254674636804e41c7e655640ed869184 GIT binary patch literal 316 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 literal 0 HcmV?d00001 diff --git a/themes/freifunk-generic/ipkg/postinst b/themes/freifunk-generic/ipkg/postinst new file mode 100644 index 000000000..76edf3621 --- /dev/null +++ b/themes/freifunk-generic/ipkg/postinst @@ -0,0 +1,3 @@ +[ -n "${IPKG_INSTROOT}" ] || { + ( . /etc/uci-defaults/luci-theme-freifunk-generic ) && rm -f /etc/uci-defaults/luci-theme-freifunk-generic +} diff --git a/themes/freifunk-generic/luasrc/view/themes/freifunk-generic/footer.htm b/themes/freifunk-generic/luasrc/view/themes/freifunk-generic/footer.htm new file mode 100644 index 000000000..98d48ad85 --- /dev/null +++ b/themes/freifunk-generic/luasrc/view/themes/freifunk-generic/footer.htm @@ -0,0 +1,21 @@ +<%# +LuCI - Lua Configuration Interface +Copyright 2008 Steven Barth +Copyright 2008 Jo-Philipp Wich + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +$Id: footer.htm 4185 2009-01-30 14:00:35Z jow $ + +-%> +
+ + +

Powered by <%= luci.__appname__ .. " (v" .. luci.__version__ .. ")" %>

+ + + diff --git a/themes/freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm b/themes/freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm new file mode 100644 index 000000000..a7a947ef8 --- /dev/null +++ b/themes/freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm @@ -0,0 +1,192 @@ +<%# +LuCI - Lua Configuration Interface +Copyright 2008 Steven Barth +Copyright 2008 Jo-Philipp Wich + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +$Id: header.htm 4079 2009-01-17 17:59:11Z Cyrus $ + +-%> +<% +require("luci.sys") +local load1, load5, load15 = luci.sys.loadavg() +local request = require("luci.dispatcher").context.path +local category = request[1] +local tree = luci.dispatcher.node() +local cattree = category and luci.dispatcher.node(category) +local node = luci.dispatcher.context.dispatched +local hostname = luci.sys.hostname() + + +local c = luci.model.uci.cursor():get_all("freifunk", "community") + +if c and c.name then + community = c.name +else + community = "Freifunk" +end + +if c and c.homepage then + homepage = c.homepage +else + homepage = "http://freifunk.net" +end + +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("application/xhtml+xml") + +-%> + + + + + + + + + +<% if node and node.css then %> +<% end -%> + +<%=striptags( hostname .. ( (node and node.title) and ' - ' .. node.title or '')) %> - LuCI + + + + + + + + + + + + +
diff --git a/themes/freifunk-generic/root/etc/uci-defaults/luci-theme-freifunk-generic b/themes/freifunk-generic/root/etc/uci-defaults/luci-theme-freifunk-generic new file mode 100644 index 000000000..131f54e21 --- /dev/null +++ b/themes/freifunk-generic/root/etc/uci-defaults/luci-theme-freifunk-generic @@ -0,0 +1,4 @@ +uci batch <<-EOF + set luci.themes.Freifunk_Generic=/luci-static/freifunk-generic + commit luci +EOF -- 2.11.0