luci-theme-argonv3: sync with upstream source

This commit is contained in:
CN_SZTL 2020-07-27 22:23:25 +08:00
parent 70ab7e1e61
commit b90b1a0f43
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
11 changed files with 1107 additions and 32 deletions

View File

@ -8,8 +8,8 @@ include $(TOPDIR)/rules.mk
LUCI_TITLE:=Argon Theme
LUCI_DEPENDS:=
PKG_VERSION:=1.6.3
PKG_RELEASE:=20200725
PKG_VERSION:=1.6.4
PKG_RELEASE:=20200727
include $(TOPDIR)/feeds/luci/luci.mk
@ -18,7 +18,7 @@ define Package/luci-theme-argon/postinst
#!/bin/sh
sed -i ":a;$!N;s/tmpl.render.*sysauth_template.*return/local scope = { duser = default_user, fuser = user }\nlocal ok, res = luci.util.copcall\(luci.template.render_string, [[<% include\(\"themes\/\" .. theme .. \"\/sysauth\"\) %>]], scope\)\nif ok then\nreturn res\nend\nreturn luci.template.render\(\"sysauth\", scope\)/;ba" /usr/lib/lua/luci/dispatcher.lua
sed -i ":a;$!N;s/t.render.*sysauth_template.*return/local scope = { duser = h, fuser = a }\nlocal ok, res = luci.util.copcall\(luci.template.render_string, [[<% include\(\"themes\/\" .. theme .. \"\/sysauth\"\) %>]], scope\)\nif ok then\nreturn res\nend\nreturn luci.template.render\(\"sysauth\", scope\)/;ba" /usr/lib/lua/luci/dispatcher.lua
[ -f /usr/lib/lua/luci/view/themes/header_login.htm ] && mv -f /usr/lib/lua/luci/view/themes/header_login.htm /usr/lib/lua/luci/view/header_login.htm
[ -f /usr/lib/lua/luci/view/themes/argon/out_header_login.htm ] && mv -f /usr/lib/lua/luci/view/themes/argon/out_header_login.htm /usr/lib/lua/luci/view/header_login.htm
rm -Rf /var/luci-modulecache
rm -Rf /var/luci-indexcache
exit 0

View File

