diff options
34 files changed, 1030 insertions, 0 deletions
diff --git a/themes/oxygen/Makefile b/themes/oxygen/Makefile new file mode 100644 index 000000000..81a96f6a8 --- /dev/null +++ b/themes/oxygen/Makefile @@ -0,0 +1,2 @@ +include ../../build/config.mk +include ../../build/module.mk
\ No newline at end of file diff --git a/themes/oxygen/htdocs/luci-static/oxygen/bg.png b/themes/oxygen/htdocs/luci-static/oxygen/bg.png Binary files differnew file mode 100644 index 000000000..cfcb575f8 --- /dev/null +++ b/themes/oxygen/htdocs/luci-static/oxygen/bg.png diff --git a/themes/oxygen/htdocs/luci-static/oxygen/cascade.css b/themes/oxygen/htdocs/luci-static/oxygen/cascade.css new file mode 100644 index 000000000..5bf14d2f9 --- /dev/null +++ b/themes/oxygen/htdocs/luci-static/oxygen/cascade.css @@ -0,0 +1,656 @@ +@charset "utf-8"; + +@media all { + +html, body { + height: 100%; +} + +body { + font-family: Verdana, Arial, sans-serif; + font-size: 101%; + line-height: 100%; + background: #557788 url(bg.png) no-repeat; +} + +div#screen { + min-height: 100%; + background: url(footer.png) no-repeat bottom fixed; +} + +* { + 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; +} + +.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-image: url(header.png); + background-repeat: no-repeat; + background-position: left center; + background-color: #557788; + color: #ffffff; + 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; +} + +.menubar { + background: #000000; + background: rgba(0, 0, 0, 0.8); + color: #ffffff; + width: 80%; + font-size: 0.8em; + + margin: 0.5em auto; + + padding: 0.25em; + padding-left: 0.5em; + padding-right: 0.5em; + + border: 1px solid #000000; + border-radius: 0.8em; + -khtml-border-radius: 0.8em; + -moz-border-radius: 0.8em; + -webkit-border-radius:0.8em; + -opera-border-radius: 0.8em; +} + +.menubar .warning { + color: red; + background-color: #557788; +} + +html .menubar a:link, +html .menubar a:visited { + color: #ffffff; + text-decoration: none; + font-weight: bold; +} + +html .menubar a.menulink { + margin-left: 1em; +} + + +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: #000000; + color: #ffff00; +} + +html .menubar a:link.active, +html .menubar a:visited.active, +html .menubar a:link.preactive, +html .menubar a:visited.preactive { + background: #000000; + color: #ffff00; + font-weight: bold; +} + +html .menubar a:link.warning, +html .menubar a:visited.warning { + background: #000000; + color: red; + font-weight: bold; +} + +.lang_de #submenu_admin_uci { + width: 12em; +} + +.lang_ru #submenu_admin_uci { + width: 11.5em; +} + +#maincontent { + clear: both; + width: 80%; + margin: 0 auto; + padding: 0.5em; + background: #f5f5f5; + background: rgba(245, 245, 245, 0.9); + color: #000000; + border-width: 1px solid #444444; + font-size: 80%; + + border-radius: 1em; + -khtml-border-radius: 1em; + -moz-border-radius: 1em; + -webkit-border-radius: 1em; + -opera-border-radius: 1em; +} + +#maincontent h2 { + margin: 0.25em 0 0.5em 0; + font-size: 150%; + font-weight: normal; +} + +#maincontent h3 { + margin: 0.5em 0; + font-size: 120%; + font-weight: normal; + text-decoration: underline; +} + +#maincontent p { + margin-bottom: 1em; +} + +.cbi-section { + margin-bottom: 0.5em; + padding: 0.5em 1em; + border: 1px dotted #555555; + background-color: #ffffff; + background-color: rgba(255, 255, 255, 0.8); + color: #000000; +} + +.cbi-section legend { + font-size: 110%; + font-weight: bold; + height: 1em; + padding: 0 0.25em; + background-color: transparent; + color: #555555; +} + +*+html .cbi-section legend { + background-color: #ffffff; + background-color: rgba(255, 255, 255, 0.8); + color: #555555; +} + +* html .cbi-section legend { + background-color: #ffffff; + background-color: rgba(255, 255, 255, 0.8); + color: #555555; +} + +.cbi-section h2 { + margin: 0em 0 0.5em -0.5em !important; +} + +.cbi-section h3 { + height: 1.5em; + font-size: 90%; + background-color: #ffffff; + background-color: rgba(255, 255, 255, 0.8); + color: #555555; +} + +.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%; +} + +input[type=submit], +input[type=reset], +input[type=image] { + cursor: pointer; +} + + +select, +input, +textarea { + background: #eeeeee; + color: #000000; + border-width: 1px; + border-color: #000000; +} + +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; + padding-left: 17px; +} + +input.cbi-input-password { + background: url('../resources/cbi/key.gif') no-repeat scroll 1px center; + background-color: inherit; + color: #000000; + padding-left: 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; +} + +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; +} + +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; +} + +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; +} + +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; +} + +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.smalltext { + background: #f5f5f5; + color: #000000; + border-top: 1px solid #666666; + border-right: 1px solid #666666; + border-bottom: 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: #eeeeff; + color: #000000; +} + +.cbi-section .cbi-rowstyle-1 h3 { + background-color: #eeeeff; + color: #555555; +} + +.cbi-rowstyle-2 { +} + +div.cbi-value { + clear: left; + vertical-align: middle; + padding-left: 0.25em; + border-bottom: 1px dotted #bbbbbb; +} + +div.cbi-value:hover { + background: #f8f8f8; + color: #000000; +} + +.cbi-value-title { + float: left; + width: 40%; +} + +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; +} + +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; + color: #ffffff; +} + +.luci a:link, +.luci a:visited { + background-color: transparent; + color: #ffffff; + 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; +} + +#memorybar { + width: 200px; + height: 8px; + border: 1px solid #bbb; + color: black; + background-color: red; +} + +#memfree, #membuffers, #memcached { + float: right; + border: 1px solid #bbb; + height: 6px; +} + +#memfree { + background-color: green; + color: black; +} + +#membuffers { + background-color: yellow; + color: black; +} + +#memcached { + background-color: #ffa500; + color: black; +} + + +/* obligatory IE6 Voodoo Code */ + +* html body { + padding-left: 50% !important; +} + +* html div#header { + margin-left: -100% !important; +} + +* html div.menubar { + margin-left: -100% !important; + width: 200% !important; +} + +* html div#maincontent { + margin-left: -80% !important; + width: 160% !important; +} + +* html div.cbi-value-description { + margin-left: 40%; +} + +} diff --git a/themes/oxygen/htdocs/luci-static/oxygen/dashboard.css b/themes/oxygen/htdocs/luci-static/oxygen/dashboard.css new file mode 100644 index 000000000..ba9691e5c --- /dev/null +++ b/themes/oxygen/htdocs/luci-static/oxygen/dashboard.css @@ -0,0 +1,99 @@ +@charset "utf-8"; + +@media all { + +div.dashicon { + float: left; +} + +div.dashicon a { + background-image: url(icons/default.png); + background-repeat: no-repeat; + background-position: top; + display: block; + width: 70px; + padding-top: 70px; + color: #000000; + text-decoration: none; + text-align: center; + margin: 2em; + font-weight: bold; +} + +div.di_network a { + background-image: url(icons/network.png); +} + +div.di_luci a { + background-image: url(icons/desktop.png); +} + +div.di_index a { + background-image: url(icons/overview.png); +} + +div.di_logout a { + background-image: url(icons/logout.png); +} + +div.di_freifunk a { + background-image: url(icons/freifunk.png); +} + +div.di_status a { + background-image: url(icons/status.png); +} + +div.di_system a { + background-image: url(icons/system.png); +} + +div.di_syslog a { + background-image: url(icons/shell.png); +} + +div.di_ntpc a { + background-image: url(icons/datetime.png); +} + +div.di_leds a { + background-image: url(icons/lightbulb.png); +} + +div.di_reboot a { + background-image: url(icons/restart.png); +} + +div.di_passwd a { + background-image: url(icons/login.png); +} + +div.di_statistics a { + background-image: url(icons/stats.png); +} + +div.di_packages a { + background-image: url(icons/package.png); +} + +div.di_sshkeys a { + background-image: url(icons/key.png); +} + +div.di_upgrade a { + background-image: url(icons/flash.png); +} + +div.di_services a { + background-image: url(icons/worker.png); +} + +div.di_backup a { + background-image: url(icons/switch.png); +} + +div.di_fstab a { + background-image: url(icons/harddisk.png); +} + +}
\ No newline at end of file diff --git a/themes/oxygen/htdocs/luci-static/oxygen/footer.png b/themes/oxygen/htdocs/luci-static/oxygen/footer.png Binary files differnew file mode 100644 index 000000000..ea0dc782c --- /dev/null +++ b/themes/oxygen/htdocs/luci-static/oxygen/footer.png diff --git a/themes/oxygen/htdocs/luci-static/oxygen/header.png b/themes/oxygen/htdocs/luci-static/oxygen/header.png Binary files differnew file mode 100644 index 000000000..5a7c9a10d --- /dev/null +++ b/themes/oxygen/htdocs/luci-static/oxygen/header.png diff --git a/themes/oxygen/htdocs/luci-static/oxygen/icons/COPYING.oxygen b/themes/oxygen/htdocs/luci-static/oxygen/icons/COPYING.oxygen new file mode 100644 index 000000000..c87ac56a2 --- /dev/null +++ b/themes/oxygen/htdocs/luci-static/oxygen/icons/COPYING.oxygen @@ -0,0 +1,48 @@ +The Oxygen Icon Theme + Copyright (C) 2007 David Vignoni <david@icon-king.com> + Copyright (C) 2007 Johann Ollivier Lapeyre <johann@oxygen-icons.org> + Copyright (C) 2007 Kenneth Wimer <kwwii@bootsplash.org> + Copyright (C) 2007 Nuno Fernades Pinheiro <nf.pinheiro@gmail.com> + Copyright (C) 2007 Riccardo Iaconelli <riccardo@oxygen-icons.org> + Copyright (C) 2007 David Miller <miller@oxygen-icons.org> + +and others + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 3 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library. If not, see <http://www.gnu.org/licenses/>. + +Clarification: + + The GNU Lesser General Public License or LGPL is written for + software libraries in the first place. We expressly want the LGPL to + be valid for this artwork library too. + + KDE Oxygen theme icons is a special kind of software library, it is an + artwork library, it's elements can be used in a Graphical User Interface, or + GUI. + + Source code, for this library means: + - where they exist, SVG; + - otherwise, if applicable, the multi-layered formats xcf or psd, or + otherwise png. + + The LGPL in some sections obliges you to make the files carry + notices. With images this is in some cases impossible or hardly useful. + + With this library a notice is placed at a prominent place in the directory + containing the elements. You may follow this practice. + + The exception in section 5 of the GNU Lesser General Public License covers + the use of elements of this art library in a GUI. + + kde-artists [at] kde.org diff --git a/themes/oxygen/htdocs/luci-static/oxygen/icons/datetime.png b/themes/oxygen/htdocs/luci-static/oxygen/icons/datetime.png Binary files differnew file mode 100644 index 000000000..641653c07 --- /dev/null +++ b/themes/oxygen/htdocs/luci-static/oxygen/icons/datetime.png diff --git a/themes/oxygen/htdocs/luci-static/oxygen/icons/default.png b/themes/oxygen/htdocs/luci-static/oxygen/icons/default.png Binary files differnew file mode 100644 index 000000000..ffe97ae30 --- /dev/null +++ b/themes/oxygen/htdocs/luci-static/oxygen/icons/default.png diff --git a/themes/oxygen/htdocs/luci-static/oxygen/icons/desktop.png b/themes/oxygen/htdocs/luci-static/oxygen/icons/desktop.png Binary files differnew file mode 100644 index 000000000..2e8c72031 --- /dev/null +++ b/themes/oxygen/htdocs/luci-static/oxygen/icons/desktop.png diff --git a/themes/oxygen/htdocs/luci-static/oxygen/icons/flash.png b/themes/oxygen/htdocs/luci-static/oxygen/icons/flash.png Binary files differnew file mode 100644 index 000000000..7e9dc7861 --- /dev/null +++ b/themes/oxygen/htdocs/luci-static/oxygen/icons/flash.png diff --git a/themes/oxygen/htdocs/luci-static/oxygen/icons/freifunk.png b/themes/oxygen/htdocs/luci-static/oxygen/icons/freifunk.png Binary files differnew file mode 100644 index 000000000..04d30a7d4 --- /dev/null +++ b/themes/oxygen/htdocs/luci-static/oxygen/icons/freifunk.png diff --git a/themes/oxygen/htdocs/luci-static/oxygen/icons/harddisk.png b/themes/oxygen/htdocs/luci-static/oxygen/icons/harddisk.png Binary files differnew file mode 100644 index 000000000..68351d1b6 --- /dev/null +++ b/themes/oxygen/htdocs/luci-static/oxygen/icons/harddisk.png diff --git a/themes/oxygen/htdocs/luci-static/oxygen/icons/key.png b/themes/oxygen/htdocs/luci-static/oxygen/icons/key.png Binary files differnew file mode 100644 index 000000000..1ebfaa43a --- /dev/null +++ b/themes/oxygen/htdocs/luci-static/oxygen/icons/key.png diff --git a/themes/oxygen/htdocs/luci-static/oxygen/icons/lightbulb.png b/themes/oxygen/htdocs/luci-static/oxygen/icons/lightbulb.png Binary files differnew file mode 100644 index 000000000..3a6755bc3 --- /dev/null +++ b/themes/oxygen/htdocs/luci-static/oxygen/icons/lightbulb.png diff --git a/themes/oxygen/htdocs/luci-static/oxygen/icons/login.png b/themes/oxygen/htdocs/luci-static/oxygen/icons/login.png Binary files differnew file mode 100644 index 000000000..8e881ba3b --- /dev/null +++ b/themes/oxygen/htdocs/luci-static/oxygen/icons/login.png diff --git a/themes/oxygen/htdocs/luci-static/oxygen/icons/logout.png b/themes/oxygen/htdocs/luci-static/oxygen/icons/logout.png Binary files differnew file mode 100644 index 000000000..9f44fd0ef --- /dev/null +++ b/themes/oxygen/htdocs/luci-static/oxygen/icons/logout.png diff --git a/themes/oxygen/htdocs/luci-static/oxygen/icons/network.png b/themes/oxygen/htdocs/luci-static/oxygen/icons/network.png Binary files differnew file mode 100644 index 000000000..ee8033452 --- /dev/null +++ b/themes/oxygen/htdocs/luci-static/oxygen/icons/network.png diff --git a/themes/oxygen/htdocs/luci-static/oxygen/icons/overview.png b/themes/oxygen/htdocs/luci-static/oxygen/icons/overview.png Binary files differnew file mode 100644 index 000000000..0f3edc162 --- /dev/null +++ b/themes/oxygen/htdocs/luci-static/oxygen/icons/overview.png diff --git a/themes/oxygen/htdocs/luci-static/oxygen/icons/package.png b/themes/oxygen/htdocs/luci-static/oxygen/icons/package.png Binary files differnew file mode 100644 index 000000000..1f7b53784 --- /dev/null +++ b/themes/oxygen/htdocs/luci-static/oxygen/icons/package.png diff --git a/themes/oxygen/htdocs/luci-static/oxygen/icons/restart.png b/themes/oxygen/htdocs/luci-static/oxygen/icons/restart.png Binary files differnew file mode 100644 index 000000000..b46fd7f20 --- /dev/null +++ b/themes/oxygen/htdocs/luci-static/oxygen/icons/restart.png diff --git a/themes/oxygen/htdocs/luci-static/oxygen/icons/services.png b/themes/oxygen/htdocs/luci-static/oxygen/icons/services.png Binary files differnew file mode 100644 index 000000000..54e17dd09 --- /dev/null +++ b/themes/oxygen/htdocs/luci-static/oxygen/icons/services.png diff --git a/themes/oxygen/htdocs/luci-static/oxygen/icons/shell.png b/themes/oxygen/htdocs/luci-static/oxygen/icons/shell.png Binary files differnew file mode 100644 index 000000000..8e2f3c17f --- /dev/null +++ b/themes/oxygen/htdocs/luci-static/oxygen/icons/shell.png diff --git a/themes/oxygen/htdocs/luci-static/oxygen/icons/stats.png b/themes/oxygen/htdocs/luci-static/oxygen/icons/stats.png Binary files differnew file mode 100644 index 000000000..860b71738 --- /dev/null +++ b/themes/oxygen/htdocs/luci-static/oxygen/icons/stats.png diff --git a/themes/oxygen/htdocs/luci-static/oxygen/icons/status.png b/themes/oxygen/htdocs/luci-static/oxygen/icons/status.png Binary files differnew file mode 100644 index 000000000..89e570eda --- /dev/null +++ b/themes/oxygen/htdocs/luci-static/oxygen/icons/status.png diff --git a/themes/oxygen/htdocs/luci-static/oxygen/icons/switch.png b/themes/oxygen/htdocs/luci-static/oxygen/icons/switch.png Binary files differnew file mode 100644 index 000000000..e1b7473b3 --- /dev/null +++ b/themes/oxygen/htdocs/luci-static/oxygen/icons/switch.png diff --git a/themes/oxygen/htdocs/luci-static/oxygen/icons/system.png b/themes/oxygen/htdocs/luci-static/oxygen/icons/system.png Binary files differnew file mode 100644 index 000000000..9ea5cec44 --- /dev/null +++ b/themes/oxygen/htdocs/luci-static/oxygen/icons/system.png diff --git a/themes/oxygen/htdocs/luci-static/oxygen/icons/worker.png b/themes/oxygen/htdocs/luci-static/oxygen/icons/worker.png Binary files differnew file mode 100644 index 000000000..54e17dd09 --- /dev/null +++ b/themes/oxygen/htdocs/luci-static/oxygen/icons/worker.png diff --git a/themes/oxygen/ipkg/postinst b/themes/oxygen/ipkg/postinst new file mode 100755 index 000000000..6eb778f66 --- /dev/null +++ b/themes/oxygen/ipkg/postinst @@ -0,0 +1,4 @@ +#!/bin/sh +[ -n "${IPKG_INSTROOT}" ] || { + ( . /etc/uci-defaults/luci-theme-oxygen ) && rm -f /etc/uci-defaults/luci-theme-oxygen +} diff --git a/themes/oxygen/luasrc/view/themes/oxygen/dashboard.htm b/themes/oxygen/luasrc/view/themes/oxygen/dashboard.htm new file mode 100644 index 000000000..1e0557580 --- /dev/null +++ b/themes/oxygen/luasrc/view/themes/oxygen/dashboard.htm @@ -0,0 +1,46 @@ +<%# +LuCI - Lua Configuration Interface +Copyright 2008 Steven Barth <steven@midlink.org> +Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net> + +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$ + +-%> +<% + local node = luci.dispatcher.context.requested + if node.nodes then +%> + <div class="dashboard"> +<%- + for k, v in luci.util.spairs(node.nodes, function (a,b) + return (node.nodes[a].order or 100) < (node.nodes[b].order or 100) + end) do + if v.title and #v.title > 0 and not v.ignoreindex and (v.index or v.target) then + local csscl = "dashicon di_%s" % (v.style or k) + local iconl = v.icon + local pref = luci.util.clone(luci.dispatcher.context.request) + pref[#pref+1] = k + local target = luci.dispatcher.build_url(unpack(pref)) +%> + <div class="<%=csscl%>"> + <a href="<%=target%>" <%- + if iconl then + %> style="background-image: url(<%=resource%>/<%=iconl%>)"<%- + end + -%>><%=v.title%></a> + </div> +<% + end + end +-%> + </div> + <div class="clear"></div> +<% +end +%>
\ No newline at end of file diff --git a/themes/oxygen/luasrc/view/themes/oxygen/footer.htm b/themes/oxygen/luasrc/view/themes/oxygen/footer.htm new file mode 100644 index 000000000..b570788d5 --- /dev/null +++ b/themes/oxygen/luasrc/view/themes/oxygen/footer.htm @@ -0,0 +1,22 @@ +<%# +LuCI - Lua Configuration Interface +Copyright 2008 Steven Barth <steven@midlink.org> +Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net> + +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$ + +-%> +<div class="clear"></div> +</div> + +<p class="luci"><a href="<%=controller%>/about">Powered by <%= luci.__appname__ .. " " .. luci.__version__%></a></p> + +</div> +</body> +</html>
\ No newline at end of file diff --git a/themes/oxygen/luasrc/view/themes/oxygen/header.htm b/themes/oxygen/luasrc/view/themes/oxygen/header.htm new file mode 100644 index 000000000..ce8019d23 --- /dev/null +++ b/themes/oxygen/luasrc/view/themes/oxygen/header.htm @@ -0,0 +1,130 @@ +<%# +LuCI - Lua Configuration Interface +Copyright 2008 Steven Barth <steven@midlink.org> +Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net> + +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$ + +-%> +<% +local hostname = require("luci.sys").hostname() +local crequest = luci.dispatcher.context.request +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 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") + +-%> + +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<%=luci.i18n.context.lang%>" lang="<%=luci.i18n.context.lang%>"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta http-equiv="Content-Script-Type" content="text/javascript" /> +<link rel="stylesheet" type="text/css" media="screen" href="<%=media%>/cascade.css" /> +<link rel="stylesheet" type="text/css" media="screen" href="<%=media%>/dashboard.css" /> +<% if node and node.css then %><link rel="stylesheet" type="text/css" media="screen" href="<%=resource%>/<%=node.css%>" /> +<% end -%> +<title><%=striptags( hostname .. ( (node and node.title) and ' - ' .. node.title or '')) %> - LuCI</title> +</head> +<body class="lang_<%=luci.i18n.context.lang%>"> +<div id="screen"> + +<p class="skiplink"> +<span id="skiplink1"><a href="#navigation"><%:skiplink1 Skip to navigation%></a></span> +<span id="skiplink2"><a href="#content"><%:skiplink2 Skip to content%></a></span> +</p> + +<%- +local function ucimenu(prefix, node) + if not node.nodes or node.hidden then + return false + end + local index = {} + local count = 0 + for k, n in pairs(node.nodes) do + if n.title and n.target then + table.insert(index, {name=k, order=n.order or 100}) + count = count + 1 + end + end + + table.sort(index, function(a, b) return a.order < b.order end) + + if count > 0 then + for j, v in pairs(index) do + if #v.name > 0 then + local nnode = node.nodes[v.name] + local href = controller .. prefix .. v.name .. "/" + href = (nnode.query) and href .. luci.http.build_querystring(nnode.query) or href +%> +<span><a class="menulink<% if nnode._menu_selected then %> active<%end%>" href="<%=luci.util.pcdata(href)%>"> > <%=nnode.title%></a></span> +<%- + end + end +%> + +<% + end +end +%> + +<div id="header"></div> + +<% +if tree.nodes[category] and tree.nodes[category].ucidata then + local ucic = 0 + for i, j in pairs(require("luci.model.uci").cursor():changes()) do + for k, l in pairs(j) do + for m, n in pairs(l) do + ucic = ucic + 1; + end + end + end +-%> +<% if ucic > 0 then %><div class="menubar"><div><a class="warning" href="<%=controller%>/<%=category%>/uci/changes/"><%:unsavedchanges%>: <%=ucic%></a><% +ucimenu("/" .. category .. "/uci/", tree.nodes[category].nodes["uci"], "changes")-%> +<div class="clear"></div> +</div></div> +<% end %> +<% end %> + +<div class="menubar"> +<h2 class="navigation"><a id="navigation" name="navigation"><%:navigation Navigation%></a></h2> +<strong><%:path%>:</strong> +<a href="<%=controller%>"><%= luci.__appname__ %></a> + +<% + local pointer = tree + for k, v in ipairs(crequest) do + if pointer.nodes and pointer.nodes[v] then + pointer = pointer.nodes[v] + %> + » <a href="<%=luci.dispatcher.build_url(unpack(crequest, 1, k))%>"><%=pointer.title or v%></a> + <% + end + end +%> +</div> + +<div id="maincontent"> +<% if node.subindex then %><%+themes/oxygen/dashboard%><% end %> diff --git a/themes/oxygen/luasrc/view/themes/oxygen/indexer.htm b/themes/oxygen/luasrc/view/themes/oxygen/indexer.htm new file mode 100644 index 000000000..6e290dd99 --- /dev/null +++ b/themes/oxygen/luasrc/view/themes/oxygen/indexer.htm @@ -0,0 +1,17 @@ +<%# +LuCI - Lua Configuration Interface +Copyright 2008 Steven Barth <steven@midlink.org> +Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net> + +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%> +<%+themes/oxygen/dashboard%> +<%+footer%>
\ No newline at end of file diff --git a/themes/oxygen/root/etc/uci-defaults/luci-theme-oxygen b/themes/oxygen/root/etc/uci-defaults/luci-theme-oxygen new file mode 100755 index 000000000..f4b504b49 --- /dev/null +++ b/themes/oxygen/root/etc/uci-defaults/luci-theme-oxygen @@ -0,0 +1,6 @@ +#!/bin/sh +uci batch <<-EOF + set luci.themes.Oxygen=/luci-static/oxygen + commit luci +EOF + |