🎉 Sync 2023-05-20 20:34
@ -1,77 +0,0 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=aliyundrive-fuse
|
||||
PKG_VERSION:=0.1.14
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_LICENSE:=MIT
|
||||
PKG_MAINTAINER:=messense <messense@icloud.com>
|
||||
|
||||
PKG_LIBC:=musl
|
||||
ifeq ($(ARCH),arm)
|
||||
PKG_LIBC:=musleabi
|
||||
|
||||
ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE))))
|
||||
ifneq ($(filter $(ARM_CPU_FEATURES),vfp vfpv2),)
|
||||
PKG_LIBC:=musleabihf
|
||||
endif
|
||||
endif
|
||||
|
||||
PKG_ARCH=$(ARCH)
|
||||
ifeq ($(ARCH),i386)
|
||||
PKG_ARCH:=i686
|
||||
endif
|
||||
|
||||
PKG_SOURCE:=aliyundrive-fuse-v$(PKG_VERSION).$(PKG_ARCH)-unknown-linux-$(PKG_LIBC).tar.gz
|
||||
PKG_SOURCE_URL:=https://github.com/messense/aliyundrive-fuse/releases/download/v$(PKG_VERSION)/
|
||||
PKG_HASH:=skip
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/aliyundrive-fuse
|
||||
SECTION:=multimedia
|
||||
CATEGORY:=Multimedia
|
||||
DEPENDS:=+fuse-utils
|
||||
TITLE:=FUSE for AliyunDrive
|
||||
URL:=https://github.com/messense/aliyundrive-fuse
|
||||
endef
|
||||
|
||||
define Package/aliyundrive-fuse/description
|
||||
FUSE for AliyunDrive.
|
||||
endef
|
||||
|
||||
define Package/aliyundrive-fuse/conffiles
|
||||
/etc/config/aliyundrive-fuse
|
||||
endef
|
||||
|
||||
define Download/sha256sum
|
||||
FILE:=$(PKG_SOURCE).sha256
|
||||
URL_FILE:=$(FILE)
|
||||
URL:=$(PKG_SOURCE_URL)
|
||||
HASH:=skip
|
||||
endef
|
||||
$(eval $(call Download,sha256sum))
|
||||
|
||||
define Build/Prepare
|
||||
mv $(DL_DIR)/$(PKG_SOURCE).sha256 .
|
||||
cp $(DL_DIR)/$(PKG_SOURCE) .
|
||||
shasum -a 256 -c $(PKG_SOURCE).sha256
|
||||
rm $(PKG_SOURCE).sha256 $(PKG_SOURCE)
|
||||
|
||||
tar -C $(PKG_BUILD_DIR)/ -zxf $(DL_DIR)/$(PKG_SOURCE)
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
echo "aliyundrive-fuse using precompiled binary."
|
||||
endef
|
||||
|
||||
define Package/aliyundrive-fuse/install
|
||||
$(INSTALL_DIR) $(1)/usr/bin
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/aliyundrive-fuse $(1)/usr/bin/aliyundrive-fuse
|
||||
$(INSTALL_DIR) $(1)/etc/init.d
|
||||
$(INSTALL_BIN) ./files/aliyundrive-fuse.init $(1)/etc/init.d/aliyundrive-fuse
|
||||
$(INSTALL_DIR) $(1)/etc/config
|
||||
$(INSTALL_CONF) ./files/aliyundrive-fuse.config $(1)/etc/config/aliyundrive-fuse
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,aliyundrive-fuse))
|
@ -1,7 +0,0 @@
|
||||
config default
|
||||
option enable '0'
|
||||
option debug '0'
|
||||
option refresh_token ''
|
||||
option mount_point '/mnt/aliyundrive'
|
||||
option read_buffer_size '10485760'
|
||||
option allow_other '1'
|
@ -1,48 +0,0 @@
|
||||
#!/bin/sh /etc/rc.common
|
||||
|
||||
USE_PROCD=1
|
||||
|
||||
START=99
|
||||
STOP=15
|
||||
|
||||
NAME=aliyundrive-fuse
|
||||
|
||||
uci_get_by_type() {
|
||||
local ret=$(uci get $NAME.@$1[0].$2 2>/dev/null)
|
||||
echo ${ret:=$3}
|
||||
}
|
||||
|
||||
start_service() {
|
||||
local enable=$(uci_get_by_type default enable)
|
||||
case "$enable" in
|
||||
1|on|true|yes|enabled)
|
||||
local refresh_token=$(uci_get_by_type default refresh_token)
|
||||
local mount_point=$(uci_get_by_type default mount_point)
|
||||
local read_buf_size=$(uci_get_by_type default read_buffer_size 10485760)
|
||||
local allow_other=$(uci_get_by_type default allow_other 0)
|
||||
|
||||
local extra_options=""
|
||||
|
||||
if [ "$allow_other" = "1" ]; then
|
||||
extra_options="$extra_options --allow-other"
|
||||
fi
|
||||
|
||||
mkdir -p "$mount_point"
|
||||
procd_open_instance
|
||||
procd_set_param command /bin/sh -c "/usr/bin/$NAME $extra_options -S $read_buf_size --workdir /var/run/$NAME $mount_point >>/var/log/$NAME.log 2>&1"
|
||||
procd_set_param pidfile /var/run/$NAME.pid
|
||||
procd_set_param env REFRESH_TOKEN="$refresh_token"
|
||||
case $(uci_get_by_type default debug) in
|
||||
1|on|true|yes|enabled)
|
||||
procd_append_param env RUST_LOG="aliyundrive_fuse=debug" ;;
|
||||
*) ;;
|
||||
esac
|
||||
procd_close_instance ;;
|
||||
*)
|
||||
stop_service ;;
|
||||
esac
|
||||
}
|
||||
|
||||
service_triggers() {
|
||||
procd_add_reload_trigger "aliyundrive-fuse"
|
||||
}
|
@ -1,17 +0,0 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-aliyundrive-fuse
|
||||
PKG_VERSION:=0.1.14
|
||||
PKG_RELEASE:=1
|
||||
PKG_PO_VERSION:=$(PKG_VERSION)-$(PKG_RELEASE)
|
||||
|
||||
PKG_LICENSE:=MIT
|
||||
PKG_MAINTAINER:=messense <messense@icloud.com>
|
||||
|
||||
LUCI_TITLE:=LuCI Support for aliyundrive-fuse
|
||||
LUCI_PKGARCH:=all
|
||||
LUCI_DEPENDS:=+aliyundrive-fuse
|
||||
|
||||
include $(TOPDIR)/feeds/luci/luci.mk
|
||||
|
||||
# call BuildPackage - OpenWrt buildroot signature
|
@ -1,40 +0,0 @@
|
||||
module("luci.controller.aliyundrive-fuse", package.seeall)
|
||||
|
||||
function index()
|
||||
if not nixio.fs.access("/etc/config/aliyundrive-fuse") then
|
||||
return
|
||||
end
|
||||
|
||||
local page
|
||||
page = entry({"admin", "services", "aliyundrive-fuse"}, alias("admin", "services", "aliyundrive-fuse", "client"), _("AliyunDrive FUSE"), 10) -- 首页
|
||||
page.dependent = true
|
||||
page.acl_depends = { "luci-app-aliyundrive-fuse" }
|
||||
|
||||
entry({"admin", "services", "aliyundrive-fuse", "client"}, cbi("aliyundrive-fuse/client"), _("Settings"), 10).leaf = true -- 客户端配置
|
||||
entry({"admin", "services", "aliyundrive-fuse", "log"}, form("aliyundrive-fuse/log"), _("Log"), 30).leaf = true -- 日志页面
|
||||
|
||||
entry({"admin", "services", "aliyundrive-fuse", "status"}, call("action_status")).leaf = true
|
||||
entry({"admin", "services", "aliyundrive-fuse", "logtail"}, call("action_logtail")).leaf = true
|
||||
end
|
||||
|
||||
function action_status()
|
||||
local e = {}
|
||||
e.running = luci.sys.call("pidof aliyundrive-fuse >/dev/null") == 0
|
||||
e.application = luci.sys.exec("aliyundrive-fuse --version")
|
||||
luci.http.prepare_content("application/json")
|
||||
luci.http.write_json(e)
|
||||
end
|
||||
|
||||
function action_logtail()
|
||||
local fs = require "nixio.fs"
|
||||
local log_path = "/var/log/aliyundrive-fuse.log"
|
||||
local e = {}
|
||||
e.running = luci.sys.call("pidof aliyundrive-fuse >/dev/null") == 0
|
||||
if fs.access(log_path) then
|
||||
e.log = luci.sys.exec("tail -n 100 %s | sed 's/\\x1b\\[[0-9;]*m//g'" % log_path)
|
||||
else
|
||||
e.log = ""
|
||||
end
|
||||
luci.http.prepare_content("application/json")
|
||||
luci.http.write_json(e)
|
||||
end
|
@ -1,30 +0,0 @@
|
||||
m = Map("aliyundrive-fuse")
|
||||
m.title = translate("AliyunDrive FUSE")
|
||||
m.description = translate("<a href=\"https://github.com/messense/aliyundrive-fuse\" target=\"_blank\">Project GitHub URL</a>")
|
||||
|
||||
m:section(SimpleSection).template = "aliyundrive-fuse/aliyundrive-fuse_status"
|
||||
|
||||
e = m:section(TypedSection, "default")
|
||||
e.anonymous = true
|
||||
|
||||
enable = e:option(Flag, "enable", translate("Enable"))
|
||||
enable.rmempty = false
|
||||
|
||||
refresh_token = e:option(Value, "refresh_token", translate("Refresh Token"))
|
||||
refresh_token.description = translate("<a href=\"https://github.com/messense/aliyundrive-webdav#%E8%8E%B7%E5%8F%96-refresh_token\" target=\"_blank\">How to get refresh token</a>")
|
||||
|
||||
mount_point = e:option(Value, "mount_point", translate("Mount Point"))
|
||||
mount_point.default = "/mnt/aliyundrive"
|
||||
|
||||
read_buffer_size = e:option(Value, "read_buffer_size", translate("Read Buffer Size"))
|
||||
read_buffer_size.default = "10485760"
|
||||
read_buffer_size.datatype = "uinteger"
|
||||
|
||||
allow_other = e:option(Flag, "allow_other", translate("Allow Other users Access"))
|
||||
allow_other.description = translate("Allow other users to access the drive, enable this if you share with samba")
|
||||
allow_other.rmempty = false
|
||||
|
||||
debug = e:option(Flag, "debug", translate("Debug Mode"))
|
||||
debug.rmempty = false
|
||||
|
||||
return m
|
@ -1,9 +0,0 @@
|
||||
log = SimpleForm("logview")
|
||||
log.submit = false
|
||||
log.reset = false
|
||||
|
||||
t = log:field(DummyValue, '', '')
|
||||
t.rawhtml = true
|
||||
t.template = 'aliyundrive-fuse/aliyundrive-fuse_log'
|
||||
|
||||
return log
|
@ -1,15 +0,0 @@
|
||||
<%+cbi/valueheader%>
|
||||
<textarea id="logview" class="cbi-input-textarea" style="width: 100%" rows="30" readonly="readonly"></textarea>
|
||||
|
||||
<script type="text/javascript">
|
||||
const LOG_URL = '<%=luci.dispatcher.build_url("admin", "services", "aliyundrive-fuse", "logtail")%>';
|
||||
XHR.poll(1, LOG_URL, null, (x, d) => {
|
||||
let logview = document.getElementById("logview");
|
||||
if (!d.running) {
|
||||
XHR.halt();
|
||||
}
|
||||
logview.value = d.log;
|
||||
logview.scrollTop = logview.scrollHeight;
|
||||
});
|
||||
</script>
|
||||
<%+cbi/valuefooter%>
|
@ -1,21 +0,0 @@
|
||||
<script type="text/javascript">//<![CDATA[
|
||||
XHR.poll(3, '<%=url([[admin]], [[services]], [[aliyundrive-fuse]], [[status]])%>', null,
|
||||
function(x, data) {
|
||||
var tb = document.getElementById('aliyundrive-fuse_status');
|
||||
if (data && tb) {
|
||||
if (data.running) {
|
||||
tb.innerHTML = '<em><b style=color:green>' + data.application + '<%:RUNNING%></b></em>';
|
||||
} else {
|
||||
tb.innerHTML = '<em><b style=color:red>' + data.application + '<%:NOT RUNNING%></b></em>';
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
//]]>
|
||||
</script>
|
||||
<style>.mar-10 {margin-left: 50px; margin-right: 10px;}</style>
|
||||
<fieldset class="cbi-section">
|
||||
<p id="aliyundrive-fuse_status">
|
||||
<em><%:Collecting data...%></em>
|
||||
</p>
|
||||
</fieldset>
|
@ -1,50 +0,0 @@
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
||||
msgid "AliyunDrive"
|
||||
msgstr "阿里云盘"
|
||||
|
||||
msgid "AliyunDrive FUSE"
|
||||
msgstr "阿里云盘 FUSE"
|
||||
|
||||
msgid "Enable"
|
||||
msgstr "启用"
|
||||
|
||||
msgid "Refresh Token"
|
||||
msgstr "Refresh Token"
|
||||
|
||||
msgid "Mount Point"
|
||||
msgstr "挂载点"
|
||||
|
||||
msgid "Read Buffer Size"
|
||||
msgstr "下载缓冲大小(bytes)"
|
||||
|
||||
msgid "Collecting data..."
|
||||
msgstr "获取数据中..."
|
||||
|
||||
msgid "RUNNING"
|
||||
msgstr "运行中"
|
||||
|
||||
msgid "NOT RUNNING"
|
||||
msgstr "未运行"
|
||||
|
||||
msgid "Settings"
|
||||
msgstr "设置"
|
||||
|
||||
msgid "Log"
|
||||
msgstr "日志"
|
||||
|
||||
msgid "Debug Mode"
|
||||
msgstr "调试模式"
|
||||
|
||||
msgid "<a href=\"https://github.com/messense/aliyundrive-fuse\" target=\"_blank\">Project GitHub URL</a>"
|
||||
msgstr "<a href=\"https://github.com/messense/aliyundrive-fuse\" target=\"_blank\">GitHub 项目地址</a>"
|
||||
|
||||
msgid "<a href=\"https://github.com/messense/aliyundrive-webdav#%E8%8E%B7%E5%8F%96-refresh_token\" target=\"_blank\">How to get refresh token</a>"
|
||||
msgstr "<a href=\"https://github.com/messense/aliyundrive-webdav#%E8%8E%B7%E5%8F%96-refresh_token\" target=\"_blank\">查看获取 refresh token 的方法</a>"
|
||||
|
||||
msgid "Allow Other users Access"
|
||||
msgstr "允许其他用户访问"
|
||||
|
||||
msgid "Allow other users to access the drive, enable this if you share with samba"
|
||||
msgstr "允许其他用户访问此驱动,如果你想用Samba分享请开启此开关"
|
@ -1 +0,0 @@
|
||||
zh-cn
|
@ -1,11 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
delete ucitrack.@aliyundrive-fuse[-1]
|
||||
add ucitrack aliyundrive-fuse
|
||||
set ucitrack.@aliyundrive-fuse[-1].init=aliyundrive-fuse
|
||||
commit ucitrack
|
||||
EOF
|
||||
|
||||
rm -f /tmp/luci-indexcache
|
||||
exit 0
|
@ -1,11 +0,0 @@
|
||||
{
|
||||
"luci-app-aliyundrive-fuse": {
|
||||
"description": "Grant UCI access for luci-app-aliyundrive-fuse",
|
||||
"read": {
|
||||
"uci": [ "aliyundrive-fuse" ]
|
||||
},
|
||||
"write": {
|
||||
"uci": [ "aliyundrive-fuse" ]
|
||||
}
|
||||
}
|
||||
}
|
@ -5,7 +5,7 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-passwall2
|
||||
PKG_VERSION:=1.15-4
|
||||
PKG_VERSION:=1.15-5
|
||||
PKG_RELEASE:=
|
||||
|
||||
PKG_CONFIG_DEPENDS:= \
|
||||
|
@ -130,10 +130,10 @@ local function start()
|
||||
bin = ln_run("/usr/bin/ssserver", "ssserver", "-c " .. config_file, log_path)
|
||||
elseif type == "V2ray" then
|
||||
config = require(require_dir .. "util_xray").gen_config_server(user)
|
||||
bin = ln_run(api.get_v2ray_path(), "v2ray", "run -c " .. config_file, log_path)
|
||||
bin = ln_run(api.get_app_path("v2ray"), "v2ray", "run -c " .. config_file, log_path)
|
||||
elseif type == "Xray" then
|
||||
config = require(require_dir .. "util_xray").gen_config_server(user)
|
||||
bin = ln_run(api.get_xray_path(), "xray", "run -c " .. config_file, log_path)
|
||||
bin = ln_run(api.get_app_path("xray"), "xray", "run -c " .. config_file, log_path)
|
||||
elseif type == "Brook" then
|
||||
local brook_protocol = user.protocol
|
||||
local brook_password = user.password
|
||||
@ -142,10 +142,10 @@ local function start()
|
||||
if brook_protocol == "wsserver" and brook_path then
|
||||
brook_path_arg = " --path " .. brook_path
|
||||
end
|
||||
bin = ln_run(api.get_brook_path(), "brook_" .. id, string.format("--debug %s -l :%s -p %s%s", brook_protocol, port, brook_password, brook_path_arg), log_path)
|
||||
bin = ln_run(api.get_app_path("brook"), "brook_" .. id, string.format("--debug %s -l :%s -p %s%s", brook_protocol, port, brook_password, brook_path_arg), log_path)
|
||||
elseif type == "Hysteria" then
|
||||
config = require(require_dir .. "util_hysteria").gen_config_server(user)
|
||||
bin = ln_run(api.get_hysteria_path(), "hysteria", "-c " .. config_file .. " server", log_path)
|
||||
bin = ln_run(api.get_app_path("hysteria"), "hysteria", "-c " .. config_file .. " server", log_path)
|
||||
end
|
||||
|
||||
if next(config) then
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
|
||||
[[ "$ACTION" == "ifup" && $(uci get "passwall2.@global[0].enabled") == "1" ]] && {
|
||||
[[ "$ACTION" == "ifup" && $(uci get "passwall2.@global[0].enabled") == "1" ]] && [ -f /var/lock/passwall2_ready.lock ] && {
|
||||
default_device=$(ip route | grep default | awk -F 'dev ' '{print $2}' | awk '{print $1}')
|
||||
[ "$default_device" == "$DEVICE" ] && {
|
||||
LOCK_FILE_DIR=/var/lock
|
||||
|
@ -39,6 +39,7 @@ boot() {
|
||||
sleep $delay
|
||||
fi
|
||||
restart
|
||||
touch ${LOCK_FILE_DIR}/${CONFIG}_ready.lock
|
||||
}
|
||||
|
||||
start() {
|
||||
|
@ -22,7 +22,7 @@ config global_haproxy
|
||||
config global_delay
|
||||
option auto_on '0'
|
||||
option start_daemon '1'
|
||||
option start_delay '1'
|
||||
option start_delay '60'
|
||||
|
||||
config global_forwarding
|
||||
option tcp_no_redir_ports 'disable'
|
||||
|
@ -94,8 +94,8 @@ add() {
|
||||
|
||||
#始终用国内DNS解析节点域名
|
||||
servers=$(uci show "${CONFIG}" | grep ".address=" | cut -d "'" -f 2)
|
||||
hosts_foreach "servers" host_from_url | grep '[a-zA-Z]$' | sort -u | gen_items ipsets="passwall2_vpsiplist,passwall2_vpsiplist6" dnss="${LOCAL_DNS:-${DEFAULT_DNS}}" outf="${TMP_DNSMASQ_PATH}/10-vpsiplist_host.conf" ipsetoutf="${TMP_DNSMASQ_PATH}/ipset.conf"
|
||||
echolog " - [$?]节点列表中的域名(vpsiplist):${DEFAULT_DNS:-默认}"
|
||||
hosts_foreach "servers" host_from_url | grep '[a-zA-Z]$' | sort -u | gen_items ipsets="passwall2_vpslist,passwall2_vpslist6" dnss="${LOCAL_DNS:-${DEFAULT_DNS}}" outf="${TMP_DNSMASQ_PATH}/10-vpslist_host.conf" ipsetoutf="${TMP_DNSMASQ_PATH}/ipset.conf"
|
||||
echolog " - [$?]节点列表中的域名(vpslist):${DEFAULT_DNS:-默认}"
|
||||
|
||||
echo "conf-dir=${TMP_DNSMASQ_PATH}" > $DNSMASQ_CONF_FILE
|
||||
[ -n "${TUN_DNS}" ] && {
|
||||
|
@ -8,8 +8,8 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
LUCI_TITLE:=Argon Theme
|
||||
LUCI_DEPENDS:=+curl +jsonfilter
|
||||
PKG_VERSION:=1.7.8
|
||||
PKG_RELEASE:=20230505
|
||||
PKG_VERSION:=1.8.0
|
||||
PKG_RELEASE:=20230520
|
||||
|
||||
include $(TOPDIR)/feeds/luci/luci.mk
|
||||
|
||||
|
@ -158,10 +158,10 @@ body {
|
||||
a:link,
|
||||
a:visited,
|
||||
a:active {
|
||||
color: var(--default);
|
||||
color: var(--primary);
|
||||
text-decoration: none;
|
||||
}
|
||||
a:-webkit-any-link:not(.main-left a):not(li a):not(.brand):not(.login-container footer .ftc a) {
|
||||
a:-webkit-any-link:not(li a, .main-left a, .brand, .pull-right a, .alert-message a, .login-container footer a) {
|
||||
color: -webkit-link;
|
||||
cursor: pointer;
|
||||
color: var(--primary);
|
||||
@ -457,6 +457,10 @@ li {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
}
|
||||
.login-page .login-container footer,
|
||||
.login-page .login-container footer a {
|
||||
color: var(--default);
|
||||
}
|
||||
.login-page .login-container footer .ftc {
|
||||
position: absolute;
|
||||
bottom: 30px;
|
||||
@ -709,6 +713,7 @@ footer a {
|
||||
color: #fff;
|
||||
background: #5e72e4;
|
||||
background: var(--primary);
|
||||
box-shadow: 0 0 1px #ccc;
|
||||
}
|
||||
.main .main-left .nav li.slide .menu:hover a,
|
||||
.main .main-left .nav li.slide .menu.active a {
|
||||
@ -800,6 +805,7 @@ footer a {
|
||||
background-color: #5e72e4;
|
||||
background-color: var(--primary);
|
||||
transition: all 0.2s;
|
||||
box-shadow: 0 0 1px #ccc;
|
||||
}
|
||||
.main .main-left .nav li.slide .slide-menu li a:hover::after {
|
||||
color: #000;
|
||||
@ -1130,8 +1136,6 @@ input[type="checkbox"] {
|
||||
vertical-align: middle;
|
||||
}
|
||||
input[type="checkbox"]:checked {
|
||||
border: 1px solid #5e72e4;
|
||||
border: 1px solid var(--primary);
|
||||
background-image: url('data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 8 8\'%3e%3cpath fill=\'%23fff\' d=\'M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z\'/%3e%3c/svg%3e') !important;
|
||||
background-color: #5e72e4;
|
||||
background-color: var(--primary);
|
||||
@ -1156,8 +1160,6 @@ ul li .cbi-input-checkbox {
|
||||
margin: 0.25rem 0;
|
||||
}
|
||||
.cbi-input-radio:checked {
|
||||
border: 1px solid #5e72e4;
|
||||
border: 1px solid var(--primary);
|
||||
background-image: url('data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'-4 -4 8 8\'%3e%3ccircle r=\'3\' fill=\'%23fff\'/%3e%3c/svg%3e') !important;
|
||||
background-color: #5e72e4;
|
||||
background-color: var(--primary);
|
||||
@ -1267,7 +1269,8 @@ div.cbi-value var,
|
||||
td.cbi-value-field var,
|
||||
.td.cbi-value-field var {
|
||||
font-style: italic;
|
||||
color: #0069D6;
|
||||
color: var(--primary);
|
||||
text-shadow: 1px 1px 2px #ccc;
|
||||
}
|
||||
small {
|
||||
font-size: 90%;
|
||||
@ -1423,6 +1426,14 @@ input[name="nslookup"] {
|
||||
background-position: left top;
|
||||
animation: sparkle 1500ms linear infinite;
|
||||
}
|
||||
#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 {
|
||||
text-shadow: 1px 1px 2px #ccc;
|
||||
}
|
||||
/* fix multiple table */
|
||||
table table,
|
||||
.table .table {
|
||||
@ -1668,10 +1679,6 @@ th h5, td h5,
|
||||
th h6, td h6 {
|
||||
background: var(--lighter);
|
||||
}
|
||||
/* OCD: Change the background color of the "now in use" node in PassWall */
|
||||
.cbi-section-table > tbody > ._now_use {
|
||||
background: #5e72e473 !important;
|
||||
}
|
||||
/* language fix */
|
||||
body.lang_pl.node-main-login .cbi-value-title {
|
||||
width: 12rem;
|
||||
@ -1827,7 +1834,8 @@ input {
|
||||
transition: box-shadow 0.15s ease;
|
||||
margin: 0.25rem;
|
||||
}
|
||||
select:not([multiple="multiple"]):focus,
|
||||
select:not([multiple="multiple"]):hover,
|
||||
input:hover,
|
||||
input:focus {
|
||||
border-color: #5e72e4;
|
||||
border-color: var(--primary);
|
||||
@ -2510,8 +2518,9 @@ form > .cbi-map > .cbi-section > .cbi-section-node > .cbi-value > .cbi-value-fie
|
||||
content: "\f059";
|
||||
}
|
||||
.cbi-value-description {
|
||||
color: #8d8d8d;
|
||||
opacity: 0.8;
|
||||
font-size: small;
|
||||
opacity: 0.5;
|
||||
padding: 0.5rem;
|
||||
}
|
||||
.cbi-value-title {
|
||||
@ -2608,7 +2617,7 @@ td > .ifacebadge,
|
||||
.ifacebadge > img {
|
||||
display: inline-block;
|
||||
margin: 0 0.3rem;
|
||||
align-self: flex-start;
|
||||
align-self: center;
|
||||
}
|
||||
.ifacebadge span {
|
||||
line-height: 1.6em;
|
||||
@ -2738,16 +2747,6 @@ td > .ifacebadge,
|
||||
.cbi-section-remove {
|
||||
padding: 0.5rem;
|
||||
}
|
||||
div.cbi-value var,
|
||||
td.cbi-value-field var {
|
||||
font-style: italic;
|
||||
color: #0069D6;
|
||||
}
|
||||
small {
|
||||
font-size: 90%;
|
||||
white-space: normal;
|
||||
line-height: 1.42857143;
|
||||
}
|
||||
.cbi-optionals {
|
||||
padding: 1rem 1rem 0 1rem;
|
||||
border-top: 1px solid #CCC;
|
||||
@ -2857,7 +2856,6 @@ input[name="nslookup"] {
|
||||
overflow-y: hidden;
|
||||
}
|
||||
.cbi-section em {
|
||||
padding: 0.75rem 1.5rem;
|
||||
font-size: 0.7rem;
|
||||
font-weight: 600;
|
||||
color: var(--primary);
|
||||
@ -2938,6 +2936,20 @@ input[name="nslookup"] {
|
||||
.node-nas-usb_printer em {
|
||||
display: block;
|
||||
}
|
||||
/* PassWall */
|
||||
#cbi-passwall #add_link_div,
|
||||
#cbi-passwall #set_node_div {
|
||||
background: #fffffff0;
|
||||
}
|
||||
#cbi-passwall #add_link_div #nodes_link {
|
||||
background: var(--lighter);
|
||||
}
|
||||
#cbi-passwall #add_link_div .cbi-value-title {
|
||||
vertical-align: middle;
|
||||
}
|
||||
#cbi-passwall .cbi-section-table tbody ._now_use {
|
||||
background: #5e72e473 !important;
|
||||
}
|
||||
@media screen and (max-width: 1600px) {
|
||||
.main .main-left {
|
||||
width: calc(0% + 13rem);
|
||||
@ -2945,7 +2957,7 @@ input[name="nslookup"] {
|
||||
.main .main-right {
|
||||
width: calc(100% - 13rem);
|
||||
}
|
||||
.cbi-button {
|
||||
.cbi-button:not(.cbi-button-up, .cbi-button-down) {
|
||||
/*padding: 0.3rem 1.5rem;*/
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
|
@ -68,27 +68,33 @@ header::after {
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
.main .main-left .nav .slide .slide-menu a::after,
|
||||
.main .main-left .nav .slide .slide-menu .active a::after {
|
||||
background-color: var(--dark-primary) !important;
|
||||
}
|
||||
|
||||
.main .main-left .nav .slide .slide-menu li a {
|
||||
color: #cccccc;
|
||||
}
|
||||
|
||||
.main .main-left .nav .slide .slide-menu li a::after {
|
||||
background-color: var(--dark-primary) !important;
|
||||
box-shadow: 0 0 1px #000 !important;
|
||||
}
|
||||
|
||||
.main .main-left .nav .slide .slide-menu li a:hover {
|
||||
background: none !important;
|
||||
}
|
||||
|
||||
.main .main-left .nav .slide .menu:hover,
|
||||
.main .main-left .nav .slide .menu.active {
|
||||
background-color: #483d8b !important;
|
||||
background-color: var(--dark-primary) !important;
|
||||
color: #fff !important;
|
||||
box-shadow: 0 0 1px #000 !important;
|
||||
}
|
||||
|
||||
.main .main-left .nav .slide .menu.active a::after {
|
||||
background-color: #cccccc !important;
|
||||
.main .main-left .nav .slide .menu[data-title=Status]:before {
|
||||
color: var(--dark-primary) !important;
|
||||
}
|
||||
|
||||
.main .main-left .nav .slide .menu[data-title=Control]:before {
|
||||
color: var(--dark-primary) !important;
|
||||
}
|
||||
|
||||
.main .main-left .nav li a {
|
||||
@ -124,7 +130,13 @@ h3 {
|
||||
background: #333333;
|
||||
}
|
||||
|
||||
a:-webkit-any-link:not(.main-left a):not(li a):not(.brand):not(.login-container footer .ftc a) {
|
||||
a:link,
|
||||
a:visited,
|
||||
a:active {
|
||||
color: var(--dark_webkit-any-link);
|
||||
}
|
||||
|
||||
a:-webkit-any-link:not(li a, .main-left a, .brand, .pull-right a, .alert-message a, .login-container footer a) {
|
||||
color: var(--dark_webkit-any-link) !important;
|
||||
text-shadow: 1px 1px 2px #000 !important;
|
||||
}
|
||||
@ -133,6 +145,16 @@ input:-webkit-autofill {
|
||||
background-color: #3c3c3c !important;
|
||||
}
|
||||
|
||||
input[type="checkbox"]:checked {
|
||||
background-color: #483d8b !important;
|
||||
background-color: var(--dark-primary) !important;
|
||||
}
|
||||
|
||||
.cbi-input-radio:checked {
|
||||
background-color: #483d8b !important;
|
||||
background-color: var(--dark-primary) !important;
|
||||
}
|
||||
|
||||
.cbi-value-field .cbi-input-apply,
|
||||
.cbi-button-apply,
|
||||
.cbi-button-edit {
|
||||
@ -200,6 +222,7 @@ table>thead>tr>td {
|
||||
#conns>div>div>div>small,
|
||||
#memtotal>div>div>div>small {
|
||||
color: #ccc !important;
|
||||
text-shadow: 1px 1px 2px #000 !important;
|
||||
}
|
||||
|
||||
.node-system-packages>.main .cbi-section-node:first-child .cbi-value-last {
|
||||
@ -322,16 +345,6 @@ th h6, td h6 {
|
||||
background-color: #00ff0a45 !important;
|
||||
}
|
||||
|
||||
/* OCD: Compatible the background color of the "Add the node via the link" & "USE(node)" pop-up window in PassWall (dark mode only) */
|
||||
#add_link_div,
|
||||
#set_node_div {
|
||||
background-color: #333333f0 !important;
|
||||
box-shadow: #00000094 10px 10px 30px 5px !important;
|
||||
}
|
||||
#add_link_div>.cbi-value>.cbi-value-field>#nodes_link {
|
||||
background: #ccc;
|
||||
}
|
||||
|
||||
#content_syslog {
|
||||
box-shadow: 0 0 .5rem 0 rgba(0,0,0,0.35);
|
||||
}
|
||||
@ -404,7 +417,8 @@ input {
|
||||
box-shadow: 0 3px 2px rgba(0,0,0,0.05);
|
||||
}
|
||||
|
||||
select:not([multiple="multiple"]):focus,
|
||||
select:not([multiple="multiple"]):hover,
|
||||
input:hover,
|
||||
input:focus {
|
||||
border-color: #483d8b !important;
|
||||
border-color: var(--dark-primary) !important;
|
||||
@ -508,9 +522,11 @@ img[src="/luci-static/resources/icons/loading.gif"] {
|
||||
}
|
||||
|
||||
div.cbi-value var,
|
||||
td.cbi-value-field var {
|
||||
td.cbi-value-field var,
|
||||
.td.cbi-value-field var {
|
||||
color: #483d8b;
|
||||
color: var(--dark-primary);
|
||||
color: var(--dark_webkit-any-link);
|
||||
text-shadow: 1px 1px 2px #000;
|
||||
}
|
||||
|
||||
#diag-rc-output>pre {
|
||||
@ -662,6 +678,16 @@ fieldset[id^="cbi-apply-"] {
|
||||
color: #ccc !important;
|
||||
}
|
||||
|
||||
/* PassWall */
|
||||
#cbi-passwall #add_link_div,
|
||||
#cbi-passwall #set_node_div {
|
||||
background: #333333f0 !important;
|
||||
box-shadow: #00000094 10px 10px 30px 5px !important;
|
||||
}
|
||||
#cbi-passwall #add_link_div #nodes_link {
|
||||
background: #3c3c3c !important;
|
||||
}
|
||||
|
||||
@supports (-webkit-backdrop-filter: none) or (backdrop-filter: none) {
|
||||
.login-page .login-container .login-form {
|
||||
-webkit-backdrop-filter: blur(var(--blur-radius-dark));
|
||||
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 9.4 KiB |
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 7.7 KiB |
Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 6.1 KiB |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 1019 B After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 4.5 KiB |
Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 6.1 KiB |
@ -1,61 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 23.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 256 256" style="enable-background:new 0 0 256 256;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_1_);}
|
||||
<?xml version="1.0"?>
|
||||
<svg width="256" height="256" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" enable-background="new 0 0 256 256" version="1.1" xml:space="preserve">
|
||||
<style type="text/css">.st0{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_1_);}
|
||||
.st1{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_2_);}
|
||||
.st2{fill:#FFFFFF;}
|
||||
</style>
|
||||
<g>
|
||||
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="11.1379" y1="10.6499" x2="245.5302" y2="245.0422">
|
||||
<stop offset="0" style="stop-color:#5E72E4"/>
|
||||
<stop offset="1" style="stop-color:#778AFF"/>
|
||||
</linearGradient>
|
||||
<path class="st0" d="M36.4,0.2h183.8c19.7,0,35.7,16,35.7,35.7v183.8c0,19.7-16,35.7-35.7,35.7H36.4c-19.7,0-35.7-16-35.7-35.7
|
||||
V35.9C0.7,16.2,16.7,0.2,36.4,0.2z"/>
|
||||
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="0.6679" y1="0.18" x2="0.6679" y2="0.18">
|
||||
<stop offset="0" style="stop-color:#5E72E4"/>
|
||||
<stop offset="1" style="stop-color:#778AFF"/>
|
||||
</linearGradient>
|
||||
<path class="st1" d="M0.7,0.2"/>
|
||||
</g>
|
||||
<path class="st2" d="M128.3,32.6c-43.9,0-79.4,35.6-79.4,79.4c0,35.3,23.1,65.2,55,75.6l9.9-40.1c-14-5.7-23.8-19.4-23.8-35.5
|
||||
c0-21.2,17.2-38.3,38.3-38.3c21.2,0,38.3,17.2,38.3,38.3c0,16-9.8,29.7-23.8,35.5l9.9,40.1c31.9-10.3,55-40.2,55-75.6
|
||||
C207.8,68.2,172.2,32.6,128.3,32.6z"/>
|
||||
<g>
|
||||
<path class="st2" d="M48.5,234.8c-2.3,0-4.3-0.3-6.1-0.9c-1.7-0.6-3.3-1.6-4.7-3c-1.4-1.4-2.5-2.8-3.3-4.2
|
||||
c-0.8-1.4-1.3-2.9-1.6-4.4c-0.3-1.5-0.4-3.2-0.4-4.9c0-2.3,0.3-4.3,0.8-5.9c0.5-1.7,1.1-3.1,1.8-4.3c0.7-1.2,1.8-2.4,3.1-3.6
|
||||
c1.3-1.2,2.8-2.1,4.4-2.8c1.6-0.7,3.5-1.1,5.7-1.1c2,0,3.8,0.3,5.6,0.9c1.7,0.6,3.3,1.5,4.7,2.7c1.4,1.2,2.6,2.6,3.5,4.4
|
||||
c1,1.7,1.6,3.4,1.9,5c0.3,1.6,0.4,3.2,0.4,4.8c-0.1,2.5-0.4,4.7-1,6.6c-0.6,1.9-1.3,3.5-2.2,4.7c-0.9,1.2-1.9,2.3-3.2,3.2
|
||||
c-1.2,0.9-2.7,1.7-4.3,2.2C52.3,234.5,50.5,234.8,48.5,234.8z M48,227.6c1.1,0.1,2.3-0.1,3.4-0.4c1.1-0.4,2.2-1.1,3.2-2.1
|
||||
c1-1,1.6-2.3,1.9-3.8c0.3-1.5,0.5-2.9,0.4-4.3c0-1.9-0.3-3.4-0.7-4.6c-0.4-1.2-1-2.2-1.6-3c-0.6-0.8-1.4-1.5-2.3-2
|
||||
c-0.9-0.5-1.9-0.8-3.1-0.9c-1.1-0.1-2.2,0.1-3.2,0.4c-1,0.4-1.9,0.9-2.7,1.5c-0.8,0.6-1.5,1.5-2.2,2.5c-0.6,1-1,2.1-1.1,3.2
|
||||
c-0.1,1.1-0.2,2.1-0.2,3c0,1.2,0.1,2.4,0.4,3.6c0.2,1.2,0.7,2.3,1.3,3.4c0.6,1,1.5,1.8,2.7,2.4C45.4,227.2,46.6,227.5,48,227.6z"/>
|
||||
<path class="st2" d="M77,243.9h-7.2v-32.8H77l0,2c0.3-0.3,0.7-0.6,1.1-0.9c0.4-0.3,0.9-0.5,1.6-0.7c0.7-0.2,1.3-0.3,2-0.3
|
||||
c1.4,0,2.7,0.4,4,1.1c1.3,0.8,2.3,1.8,3.2,3c0.8,1.3,1.4,2.6,1.8,4.1c0.3,1.5,0.5,2.8,0.5,4.1c0,1.3-0.2,2.7-0.7,4.1
|
||||
c-0.5,1.7-1.4,3.1-2.5,4.3c-1.1,1.2-2.3,1.9-3.5,2.2c-1.2,0.3-2.3,0.4-3.1,0.4c-1.6,0-2.7-0.3-3.3-0.8l-1-0.7V243.9z M77,225.8
|
||||
l0,1.7c0.2,0.5,0.5,1,0.9,1.3c0.3,0.4,1.1,0.6,2.1,0.6c1.1,0,1.9-0.3,2.5-0.9c0.5-0.5,0.8-1.3,1-2.3c0.2-1.1,0.3-2.2,0.3-3.5
|
||||
c0-1.3-0.1-2.4-0.4-3.3c-0.3-0.8-0.7-1.5-1.2-2.1c-0.6-0.6-1.3-0.9-2.1-0.8c-0.5,0-1.1,0.2-1.7,0.6c-0.6,0.4-1,0.9-1.2,1.6
|
||||
l-0.2,0.6V225.8z"/>
|
||||
<path class="st2" d="M103.3,224.3c0,0.2,0,0.4,0,0.6c0,0.2,0.1,0.7,0.1,1.4c0.1,0.7,0.3,1.5,0.7,2.3c0.4,0.8,0.8,1.3,1.2,1.6
|
||||
c0.5,0.3,0.9,0.3,1.5,0.3c0.4-0.1,0.9-0.2,1.3-0.5c0.4-0.3,0.7-0.7,0.9-1.1c0.2-0.4,0.4-0.8,0.5-1.2l0.2-1h7.4
|
||||
c-0.1,0.5-0.2,1.1-0.3,1.7c-0.1,0.7-0.5,1.4-1,2.3c-0.5,0.8-1.1,1.6-1.9,2.2c-0.7,0.6-1.7,1.1-3,1.5c-1.3,0.4-2.7,0.6-4.3,0.5
|
||||
c-1.6-0.1-3.2-0.4-4.6-0.9c-1.5-0.6-2.6-1.3-3.5-2.3c-0.9-1-1.5-2.2-1.9-3.5c-0.4-1.3-0.6-2.9-0.6-4.6c0-1,0.1-1.9,0.3-2.9
|
||||
c0.2-1,0.5-2,0.9-2.9c0.4-0.9,1-1.9,1.7-2.8c0.7-0.9,1.9-1.8,3.4-2.6c1.5-0.8,3.2-1.2,4.9-1.1c0.7,0,1.7,0.2,2.8,0.5
|
||||
c1.2,0.3,2.3,1,3.5,2c1.2,1,2.1,2.3,2.6,3.8c0.6,1.5,0.9,2.8,0.9,4l0.1,3H103.3z M110,220.2c0-0.6-0.1-1.1-0.2-1.6
|
||||
c-0.1-0.5-0.2-1-0.5-1.6s-0.6-0.9-0.9-1.2c-0.3-0.2-0.8-0.4-1.3-0.4c-0.6,0-1.1,0.1-1.6,0.4c-0.5,0.3-0.9,0.8-1.3,1.6
|
||||
c-0.4,0.7-0.6,1.3-0.6,1.8l-0.1,0.9H110z"/>
|
||||
<path class="st2" d="M142.4,234.4h-7.2v-13.1c0-1-0.1-1.8-0.2-2.4c-0.1-0.6-0.4-1.1-0.9-1.6c-0.5-0.4-1.2-0.6-2.1-0.6
|
||||
c-0.6,0.1-1.1,0.3-1.6,0.6c-0.5,0.3-0.8,0.8-1,1.3c-0.2,0.5-0.3,1.3-0.3,2.3v13.3h-7.2v-23.3h7.2v1.3c0.3-0.1,0.6-0.3,1.1-0.5
|
||||
c0.4-0.2,1-0.4,1.6-0.6c0.6-0.2,1.5-0.2,2.5-0.2c1,0.1,1.9,0.2,2.7,0.5c0.8,0.3,1.5,0.7,2.3,1.3c0.7,0.6,1.4,1.3,1.8,2.1
|
||||
c0.5,0.8,0.8,1.7,1,2.5c0.2,0.8,0.3,1.9,0.3,3.1V234.4z"/>
|
||||
<path class="st2" d="M163.5,221.2l-3.7,13.3h-5.6l-6.7-23.3h7.1l2.5,11.1l3.4-11.1h6.1l3.2,11l2.3-11h7.1l-6.3,23.3h-5.6
|
||||
L163.5,221.2z"/>
|
||||
<path class="st2" d="M184.4,211.1h6.7v4.3c0.3-0.5,0.8-1,1.2-1.5c0.5-0.5,1.3-1.1,2.4-1.7c1.2-0.6,2.1-0.9,2.9-0.9l3.8-0.3v6.2
|
||||
c-0.7-0.1-1.4-0.1-2-0.2c-0.6,0-1.5,0-2.5,0.1c-1.1,0.1-2.1,0.5-3.1,1c-1,0.5-1.6,1-1.9,1.6l-0.8,1.3v13.4h-6.7V211.1z"/>
|
||||
<path class="st2" d="M218.3,211.1h5.2v4.6h-5.2v10.9c0,0.8,0.1,1.4,0.3,1.8c0.2,0.4,0.5,0.6,0.8,0.8c0.4,0.1,1,0.2,1.9,0.2h2.3
|
||||
l-0.1,5h-5.1c-0.7,0-1.4,0-2.1-0.1c-0.7-0.1-1.4-0.3-2.1-0.7c-0.7-0.4-1.3-0.9-1.8-1.4c-0.5-0.6-0.8-1.2-1-2
|
||||
c-0.2-0.7-0.3-1.7-0.3-2.8v-11.6h-4.8v-4.6h4.8v-7.6h7.2V211.1z"/>
|
||||
</g>
|
||||
</svg>
|
||||
.st2{fill:#FFFFFF;}</style>
|
||||
<g class="layer">
|
||||
<title>Layer 1</title>
|
||||
<g id="svg_1">
|
||||
<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="11.14" x2="245.53" y1="10.65" y2="245.04">
|
||||
<stop offset="0" stop-color="#5E72E4"/>
|
||||
<stop offset="1" stop-color="#778AFF"/>
|
||||
</linearGradient>
|
||||
<path class="st0" d="m36.4,0.2l183.8,0c19.7,0 35.7,16 35.7,35.7l0,183.8c0,19.7 -16,35.7 -35.7,35.7l-183.8,0c-19.7,0 -35.7,-16 -35.7,-35.7l0,-183.8c0,-19.7 16,-35.7 35.7,-35.7z" id="svg_2"/>
|
||||
<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_2_" x1="0.67" x2="0.67" y1="0.18" y2="0.18">
|
||||
<stop offset="0" stop-color="#5E72E4"/>
|
||||
<stop offset="1" stop-color="#778AFF"/>
|
||||
</linearGradient>
|
||||
<path class="st1" d="m0.7,0.2" id="svg_3"/>
|
||||
</g>
|
||||
<path class="st2" d="m128.3,46.6c-46.66,0 -84.4,37.84 -84.4,84.4c0,37.52 24.55,69.31 58.46,80.36l10.52,-42.63c-14.88,-6.06 -25.3,-20.62 -25.3,-37.74c0,-22.54 18.28,-40.71 40.71,-40.71c22.54,0 40.71,18.28 40.71,40.71c0,17.01 -10.42,31.57 -25.3,37.74l10.52,42.63c33.91,-10.95 58.46,-42.73 58.46,-80.36c0.11,-46.56 -37.74,-84.4 -84.4,-84.4z" id="svg_4"/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 1.5 KiB |
@ -182,11 +182,11 @@ body {
|
||||
a:link,
|
||||
a:visited,
|
||||
a:active {
|
||||
color: var(--default);
|
||||
color: var(--primary);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:-webkit-any-link:not(.main-left a):not(li a):not(.brand):not(.login-container footer .ftc a) {
|
||||
a:-webkit-any-link:not(li a, .main-left a, .brand, .pull-right a, .alert-message a, .login-container footer a) {
|
||||
color: -webkit-link;
|
||||
cursor: pointer;
|
||||
color: var(--primary);
|
||||
@ -501,6 +501,14 @@ li {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
footer {
|
||||
color: var(--default);
|
||||
|
||||
a {
|
||||
color: var(--default);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -799,6 +807,7 @@ footer {
|
||||
color: #fff;
|
||||
background: #5e72e4;
|
||||
background: var(--primary);
|
||||
box-shadow: 0 0 1px #ccc;
|
||||
|
||||
a {
|
||||
color: #000;
|
||||
@ -913,6 +922,7 @@ footer {
|
||||
background-color: #5e72e4;
|
||||
background-color: var(--primary);
|
||||
transition: all 0.2s;
|
||||
box-shadow: 0 0 1px #ccc;
|
||||
}
|
||||
|
||||
&:hover::after {
|
||||
@ -1313,8 +1323,6 @@ input[type="checkbox"] {
|
||||
}
|
||||
|
||||
input[type="checkbox"]:checked {
|
||||
border: 1px solid #5e72e4;
|
||||
border: 1px solid var(--primary);
|
||||
background-image: url('data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 8 8\'%3e%3cpath fill=\'%23fff\' d=\'M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z\'/%3e%3c/svg%3e') !important;
|
||||
background-color: #5e72e4;
|
||||
background-color: var(--primary);
|
||||
@ -1343,8 +1351,6 @@ ul li .cbi-input-checkbox {
|
||||
}
|
||||
|
||||
.cbi-input-radio:checked {
|
||||
border: 1px solid #5e72e4;
|
||||
border: 1px solid var(--primary);
|
||||
background-image: url('data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'-4 -4 8 8\'%3e%3ccircle r=\'3\' fill=\'%23fff\'/%3e%3c/svg%3e') !important;
|
||||
background-color: #5e72e4;
|
||||
background-color: var(--primary);
|
||||
@ -1475,7 +1481,8 @@ div.cbi-value var,
|
||||
td.cbi-value-field var,
|
||||
.td.cbi-value-field var {
|
||||
font-style: italic;
|
||||
color: #0069D6;
|
||||
color: var(--primary);
|
||||
text-shadow: 1px 1px 2px #ccc;
|
||||
}
|
||||
|
||||
small {
|
||||
@ -1659,6 +1666,15 @@ input[name="nslookup"] {
|
||||
animation: sparkle 1500ms linear infinite;
|
||||
}
|
||||
|
||||
#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 {
|
||||
text-shadow: 1px 1px 2px #ccc;
|
||||
}
|
||||
|
||||
/* fix multiple table */
|
||||
|
||||
table table,
|
||||
@ -1967,11 +1983,6 @@ th h6, td h6 {
|
||||
background: var(--lighter);
|
||||
}
|
||||
|
||||
/* OCD: Change the background color of the "now in use" node in PassWall */
|
||||
.cbi-section-table>tbody>._now_use {
|
||||
background: #5e72e473 !important;
|
||||
}
|
||||
|
||||
/* language fix */
|
||||
body.lang_pl.node-main-login .cbi-value-title {
|
||||
width: 12rem;
|
||||
@ -2167,7 +2178,8 @@ input {
|
||||
margin: 0.25rem;
|
||||
}
|
||||
|
||||
select:not([multiple="multiple"]):focus,
|
||||
select:not([multiple="multiple"]):hover,
|
||||
input:hover,
|
||||
input:focus {
|
||||
border-color: #5e72e4;
|
||||
border-color: var(--primary);
|
||||
@ -2988,7 +3000,6 @@ select[multiple="multiple"] {
|
||||
display: table-cell;
|
||||
line-height: 1.6;
|
||||
font-size: 0.875rem;
|
||||
|
||||
}
|
||||
|
||||
/* Fix text position of the luci-app-filebrowser running state */
|
||||
@ -3014,8 +3025,9 @@ form>.cbi-map>.cbi-section>.cbi-section-node>.cbi-value>.cbi-value-field font {
|
||||
}
|
||||
|
||||
.cbi-value-description {
|
||||
color: #8d8d8d;
|
||||
opacity: 0.8;
|
||||
font-size: small;
|
||||
opacity: 0.5;
|
||||
padding: 0.5rem;
|
||||
}
|
||||
|
||||
@ -3138,7 +3150,7 @@ td>.ifacebadge,
|
||||
.ifacebadge>img {
|
||||
display: inline-block;
|
||||
margin: 0 0.3rem;
|
||||
align-self: flex-start;
|
||||
align-self: center;
|
||||
}
|
||||
|
||||
|
||||
@ -3303,18 +3315,6 @@ td>.ifacebadge,
|
||||
padding: 0.5rem;
|
||||
}
|
||||
|
||||
div.cbi-value var,
|
||||
td.cbi-value-field var {
|
||||
font-style: italic;
|
||||
color: #0069D6;
|
||||
}
|
||||
|
||||
small {
|
||||
font-size: 90%;
|
||||
white-space: normal;
|
||||
line-height: 1.42857143;
|
||||
}
|
||||
|
||||
|
||||
.cbi-optionals {
|
||||
padding: 1rem 1rem 0 1rem;
|
||||
@ -3459,7 +3459,6 @@ input[name="nslookup"] {
|
||||
overflow-y: hidden;
|
||||
|
||||
em {
|
||||
padding: 0.75rem 1.5rem;
|
||||
font-size: 0.7rem;
|
||||
font-weight: 600;
|
||||
color: var(--primary);
|
||||
@ -3573,6 +3572,20 @@ input[name="nslookup"] {
|
||||
display: block;
|
||||
}
|
||||
|
||||
/* PassWall */
|
||||
#cbi-passwall #add_link_div,
|
||||
#cbi-passwall #set_node_div {
|
||||
background: #fffffff0;
|
||||
}
|
||||
#cbi-passwall #add_link_div #nodes_link {
|
||||
background: var(--lighter);
|
||||
}
|
||||
#cbi-passwall #add_link_div .cbi-value-title {
|
||||
vertical-align: middle;
|
||||
}
|
||||
#cbi-passwall .cbi-section-table tbody ._now_use {
|
||||
background: #5e72e473 !important;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1600px) {
|
||||
|
||||
@ -3587,7 +3600,7 @@ input[name="nslookup"] {
|
||||
}
|
||||
|
||||
|
||||
.cbi-button {
|
||||
.cbi-button:not(.cbi-button-up, .cbi-button-down) {
|
||||
/*padding: 0.3rem 1.5rem;*/
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
|
@ -111,10 +111,6 @@ header::after {
|
||||
.slide {
|
||||
.slide-menu {
|
||||
|
||||
a::after {
|
||||
background-color: var(--dark-primary) !important;
|
||||
}
|
||||
|
||||
.active {
|
||||
a {
|
||||
color: #fff !important;
|
||||
@ -128,23 +124,34 @@ header::after {
|
||||
li {
|
||||
a {
|
||||
color: #cccccc;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
background: none !important;
|
||||
&:hover {
|
||||
background: none !important;
|
||||
}
|
||||
|
||||
&::after {
|
||||
background-color: var(--dark-primary) !important;
|
||||
box-shadow: 0 0 1px #000 !important;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.menu.active {
|
||||
background-color: #483d8b !important;
|
||||
background-color: var(--dark-primary) !important;
|
||||
color: #fff !important;
|
||||
|
||||
a::after {
|
||||
background-color: #cccccc !important;
|
||||
.menu {
|
||||
&:hover,
|
||||
&.active {
|
||||
background-color: #483d8b !important;
|
||||
background-color: var(--dark-primary) !important;
|
||||
color: #fff !important;
|
||||
box-shadow: 0 0 1px #000 !important;
|
||||
}
|
||||
}
|
||||
|
||||
.menu[data-title=Status]:before,
|
||||
.menu[data-title=Control]:before {
|
||||
color: var(--dark-primary) !important;
|
||||
}
|
||||
}
|
||||
|
||||
li {
|
||||
@ -188,7 +195,13 @@ h3 {
|
||||
background: #333333;
|
||||
}
|
||||
|
||||
a:-webkit-any-link:not(.main-left a):not(li a):not(.brand):not(.login-container footer .ftc a) {
|
||||
a:link,
|
||||
a:visited,
|
||||
a:active {
|
||||
color: var(--dark_webkit-any-link);
|
||||
}
|
||||
|
||||
a:-webkit-any-link:not(li a, .main-left a, .brand, .pull-right a, .alert-message a, .login-container footer a) {
|
||||
color: var(--dark_webkit-any-link) !important;
|
||||
text-shadow: 1px 1px 2px #000 !important;
|
||||
}
|
||||
@ -197,6 +210,16 @@ input:-webkit-autofill {
|
||||
background-color: #3c3c3c !important;
|
||||
}
|
||||
|
||||
input[type="checkbox"]:checked {
|
||||
background-color: #483d8b !important;
|
||||
background-color: var(--dark-primary) !important;
|
||||
}
|
||||
|
||||
.cbi-input-radio:checked {
|
||||
background-color: #483d8b !important;
|
||||
background-color: var(--dark-primary) !important;
|
||||
}
|
||||
|
||||
.cbi-value-field .cbi-input-apply,
|
||||
.cbi-button-apply,
|
||||
.cbi-button-edit {
|
||||
@ -265,8 +288,8 @@ table>thead>tr>td {
|
||||
#membuff>div>div>div>small,
|
||||
#conns>div>div>div>small,
|
||||
#memtotal>div>div>div>small {
|
||||
|
||||
color: #ccc !important;
|
||||
text-shadow: 1px 1px 2px #000 !important;
|
||||
}
|
||||
|
||||
.node-system-packages>.main .cbi-section-node:first-child .cbi-value-last {
|
||||
@ -392,16 +415,6 @@ th h6, td h6 {
|
||||
background-color: #00ff0a45 !important;
|
||||
}
|
||||
|
||||
/* OCD: Compatible the background color of the "Add the node via the link" & "USE(node)" pop-up window in PassWall (dark mode only) */
|
||||
#add_link_div,
|
||||
#set_node_div {
|
||||
background-color: #333333f0 !important;
|
||||
box-shadow: #00000094 10px 10px 30px 5px !important;
|
||||
}
|
||||
#add_link_div>.cbi-value>.cbi-value-field>#nodes_link {
|
||||
background: #ccc;
|
||||
}
|
||||
|
||||
#content_syslog {
|
||||
box-shadow: 0 0 0.5rem 0 rgba(0, 0, 0, .35)
|
||||
}
|
||||
@ -474,7 +487,8 @@ input {
|
||||
box-shadow: 0 3px 2px rgba(0, 0, 0, .05);
|
||||
}
|
||||
|
||||
select:not([multiple="multiple"]):focus,
|
||||
select:not([multiple="multiple"]):hover,
|
||||
input:hover,
|
||||
input:focus {
|
||||
border-color: #483d8b !important;
|
||||
border-color: var(--dark-primary) !important;
|
||||
@ -577,9 +591,11 @@ img[src="/luci-static/resources/icons/loading.gif"] {
|
||||
}
|
||||
|
||||
div.cbi-value var,
|
||||
td.cbi-value-field var {
|
||||
td.cbi-value-field var,
|
||||
.td.cbi-value-field var {
|
||||
color: #483d8b;
|
||||
color: var(--dark-primary);
|
||||
color: var(--dark_webkit-any-link);
|
||||
text-shadow: 1px 1px 2px #000;
|
||||
}
|
||||
|
||||
#diag-rc-output>pre {
|
||||
@ -735,6 +751,16 @@ fieldset[id^="cbi-apply-"] {
|
||||
color: #ccc !important;
|
||||
}
|
||||
|
||||
/* PassWall */
|
||||
#cbi-passwall #add_link_div,
|
||||
#cbi-passwall #set_node_div {
|
||||
background: #333333f0 !important;
|
||||
box-shadow: #00000094 10px 10px 30px 5px !important;
|
||||
}
|
||||
#cbi-passwall #add_link_div #nodes_link {
|
||||
background: #3c3c3c !important;
|
||||
}
|
||||
|
||||
@supports (-webkit-backdrop-filter: none) or (backdrop-filter: none) {
|
||||
.login-page .login-container .login-form {
|
||||
-webkit-backdrop-filter: blur(var(--blur-radius-dark));
|
||||
|