@ -283,6 +283,7 @@ li {
margin-top: auto;
padding: 0px 0px 30px;
z-index: 10;
color: #525461;
}
.login-page .login-container footer .luci-link {
display: block;
@ -2862,6 +2863,9 @@ input[name="nslookup"] {
.login-page .login-container .login-form .form-login .cbi-button-apply:focus {
background-image: linear-gradient(-135deg, #554c8a 0%, #483d8b 100%);
}
.login-page .login-container footer {
color: #adb5bd;
}
header::after {
background-color: #1e1e1e !important;
}

View File

@ -0,0 +1,438 @@
/**
* Argon is a clean HTML5 theme for LuCI. It is based on luci-theme-material and Argon Template
*
* luci-theme-argon
* Copyright 2020 Jerryk <jerrykuku@gmail.com>
*
* Have a bug? Please create an issue here on GitHub!
* https://github.com/jerrykuku/luci-theme-argon/issues
*
* luci-theme-bootstrap:
* Copyright 2008 Steven Barth <steven@midlink.org>
* Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
* Copyright 2012 David Menting <david@nut-bolt.nl>
*
* MUI:
* https://github.com/muicss/mui
*
* luci-theme-material:
* https://github.com/LuttyYang/luci-theme-material/
*
* Agron Theme
* https://demos.creative-tim.com/argon-dashboard/index.html
*
* Login background
* https://unsplash.com/
*
* Licensed to the public under the Apache License 2.0
*/
body {
background: #1e1e1e;
color: #cccccc;
}
.login-page .login-container .login-form {
background-color: #1e1e1e;
}
.login-page .login-container .login-form .brand {
color: #adb5bd;
}
.login-page .login-container .login-form .form-login .input-group::before {
color: #adb5bd;
}
.login-page .login-container .login-form .form-login .input-group input {
background-color: transparent !important;
color: #adb5bd;
border-bottom: #adb5bd 1px solid !important;
border-radius: 0;
border-top: none !important;
border-left: none !important;
border-right: none !important;
box-shadow: none;
}
.login-page .login-container .login-form .form-login .input-group input:focus {
border-top: none !important;
border-left: none !important;
border-right: none !important;
}
.login-page .login-container .login-form .form-login .cbi-button-apply {
background-image: linear-gradient(-135deg, #6c61ab 0%, #594ca9 100%);
}
.login-page .login-container .login-form .form-login .cbi-button-apply:hover,
.login-page .login-container .login-form .form-login .cbi-button-apply:focus {
background-image: linear-gradient(-135deg, #554c8a 0%, #483d8b 100%);
}
.login-page .login-container footer {
color: #adb5bd;
}
header::after {
background-color: #1e1e1e !important;
}
.main .main-left {
background-color: #333333 !important;
box-shadow: 0 0 0.5rem 0 rgba(0, 0, 0, 0.15);
}
.main .main-left .sidenav-header .brand {
color: #ccc;
}
.main .main-left .nav .slide .slide-menu .active a {
color: #cccccc;
}
.main .main-left .nav .slide .slide-menu .active a::after {
background-color: #cccccc !important;
}
.main .main-left .nav .slide .slide-menu li a {
color: #cccccc;
}
.main .main-left .nav .slide .slide-menu li a:hover {
background: none !important;
}
.main .main-left .nav .slide .menu.active {
background-color: darkslateblue !important;
color: #cccccc !important;
}
.main .main-left .nav .slide .menu.active a::after {
background-color: #cccccc !important;
}
.main .main-left .nav li a {
color: #cccccc !important;
}
.main .main-left .nav li a:hover {
background-color: darkslateblue !important;
color: #cccccc !important;
}
.main .main-left::-webkit-scrollbar-thumb {
background-color: #252526 !important;
}
.main .main-left::-webkit-scrollbar-track {
background-color: #333;
}
.main .main-right {
background-color: #1e1e1e;
}
h2 {
color: #ccc;
background: #333333;
}
h3 {
color: #ccc;
border-bottom: 0;
background: #333333;
}
a:-webkit-any-link {
color: -webkit-link;
cursor: pointer;
color: darkslateblue;
}
input:-webkit-autofill {
background-color: #3c3c3c !important;
}
.cbi-value-field .cbi-input-apply,
.cbi-button-apply,
.cbi-button-edit {
color: #fff !important;
background-color: darkslateblue !important;
border-color: darkslateblue !important;
}
.cbi-section em {
color: darkslateblue;
}
header.bg-primary {
background-color: #1e1e1e !important;
}
.cbi-map-descr {
color: #ccc;
}
.cbi-section {
background: none;
box-shadow: 0 0 0.5rem 0 rgba(0, 0, 0, 0.35);
}
.panel-title {
color: #ccc;
background-color: #333333;
border-bottom: 0px;
}
table > tbody > tr > td,
table > tfoot > tr > td,
table > thead > tr > td {
color: #ccc;
}
fieldset > table > tbody > tr:nth-of-type(2n) {
background-color: #252526;
}
table > tbody > tr > td,
table > tfoot > tr > td,
table > thead > tr > td {
border-top: 1px solid #252526;
}
#swaptotal > div > div,
#swapfree > div > div,
#memfree > div > div,
#membuff > div > div,
#conns > div > div,
#memtotal > div > div {
background-color: #32325d !important;
}
#swaptotal > div > div > div > small,
#swapfree > div > div > div > small,
#memfree > div > div > div > small,
#membuff > div > div > div > small,
#conns > div > div > div > small,
#memtotal > div > div > div > small {
color: #ccc !important;
}
.node-system-packages > .main .cbi-section-node:first-child .cbi-value-last {
line-height: 1.8em;
}
.node-system-packages > .main .cbi-section-node:first-child .cbi-value-last div[style="margin:3px 0; width:300px; height:10px; border:1px solid #000000; background-color:#80C080"] {
border: 1px solid #999999 !important;
background-color: transparent !important;
}
.node-system-packages > .main .cbi-section-node:first-child .cbi-value-last div[style="margin:3px 0; width:300px; height:10px; border:1px solid #000000; background-color:#80C080"] div {
background-color: #32325d !important;
}
table > tbody > tr > th,
table > tfoot > tr > th,
table > thead > tr > th {
background-color: #252526;
border-bottom: black 1px solid !important;
}
.cbi-rowstyle-2 {
background-color: #1e1e1e;
}
.cbi-rowstyle-1 {
background-color: #252526;
}
.cbi-section > h3:first-child,
.panel-title {
color: #ccc;
border-bottom: 0;
}
.cbi-section-table .cbi-section-table-titles .cbi-section-table-cell {
background-color: #1e1e1f;
}
.cbi-button {
color: #ccc;
background-color: #252526;
}
.cbi-section-node {
background: none;
border-radius: 0 0 0.375rem 0.375rem;
padding: 0rem;
}
abbr {
color: #5e72e4;
}
div > table > tbody > tr:nth-of-type(2n),
div > .table > .tbody > .tr:nth-of-type(2n) {
background-color: #252526;
}
#content_syslog {
box-shadow: 0 0 0.5rem 0 rgba(0, 0, 0, 0.35);
}
#syslog {
color: #ccc;
background-color: #1e1e1e;
}
#iwsvg,
#iwsvg2,
#bwsvg {
overflow: hidden;
box-shadow: 0 0 0.5rem 0 rgba(0, 0, 0, 0.35);
background-color: #1e1e1e !important;
}
.tabs {
background-color: #252526;
}
.tabs > li[class~="active"] > a {
color: #ccc;
}
.tabs > li[class~="active"],
.tabs > li:hover {
border-bottom: 0.18751rem solid darkslateblue;
color: #ccc;
background-color: #181819;
}
.cbi-tabmenu > li > a,
.tabs > li > a {
color: #ccc;
}
.cbi-tabmenu > li > a:hover,
.tabs > li > a:hover {
color: #ccc;
}
.cbi-tabmenu > li {
background: #2d2d2d;
}
.cbi-tabmenu {
border-bottom: 0px solid #ddd !important;
}
.cbi-tabmenu li[class~="cbi-tab"] a {
color: #ccc;
}
.cbi-tabmenu > li:hover {
color: #ccc;
background: #2d2d2d;
}
.cbi-tabmenu > li[class~="cbi-tab"] {
background-color: #181819;
}
.cbi-tabcontainer > .cbi-value:nth-of-type(2n) {
background-color: #252526;
}
.cbi-value-title {
color: #ccc;
}
select,
input {
color: #ccc;
background-color: transparent;
border: 1px solid #3c3c3c !important;
box-shadow: 0 3px 2px rgba(0, 0, 0, 0.05);
}
select:not([multiple="multiple"]):focus,
input:focus {
border-color: darkslateblue !important;
background-color: transparent;
outline: 0;
box-shadow: none;
}
#cbi-dropbear h2,
#cbi-dropbear .cbi-map-descr,
#cbi-dropbear .cbi-map-descr abbr,
#cbi-rc h2,
#cbi-rc .cbi-map-descr,
#cbi-distfeedconf h2,
#cbi-distfeedconf .cbi-map-descr,
#cbi-customfeedconf h2,
#cbi-customfeedconf .cbi-map-descr,
#cbi-download h2,
#cbi-filelist h2 {
color: #ccc !important;
}
.cbi-value-field > ul > li .ifacebadge {
background-color: #3c3c3c;
}
.cbi-section-descr {
color: #ccc;
}
.cbi-input-textarea {
background-color: #1e1e1e;
color: #ccc;
}
.cbi-section-remove:nth-of-type(2n),
.cbi-section-node:nth-of-type(2n) {
background-color: #1e1e1e;
}
.node-system-packages > .main table tr td:nth-last-child(1) {
color: #ccc;
}
.cbi-section-node .cbi-value {
padding: 1rem 1rem 0.3rem 1rem;
}
.ifacebox {
background-color: none;
border: 1px solid #1e1e1e;
}
.ifacebox-head {
color: #666;
}
.ifacebox-body {
background-color: #333;
}
.zonebadge strong {
color: #333;
}
.zonebadge > .ifacebadge {
background-color: #3c3c3c;
}
div.cbi-value var,
td.cbi-value-field var {
color: #5e72e4;
}
#diag-rc-output > pre {
color: #ccc;
background-color: #1e1e1e;
}
.node-services-vssr .block {
background-color: #3c3c3c !important;
box-shadow: 0 0 0.5rem 0 rgba(0, 0, 0, 0.35);
}
.node-services-vssr .block h4 {
color: #ccc !important;
}
.node-services-vssr .status-bar {
color: #ccc;
box-shadow: 0 0 0.5rem 0 rgba(0, 0, 0, 0.35);
background-color: #1e1e1e;
}
.node-services-vssr .cbi-section-table-row {
color: #ccc;
background-color: #3c3c3c !important;
box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.35);
}
.node-services-vssr .cbi-section-table-row.fast {
background: darkslateblue !important;
color: #fff;
}
.node-services-vssr .ssr-button {
color: #ccc;
}
.node-services-vssr .incon:nth-child(2) {
border-right: #1e1e1e 1px solid;
}
#xhr_poll_status > .label.success {
color: #ccc !important;
background-color: darkolivegreen !important;
}
.notice {
background-color: darkslateblue !important;
}
.cbi-input-find,
.cbi-input-save,
.cbi-button-add,
.cbi-button-save,
.cbi-button-find,
.cbi-input-reload,
.cbi-button-reload {
background-color: darkseagreen !important;
border-color: darkseagreen !important;
}
.cbi-button-reset,
.cbi-input-remove {
color: #fff !important;
background-color: darkorange !important;
border-color: darkorange !important;
}
.cbi-page-actions .cbi-button-apply,
.cbi-section-actions .cbi-button-edit,
.cbi-button-edit.important,
.cbi-button-apply.important,
.cbi-button-reload.important,
.cbi-button-action.important {
border: 1px darkslateblue solid !important;
}
fieldset[id^="cbi-apply-"] {
background-color: #333333;
}
#detail-bubble > div {
border: 1px solid #ccc;
border-radius: 2px;
padding: 5px;
background: #252525;
}
.cbi-section-error {
color: darkorange;
}
@supports (-webkit-backdrop-filter: none) or (backdrop-filter: none) {
.login-page .login-container .login-form {
-webkit-backdrop-filter: blur(10px);
backdrop-filter: blur(10px);
background-color: rgba(0, 0, 0, 0.7);
}
}
@media screen and (max-width: 480px) {
.node-status-iptables > .main div > .cbi-map > form {
background-color: #1e1e1e;
box-shadow: 0 0 0.5rem 0 rgba(0, 0, 0, 0.35);
}
}

View File

@ -324,6 +324,7 @@ li {
margin-top: auto;
padding: 0px 0px 30px;
z-index: 10;
color: #525461;
.luci-link {
display: block;
@ -1305,6 +1306,7 @@ small {
.cbi-section>legend {
display: none !important;
}
.cbi-section-error {
padding: 1.5rem;
color: #fb6340;
@ -3393,7 +3395,7 @@ input[name="nslookup"] {
}
fieldset {
padding: 0;
@ -3635,8 +3637,12 @@ input[name="nslookup"] {
}
}
}
}
footer {
color: #adb5bd;
}
}
header::after {
@ -4138,5 +4144,5 @@ input[name="nslookup"] {
box-shadow: 0 0 0.5rem 0 rgba(0, 0, 0, .35);
}
}

View File

@ -0,0 +1,585 @@
/**
* Argon is a clean HTML5 theme for LuCI. It is based on luci-theme-material and Argon Template
*
* luci-theme-argon
* Copyright 2020 Jerryk <jerrykuku@gmail.com>
*
* Have a bug? Please create an issue here on GitHub!
* https://github.com/jerrykuku/luci-theme-argon/issues
*
* luci-theme-bootstrap:
* Copyright 2008 Steven Barth <steven@midlink.org>
* Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
* Copyright 2012 David Menting <david@nut-bolt.nl>
*
* MUI:
* https://github.com/muicss/mui
*
* luci-theme-material:
* https://github.com/LuttyYang/luci-theme-material/
*
* Agron Theme
* https://demos.creative-tim.com/argon-dashboard/index.html
*
* Login background
* https://unsplash.com/
*
* Licensed to the public under the Apache License 2.0
*/
body {
background: #1e1e1e;
color: #cccccc;
}
.login-page .login-container {
.login-form {
background-color: #1e1e1e;
.brand {
color: #adb5bd;
}
.form-login {
.input-group {
&::before {
color: #adb5bd;
}
input {
background-color: transparent !important;
color: #adb5bd;
border-bottom: #adb5bd 1px solid !important;
border-radius: 0;
border-top: none !important;
border-left: none !important;
border-right: none !important;
box-shadow: none;
&:focus {
border-top: none !important;
border-left: none !important;
border-right: none !important;
}
}
}
.cbi-button-apply {
background-image: linear-gradient(-135deg, #6c61ab 0%, #594ca9 100%);
&:hover,
&:focus {
background-image: linear-gradient(-135deg, rgb(85, 76, 138) 0%, rgb(72, 61, 139) 100%);
}
}
}
}
footer {
color: #adb5bd;
}
}
header::after {
background-color: #1e1e1e !important;
}
.main {
.main-left {
background-color: #333333 !important;
box-shadow: 0 0 0.5rem 0 rgba(0, 0, 0, .15);
.sidenav-header .brand {
color: #ccc;
}
.nav {
.slide {
.slide-menu {
.active {
a {
color: #cccccc;
&::after {
background-color: #cccccc !important;
}
}
}
li {
a {
color: #cccccc;
}
a:hover {
background: none !important;
}
}
}
.menu.active {
background-color: darkslateblue !important;
color: #cccccc !important;
a::after {
background-color: #cccccc !important;
}
}
}
li {
a {
color: #cccccc !important;
}
a:hover {
background-color: darkslateblue !important;
color: #cccccc !important;
}
}
}
&::-webkit-scrollbar-thumb {
background-color: #252526 !important;
}
&::-webkit-scrollbar-track {
background-color: #333;
}
}
.main-right {
background-color: #1e1e1e;
}
}
h2 {
color: #ccc;
background: #333333;
}
h3 {
color: #ccc;
border-bottom: 0;
background: #333333;
}
a:-webkit-any-link {
color: -webkit-link;
cursor: pointer;
color: darkslateblue;
}
input:-webkit-autofill {
background-color: #3c3c3c !important;
}
.cbi-value-field .cbi-input-apply,
.cbi-button-apply,
.cbi-button-edit {
color: #fff !important;
background-color: darkslateblue !important;
border-color: darkslateblue !important;
}
.cbi-section em {
color: darkslateblue;
}
header.bg-primary {
background-color: #1e1e1e !important;
}
.cbi-map-descr {
color: #ccc;
}
.cbi-section {
background: none;
box-shadow: 0 0 0.5rem 0 rgba(0, 0, 0, .35)
}
.panel-title {
color: #ccc;
background-color: #333333;
border-bottom: 0px;
}
table>tbody>tr>td,
table>tfoot>tr>td,
table>thead>tr>td {
color: #ccc;
}
fieldset>table>tbody>tr:nth-of-type(2n) {
background-color: #252526;
}
table>tbody>tr>td,
table>tfoot>tr>td,
table>thead>tr>td {
border-top: 1px solid #252526;
}
#swaptotal>div>div,
#swapfree>div>div,
#memfree>div>div,
#membuff>div>div,
#conns>div>div,
#memtotal>div>div {
background-color: #32325d !important;
}
#swaptotal>div>div>div>small,
#swapfree>div>div>div>small,
#memfree>div>div>div>small,
#membuff>div>div>div>small,
#conns>div>div>div>small,
#memtotal>div>div>div>small {
color: #ccc !important;
}
.node-system-packages>.main .cbi-section-node:first-child .cbi-value-last {
line-height: 1.8em;
div[style="margin:3px 0; width:300px; height:10px; border:1px solid #000000; background-color:#80C080"] {
border: 1px solid #999999 !important;
background-color: transparent !important;
div {
background-color: #32325d !important;
}
}
}
table>tbody>tr>th,
table>tfoot>tr>th,
table>thead>tr>th {
background-color: #252526;
border-bottom: black 1px solid !important;
}
.cbi-rowstyle-2 {
background-color: #1e1e1e;
}
.cbi-rowstyle-1 {
background-color: #252526;
}
.cbi-section>h3:first-child,
.panel-title {
color: #ccc;
border-bottom: 0;
}
.cbi-section-table .cbi-section-table-titles .cbi-section-table-cell {
background-color: #1e1e1f;
}
.cbi-button {
color: #ccc;
background-color: #252526;
}
.cbi-section-node {
background: none;
border-radius: 0 0 .375rem .375rem;
padding: 0rem;
}
abbr {
color: #5e72e4;
}
div>table>tbody>tr:nth-of-type(2n),
div>.table>.tbody>.tr:nth-of-type(2n) {
background-color: #252526;
}
#content_syslog {
box-shadow: 0 0 0.5rem 0 rgba(0, 0, 0, .35)
}
#syslog {
color: #ccc;
background-color: #1e1e1e;
}
#iwsvg,
#iwsvg2,
#bwsvg {
overflow: hidden;
box-shadow: 0 0 0.5rem 0 rgba(0, 0, 0, .35);
background-color: #1e1e1e !important;
}
.tabs {
background-color: #252526;
}
.tabs>li[class~="active"]>a {
color: #ccc;
}
.tabs>li[class~="active"],
.tabs>li:hover {
border-bottom: 0.18751rem solid darkslateblue;
color: #ccc;
background-color: #181819;
}
.cbi-tabmenu>li>a,
.tabs>li>a {
color: #ccc;
&:hover {
color: #ccc;
}
}
.cbi-tabmenu>li {
background: #2d2d2d;
}
.cbi-tabmenu {
border-bottom: 0px solid #ddd !important;
}
.cbi-tabmenu li[class~="cbi-tab"] a {
color: #ccc;
}
.cbi-tabmenu>li:hover {
color: #ccc;
background: #2d2d2d;
}
.cbi-tabmenu>li[class~="cbi-tab"] {
background-color: #181819;
}
.cbi-tabcontainer>.cbi-value:nth-of-type(2n) {
background-color: #252526;
}
.cbi-value-title {
color: #ccc;
}
select,
input {
color: #ccc;
background-color: transparent;
border: 1px solid #3c3c3c !important;
box-shadow: 0 3px 2px rgba(0, 0, 0, .05);
}
select:not([multiple="multiple"]):focus,
input:focus {
border-color: darkslateblue !important;
background-color: transparent;
outline: 0;
box-shadow: none;
}
#cbi-dropbear h2,
#cbi-dropbear .cbi-map-descr,
#cbi-dropbear .cbi-map-descr abbr,
#cbi-rc h2,
#cbi-rc .cbi-map-descr,
#cbi-distfeedconf h2,
#cbi-distfeedconf .cbi-map-descr,
#cbi-customfeedconf h2,
#cbi-customfeedconf .cbi-map-descr,
#cbi-download h2,
#cbi-filelist h2 {
color: #ccc !important;
}
.cbi-value-field>ul>li .ifacebadge {
background-color: #3c3c3c;
}
.cbi-section-descr {
color: #ccc;
}
.cbi-input-textarea {
background-color: #1e1e1e;
color: #ccc;
}
.cbi-section-remove:nth-of-type(2n),
.cbi-section-node:nth-of-type(2n) {
background-color: #1e1e1e;
}
.node-system-packages>.main table tr td:nth-last-child(1) {
color: #ccc;
}
.cbi-section-node .cbi-value {
padding: 1rem 1rem 0.3rem 1rem;
}
.ifacebox {
background-color: none;
border: 1px solid #1e1e1e;
}
.ifacebox-head {
color: #666;
}
.ifacebox-body {
background-color: #333;
}
.zonebadge strong {
color: #333;
}
.zonebadge>.ifacebadge {
background-color: #3c3c3c;
}
div.cbi-value var,
td.cbi-value-field var {
color: #5e72e4;
}
#diag-rc-output>pre {
color: #ccc;
background-color: #1e1e1e;
}
.node-services-vssr .block {
background-color: #3c3c3c !important;
box-shadow: 0 0 0.5rem 0 rgba(0, 0, 0, .35);
}
.node-services-vssr .block h4 {
color: #ccc !important;
}
.node-services-vssr .status-bar {
color: #ccc;
box-shadow: 0 0 0.5rem 0 rgba(0, 0, 0, .35);
background-color: #1e1e1e;
}
.node-services-vssr .cbi-section-table-row {
color: #ccc;
background-color: #3c3c3c !important;
box-shadow: 0 0 5px 0 rgba(0, 0, 0, .35)
}
.node-services-vssr .cbi-section-table-row.fast {
background: darkslateblue !important;
color: #fff;
}
.node-services-vssr .ssr-button {
color: #ccc;
}
.node-services-vssr .incon:nth-child(2) {
border-right: #1e1e1e 1px solid;
}
#xhr_poll_status>.label.success {
color: #ccc !important;
background-color: darkolivegreen !important;
}
.notice {
background-color: darkslateblue !important;
}
.cbi-input-find,
.cbi-input-save,
.cbi-button-add,
.cbi-button-save,
.cbi-button-find,
.cbi-input-reload,
.cbi-button-reload {
background-color: darkseagreen !important;
border-color: darkseagreen !important;
}
.cbi-button-reset,
.cbi-input-remove {
color: #fff !important;
background-color: darkorange !important;
border-color: darkorange !important;
}
.cbi-page-actions .cbi-button-apply,
.cbi-section-actions .cbi-button-edit,
.cbi-button-edit.important,
.cbi-button-apply.important,
.cbi-button-reload.important,
.cbi-button-action.important {
border: 1px darkslateblue solid !important;
}
fieldset[id^="cbi-apply-"] {
background-color: #333333;
}
#detail-bubble>div {
border: 1px solid #ccc;
border-radius: 2px;
padding: 5px;
background: #252525;
}
.cbi-section-error {
color: darkorange;
}
@supports (-webkit-backdrop-filter: none) or (backdrop-filter: none) {
.login-page .login-container .login-form {
-webkit-backdrop-filter: blur(10px);
backdrop-filter: blur(10px);
background-color: rgba(0, 0, 0, 0.7);
}
}
@media screen and (max-width: 480px) {
.node-status-iptables>.main div>.cbi-map>form {
background-color: #1e1e1e;
box-shadow: 0 0 0.5rem 0 rgba(0, 0, 0, .35);
}
}

View File

@ -37,12 +37,24 @@
local category = request[1]
local tree = disp.node()
local categories = disp.node_childs(tree)
local ipkg = require "luci.model.ipkg"
function split( str,reps )
local resultStrList = {}
string.gsub(str,'[^'..reps..']+',function ( w )
table.insert(resultStrList,w)
end)
return resultStrList
end
local themepkg = ipkg.info("luci-theme-argon")
local theme_version = split(themepkg["luci-theme-argon"]["Version"],"-")
%>
</div>
<footer class="mobile-hide">
<div>
<a class="luci-link" href="https://github.com/openwrt/luci">Powered by <%= ver.luciname %> (<%= ver.luciversion %>)</a> /
<a href="https://github.com/jerrykuku/luci-theme-argon">ArgonTheme v1.6</a> /
<a href="https://github.com/jerrykuku/luci-theme-argon">ArgonTheme v<%=theme_version[1]%></a> /
<%= ver.distversion %>
<% if #categories > 1 then %>
<ul class="breadcrumb pull-right" id="modemenu">
@ -61,6 +73,6 @@
var luciLocation = <%= luci.http.write_json(luci.dispatcher.context.path) %>;
</script>
<script src="<%=media%>/js/script.js?v=<%=math.random(1,100000)%>"></script>
<script src="<%=media%>/js/script.js"></script>
</body>
</html>

View File

@ -47,15 +47,6 @@
local c = tree
local i, r
function glob(...)
local iter, code, msg = fs.glob(...)
if iter then
return nutil.consume(iter)
else
return nil, code, msg
end
end
-- tag all nodes leading to this page
for i, r in ipairs(request) do
if c.nodes and c.nodes[r] then
@ -228,6 +219,9 @@
<meta name="msapplication-TileImage" content="<%=media%>/icon/ms-icon-144x144.png">
<meta name="theme-color" content="#5e72e4">
<link rel="stylesheet" href="<%=media%>/css/cascade.css?v=<%=math.random(1,100000)%>">
<% if nixio.fs.access("/etc/dark") then %>
<link rel="stylesheet" href="<%=media%>/css/dark.css?v=<%=math.random(1,100000)%>">
<% end -%>
<link rel="shortcut icon" href="<%=media%>/favicon.ico">
<% if node and node.css then %>
<link rel="stylesheet" href="<%=resource%>/<%=node.css%>">

View File

@ -47,14 +47,7 @@
local c = tree
local i, r
function glob(...)
local iter, code, msg = fs.glob(...)
if iter then
return nutil.consume(iter)
else
return nil, code, msg
end
end
-- tag all nodes leading to this page
for i, r in ipairs(request) do
@ -192,10 +185,11 @@
end
end
end
math.randomseed(os.time())
-%>
<!DOCTYPE html>
<html lang="<%=luci.i18n.context.lang%>">
<head>
@ -229,6 +223,9 @@
<meta name="msapplication-TileImage" content="<%=media%>/icon/ms-icon-144x144.png">
<meta name="theme-color" content="#5e72e4">
<link rel="stylesheet" href="<%=media%>/css/cascade.css?v=<%=math.random(1,100000)%>">
<% if nixio.fs.access("/etc/dark") then %>
<link rel="stylesheet" href="<%=media%>/css/dark.css?v=<%=math.random(1,100000)%>">
<% end -%>
<link rel="shortcut icon" href="<%=media%>/favicon.ico">
<% if node and node.css then %>
<link rel="stylesheet" href="<%=resource%>/<%=node.css%>">

View File

@ -6,8 +6,38 @@
<%+header_login%>
<%
local util = require "luci.util"
local boardinfo = util.ubus("system", "board")
local util = require "luci.util"
local boardinfo = util.ubus("system", "board")
local fs = require "nixio.fs"
local nutil = require "nixio.util"
function glob(...)
local iter, code, msg = fs.glob(...)
if iter then
return nutil.consume(iter)
else
return nil, code, msg
end
end
function getExtension(str)
return str:match(".+%.(%w+)$")
end
local bgcount = 0
local inits, attr = {}
local theme_dir = "/luci-static/argon/background/"
for i, f in ipairs(glob("/www" .. theme_dir .. "*")) do
attr = fs.stat(f)
if attr then
local ext = getExtension(fs.basename(f))
if ext == "jpg" or ext == "png" or ext == "gif" then
inits[bgcount] = theme_dir .. fs.basename(f)
bgcount = bgcount + 1
end
end
end
%>
<a class="brand" href="/"><img src="/luci-static/argon/img/argon.svg" class="icon"><span
class="brand-text"><%=striptags( (boardinfo.hostname or "?") .. ( (node and node.title) and ' - ' .. translate(node.title) or '')) %></span></a>
@ -27,8 +57,8 @@ local boardinfo = util.ubus("system", "board")
<input class="cbi-input-password" id="cbi-input-password" type="password" name="luci_password" />
<label class="border" for="cbi-input-password"></label>
</div>
</div>
<div>
@ -37,7 +67,9 @@ local boardinfo = util.ubus("system", "board")
</form>
<%
local bing = string.gsub(luci.sys.exec("content=`wget --no-check-certificate -q -O - 'http://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=en-US'`;echo $content"), "\n", "")
if bgcount == 0 then
local bing = string.gsub(luci.sys.exec("content=`wget --no-check-certificate -q -O - 'http://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=en-US'`;echo $content"), "\n", "")
%>
<script type="text/javascript">//<![CDATA[
var input = document.getElementsByName('luci_password')[0];
@ -45,7 +77,7 @@ local bing = string.gsub(luci.sys.exec("content=`wget --no-check-certificate -q
input.focus();
try {
var bing = <%=bing%>;
var bing = <%=bing%>;
var bg = "https://www.bing.com" + bing.images[0].url;
$(".login-page").css("background-image", "url(" + bg + ")");
} catch{
@ -54,7 +86,14 @@ local bing = string.gsub(luci.sys.exec("content=`wget --no-check-certificate -q
}
//]]></script>
<% else -%>
<script type="text/javascript">//<![CDATA[
console.log("can not access bing api");
$(".login-page").css("background-image", "url(<%=inits[math.random(0,bgcount-1)]%>)");
//]]></script>
<% end %>
<%
local uci = require "luci.model.uci".cursor()
local fs = require "nixio.fs"

View File

@ -1,7 +1,7 @@
#!/bin/sh
sed -i ":a;$!N;s/tmpl.render.*sysauth_template.*return/local scope = { duser = default_user, fuser = user }\nlocal ok, res = luci.util.copcall\(luci.template.render_string, [[<% include\(\"themes\/\" .. theme .. \"\/sysauth\"\) %>]], scope\)\nif ok then\nreturn res\nend\nreturn luci.template.render\(\"sysauth\", scope\)/;ba" /usr/lib/lua/luci/dispatcher.lua
sed -i ":a;$!N;s/t.render.*sysauth_template.*return/local scope = { duser = h, fuser = a }\nlocal ok, res = luci.util.copcall\(luci.template.render_string, [[<% include\(\"themes\/\" .. theme .. \"\/sysauth\"\) %>]], scope\)\nif ok then\nreturn res\nend\nreturn luci.template.render\(\"sysauth\", scope\)/;ba" /usr/lib/lua/luci/dispatcher.lua
[ -f /usr/lib/lua/luci/view/themes/header_login.htm ] && mv -f /usr/lib/lua/luci/view/themes/header_login.htm /usr/lib/lua/luci/view/header_login.htm
[ -f /usr/lib/lua/luci/view/themes/argon/out_header_login.htm ] && mv -f /usr/lib/lua/luci/view/themes/argon/out_header_login.htm /usr/lib/lua/luci/view/header_login.htm
rm -Rf /var/luci-modulecache
rm -Rf /var/luci-indexcache
uci batch <<-EOF