🔥 Sync 2026-10-05 04:55:44

This commit is contained in:
github-actions[bot] committed 2026-10-05 04:55:44 +08:00
1 parent 02a44b1178
commit f3ff7a3b78
15 files changed
+77 -79

No files matched your search

+1 -1
View File
@@ -12,7 +12,7 @@ LUCI_DEPENDS:=+luci-base +logd +jsonfilter
LUCI_PKGARCH:=all LUCI_PKGARCH:=all
PKG_VERSION:=0.1.51 PKG_VERSION:=0.1.51
PKG_RELEASE:=60 PKG_RELEASE:=61
# Reproducible build: honor SOURCE_DATE_EPOCH from the build environment (set by docker-sdk.sh / CI). # Reproducible build: honor SOURCE_DATE_EPOCH from the build environment (set by docker-sdk.sh / CI).
ifdef SOURCE_DATE_EPOCH ifdef SOURCE_DATE_EPOCH
+1 -1
View File
@@ -29,7 +29,7 @@ LuCI **Firewall Live View** — client-side JS view polling `ubus fwlive poll` (
| `root/usr/libexec/fwlive-adaptive-cap.sh` | Layer 1 adaptive poll cap (sourced by `rpcd/fwlive`) | | `root/usr/libexec/fwlive-adaptive-cap.sh` | Layer 1 adaptive poll cap (sourced by `rpcd/fwlive`) |
| `root/usr/libexec/fwlive-logging.sh` | WAN zone logging helpers | | `root/usr/libexec/fwlive-logging.sh` | WAN zone logging helpers |
| `root/lib/upgrade/keep.d/luci-app-fwlive` | Keep `/etc/fwlive/` across sysupgrade | | `root/lib/upgrade/keep.d/luci-app-fwlive` | Keep `/etc/fwlive/` across sysupgrade |
| `/etc/fwlive/wan-log-baseline` | Written on first **Enable logging** (and best-effort on already-on enable); `prerm` restores it on uninstall. A successful disable/reload, including an already-disabled retry, drops the marker when no later fwlive toggle has taken ownership; this preserves operator changes to other log-mask bits, including staged edits. If logging is already off but the marker remains, Disable retries `fw4 reload`; pending UCI changes return `firewall_changes_pending` without reloading, and reload failure returns `firewall_reload_failed` while retaining the marker. Lock, read, or generation mismatch also keeps it for uninstall recovery. Restore is skipped (file kept; `fwlive` syslog only) when there is no WAN zone, the lock is unavailable, firewall changes are pending, the commit does not verify, reload fails, or the value after reload does not match the baseline. Disable of a pre-existing/foreign log bit is not snapshotted, so uninstall will not restore that bit. | | `/etc/fwlive/wan-log-baseline` | Written on first **Enable logging** (and best-effort on already-on enable with no baseline file, recording the current mask with fwlive's filter-log bit cleared); `prerm` restores it on uninstall. A successful disable/reload, including an already-disabled retry, drops the marker when no later fwlive toggle has taken ownership; this preserves operator changes to other log-mask bits, including staged edits. If logging is already off but the marker remains, Disable retries `fw4 reload`; pending UCI changes return `firewall_changes_pending` without reloading, and reload failure returns `firewall_reload_failed` while retaining the marker. Lock, read, or generation mismatch also keeps it for uninstall recovery. Restore is skipped (file kept; `fwlive` syslog only) when there is no WAN zone, the lock is unavailable, firewall changes are pending, the commit does not verify, reload fails, or the value after reload does not match the baseline. Disable of a pre-existing/foreign log bit is not snapshotted, so uninstall will not restore that bit. |
| `root/usr/libexec/fwlive-log-filter.sh` | Server-side firewall-only filter (`isFirewallEvent` parity) | | `root/usr/libexec/fwlive-log-filter.sh` | Server-side firewall-only filter (`isFirewallEvent` parity) |
| `root/usr/libexec/fwlive-is-firewall-event.sh` | Shared filter logic (sourced by filter + tests) | | `root/usr/libexec/fwlive-is-firewall-event.sh` | Shared filter logic (sourced by filter + tests) |
| `root/usr/libexec/fwlive-is-firewall-event.awk` | **Generated** standalone classifier from `CLASSIFY_SPEC`; loaded by `fwlive-is-firewall-event.sh` | | `root/usr/libexec/fwlive-is-firewall-event.awk` | **Generated** standalone classifier from `CLASSIFY_SPEC`; loaded by `fwlive-is-firewall-event.sh` |
+1 -1
View File
@@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-passwall PKG_NAME:=luci-app-passwall
PKG_VERSION:=26.10.4 PKG_VERSION:=26.10.4
PKG_RELEASE:=314 PKG_RELEASE:=315
PKG_PO_VERSION:=$(PKG_VERSION) PKG_PO_VERSION:=$(PKG_VERSION)
PKG_CONFIG_DEPENDS:= \ PKG_CONFIG_DEPENDS:= \
@@ -1,4 +1,9 @@
<style> <style>
.pure-1-2 {
width: 50%;
display: inline-block;
letter-spacing: normal;
}
.pure-img { .pure-img {
max-height: 100%; max-height: 100%;
width: auto; width: auto;
@@ -20,7 +25,7 @@
} }
.status-bar .inner { .status-bar .inner {
margin: 0.5em; padding: 0.5em;
} }
.status-bar .inner .flag { .status-bar .inner .flag {
@@ -43,10 +48,6 @@
bottom: 3.3rem; bottom: 3.3rem;
} }
footer{
display:block !important;
}
@media screen and (max-width: 700px) { @media screen and (max-width: 700px) {
.status-bar .icon-con { .status-bar .icon-con {
height: 2.5em; height: 2.5em;
@@ -56,11 +57,11 @@ display:block !important;
<div class="status-bar"> <div class="status-bar">
<div class="inner"> <div class="inner">
<div class="pure-g"> <div class="pure-g">
<div class="pure-u-1-2"> <div class="pure-1-2">
<span class="flag"><img src="/luci-static/passwall/flags/loading.svg" class="pure-img"></span> <span <span class="flag"><img src="/luci-static/passwall/flags/loading.svg" class="pure-img"></span> <span
class="status-info">获取中...</span> class="status-info">获取中...</span>
</div> </div>
<div class="pure-u-1-2"> <div class="pure-1-2">
<div class="icon-con"> <div class="icon-con">
<img src="/luci-static/passwall/img/site_icon1_01.png" class="pure-img i1"> <img src="/luci-static/passwall/img/site_icon1_01.png" class="pure-img i1">
<img src="/luci-static/passwall/img/site_icon1_02.png" class="pure-img i2"> <img src="/luci-static/passwall/img/site_icon1_02.png" class="pure-img i2">
@@ -76,13 +77,9 @@ display:block !important;
const _ASSETS = '/luci-static/passwall/'; const _ASSETS = '/luci-static/passwall/';
const CHECK_IP_URL = '<%=url([[admin]], [[services]], [[passwall]], [[ip]])%>'; const CHECK_IP_URL = '<%=url([[admin]], [[services]], [[passwall]], [[ip]])%>';
let mainContent = document.getElementById("maincontent");
let statusBar = document.querySelector(".status-bar"); let statusBar = document.querySelector(".status-bar");
function resize() { function resize() {
wW = window.innerWidth;
let lw = document.querySelector(".main-left, :root[data-layout='sidebar'] .fs-sidebar")?.offsetWidth ?? 5;
statusBar.style.width = (wW - lw) + 'px';
let flagElement = statusBar.querySelector(".flag"); let flagElement = statusBar.querySelector(".flag");
flagElement.style.width = (flagElement.offsetHeight / 3 * 4) + 'px'; flagElement.style.width = (flagElement.offsetHeight / 3 * 4) + 'px';
@@ -126,7 +123,4 @@ document.addEventListener('DOMContentLoaded', function() {
}); });
window.addEventListener('resize', resize); window.addEventListener('resize', resize);
if (mainContent && window.getComputedStyle(mainContent).getPropertyValue("contain")=== "paint") {
document.body.appendChild(statusBar);
}
</script> </script>
+4 -4
View File
@@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-passwall2 PKG_NAME:=luci-app-passwall2
PKG_VERSION:=26.10.1 PKG_VERSION:=26.10.1
PKG_RELEASE:=135 PKG_RELEASE:=136
PKG_PO_VERSION:=$(PKG_VERSION) PKG_PO_VERSION:=$(PKG_VERSION)
PKG_CONFIG_DEPENDS:= \ PKG_CONFIG_DEPENDS:= \
@@ -39,9 +39,9 @@ LUCI_DEPENDS:=+coreutils +coreutils-base64 +coreutils-nohup +coreutils-timeout +
+PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Server:shadowsocks-libev-ss-server \ +PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Server:shadowsocks-libev-ss-server \
+PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Rust_Client:shadowsocks-rust-sslocal \ +PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Rust_Client:shadowsocks-rust-sslocal \
+PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Rust_Server:shadowsocks-rust-ssserver \ +PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Rust_Server:shadowsocks-rust-ssserver \
+PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR_Libev_Client:shadowsocksr-libev-ssr-local \ +PACKAGE_$(PKG_NAME)_INCLUDE_passwall2_Libev_Client:passwall2-libev-ssr-local \
+PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR_Libev_Client:shadowsocksr-libev-ssr-redir \ +PACKAGE_$(PKG_NAME)_INCLUDE_passwall2_Libev_Client:passwall2-libev-ssr-redir \
+PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR_Libev_Server:shadowsocksr-libev-ssr-server \ +PACKAGE_$(PKG_NAME)_INCLUDE_passwall2_Libev_Server:passwall2-libev-ssr-server \
+PACKAGE_$(PKG_NAME)_INCLUDE_Simple_Obfs:simple-obfs-client \ +PACKAGE_$(PKG_NAME)_INCLUDE_Simple_Obfs:simple-obfs-client \
+PACKAGE_$(PKG_NAME)_INCLUDE_SingBox:sing-box \ +PACKAGE_$(PKG_NAME)_INCLUDE_SingBox:sing-box \
+PACKAGE_$(PKG_NAME)_INCLUDE_tuic_client:tuic-client \ +PACKAGE_$(PKG_NAME)_INCLUDE_tuic_client:tuic-client \
@@ -1,4 +1,9 @@
<style> <style>
.pure-1-2 {
width: 50%;
display: inline-block;
letter-spacing: normal;
}
.pure-img { .pure-img {
max-height: 100%; max-height: 100%;
width: auto; width: auto;
@@ -20,7 +25,7 @@
} }
.status-bar .inner { .status-bar .inner {
margin: 0.5em; padding: 0.5em;
} }
.status-bar .inner .flag { .status-bar .inner .flag {
@@ -39,17 +44,10 @@
text-align: right; text-align: right;
} }
.pure-u-1-2 { #cbi-passwall+.cbi-page-actions.control-group.fixed {
width: 50%; bottom: 3.3rem;
display: inline-block;
} }
@media screen and (max-width: 720px) {
.pure-u-1-2 {
width: 100%;
}
}
@media screen and (max-width: 700px) { @media screen and (max-width: 700px) {
.status-bar .icon-con { .status-bar .icon-con {
height: 2.5em; height: 2.5em;
@@ -59,11 +57,11 @@
<div class="status-bar"> <div class="status-bar">
<div class="inner"> <div class="inner">
<div class="pure-g"> <div class="pure-g">
<div class="pure-u-1-2"> <div class="pure-1-2">
<span class="flag"><img src="/luci-static/passwall2/flags/loading.svg" class="pure-img"></span> <span <span class="flag"><img src="/luci-static/passwall2/flags/loading.svg" class="pure-img"></span> <span
class="status-info">获取中...</span> class="status-info">获取中...</span>
</div> </div>
<div class="pure-u-1-2"> <div class="pure-1-2">
<div class="icon-con"> <div class="icon-con">
<img src="/luci-static/passwall2/img/site_icon1_01.png" class="pure-img i1"> <img src="/luci-static/passwall2/img/site_icon1_01.png" class="pure-img i1">
<img src="/luci-static/passwall2/img/site_icon1_02.png" class="pure-img i2"> <img src="/luci-static/passwall2/img/site_icon1_02.png" class="pure-img i2">
@@ -79,13 +77,9 @@
const _ASSETS = '/luci-static/passwall2/'; const _ASSETS = '/luci-static/passwall2/';
const CHECK_IP_URL = '<%=url([[admin]], [[services]], [[passwall2]], [[ip]])%>'; const CHECK_IP_URL = '<%=url([[admin]], [[services]], [[passwall2]], [[ip]])%>';
let mainContent = document.getElementById("maincontent");
let statusBar = document.querySelector(".status-bar"); let statusBar = document.querySelector(".status-bar");
function resize() { function resize() {
wW = window.innerWidth;
let lw = document.querySelector(".main-left, :root[data-layout='sidebar'] .fs-sidebar")?.offsetWidth ?? 5;
statusBar.style.width = (wW - lw) + 'px';
let flagElement = statusBar.querySelector(".flag"); let flagElement = statusBar.querySelector(".flag");
flagElement.style.width = (flagElement.offsetHeight / 3 * 4) + 'px'; flagElement.style.width = (flagElement.offsetHeight / 3 * 4) + 'px';
@@ -119,7 +113,7 @@ XHR.poll(5, CHECK_IP_URL, null,
); );
document.addEventListener('DOMContentLoaded', function() { document.addEventListener('DOMContentLoaded', function() {
setTimeout("resize()",100) setTimeout("resize()",200)
fetch(CHECK_IP_URL) fetch(CHECK_IP_URL)
.then(response => response.json()) .then(response => response.json())
.then(data => { .then(data => {
@@ -129,7 +123,4 @@ document.addEventListener('DOMContentLoaded', function() {
}); });
window.addEventListener('resize', resize); window.addEventListener('resize', resize);
if (mainContent && window.getComputedStyle(mainContent).getPropertyValue("contain")=== "paint") {
document.body.appendChild(statusBar);
}
</script> </script>
+1 -1
View File
@@ -4,7 +4,7 @@ LUCI_TITLE:=luci-app-ssr-plus
LUCI_PKGARCH:=all LUCI_PKGARCH:=all
PKG_NAME:=luci-app-ssr-plus PKG_NAME:=luci-app-ssr-plus
PKG_VERSION:=196 PKG_VERSION:=196
PKG_RELEASE:=79 PKG_RELEASE:=80
PKG_CONFIG_DEPENDS:= \ PKG_CONFIG_DEPENDS:= \
CONFIG_PACKAGE_$(PKG_NAME)_Iptables_Transparent_Proxy \ CONFIG_PACKAGE_$(PKG_NAME)_Iptables_Transparent_Proxy \
@@ -1,4 +1,9 @@
<style> <style>
.pure-1-2 {
width: 50%;
display: inline-block;
letter-spacing: normal;
}
.pure-img { .pure-img {
max-height: 100%; max-height: 100%;
width: auto; width: auto;
@@ -20,7 +25,7 @@
} }
.status-bar .inner { .status-bar .inner {
margin: 0.5em; padding: 0.5em;
} }
.status-bar .inner .flag { .status-bar .inner .flag {
@@ -39,17 +44,10 @@
text-align: right; text-align: right;
} }
.pure-u-1-2 { #cbi-passwall+.cbi-page-actions.control-group.fixed {
width: 49%; bottom: 3.3rem;
display: inline-block;
} }
@media screen and (max-width: 720px) {
.pure-u-1-2 {
width: 100%;
}
}
@media screen and (max-width: 700px) { @media screen and (max-width: 700px) {
.status-bar .icon-con { .status-bar .icon-con {
height: 2.5em; height: 2.5em;
@@ -59,11 +57,11 @@
<div class="status-bar"> <div class="status-bar">
<div class="inner"> <div class="inner">
<div class="pure-g"> <div class="pure-g">
<div class="pure-u-1-2"> <div class="pure-1-2">
<span class="flag"><img src="/luci-static/shadowsocksr/flags/loading.svg" class="pure-img"></span> <span <span class="flag"><img src="/luci-static/shadowsocksr/flags/loading.svg" class="pure-img"></span> <span
class="status-info">获取中...</span> class="status-info">获取中...</span>
</div> </div>
<div class="pure-u-1-2"> <div class="pure-1-2">
<div class="icon-con"> <div class="icon-con">
<img src="/luci-static/shadowsocksr/img/site_icon1_01.png" class="pure-img i1"> <img src="/luci-static/shadowsocksr/img/site_icon1_01.png" class="pure-img i1">
<img src="/luci-static/shadowsocksr/img/site_icon1_02.png" class="pure-img i2"> <img src="/luci-static/shadowsocksr/img/site_icon1_02.png" class="pure-img i2">
@@ -79,13 +77,9 @@
const _ASSETS = '/luci-static/shadowsocksr/'; const _ASSETS = '/luci-static/shadowsocksr/';
const CHECK_IP_URL = '<%=url([[admin]], [[services]], [[shadowsocksr]], [[ip]])%>'; const CHECK_IP_URL = '<%=url([[admin]], [[services]], [[shadowsocksr]], [[ip]])%>';
let mainContent = document.getElementById("maincontent");
let statusBar = document.querySelector(".status-bar"); let statusBar = document.querySelector(".status-bar");
function resize() { function resize() {
wW = window.innerWidth;
let lw = document.querySelector(".main-left, :root[data-layout='sidebar'] .fs-sidebar")?.offsetWidth ?? 5;
statusBar.style.width = (wW - lw) + 'px';
let flagElement = statusBar.querySelector(".flag"); let flagElement = statusBar.querySelector(".flag");
flagElement.style.width = (flagElement.offsetHeight / 3 * 4) + 'px'; flagElement.style.width = (flagElement.offsetHeight / 3 * 4) + 'px';
@@ -119,7 +113,7 @@ XHR.poll(5, CHECK_IP_URL, null,
); );
document.addEventListener('DOMContentLoaded', function() { document.addEventListener('DOMContentLoaded', function() {
setTimeout("resize()",100) setTimeout("resize()",200)
fetch(CHECK_IP_URL) fetch(CHECK_IP_URL)
.then(response => response.json()) .then(response => response.json())
.then(data => { .then(data => {
@@ -129,7 +123,4 @@ document.addEventListener('DOMContentLoaded', function() {
}); });
window.addEventListener('resize', resize); window.addEventListener('resize', resize);
if (mainContent && window.getComputedStyle(mainContent).getPropertyValue("contain")=== "paint") {
document.body.appendChild(statusBar);
}
</script> </script>
+3 -3
View File
@@ -17,12 +17,12 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-wwand PKG_NAME:=luci-app-wwand
PKG_VERSION:=1.6.9_p4 PKG_VERSION:=1.7.0_pre1
PKG_RELEASE:=39 PKG_RELEASE:=40
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/ddimension/luci-app-wwand.git PKG_SOURCE_URL:=https://github.com/ddimension/luci-app-wwand.git
PKG_SOURCE_VERSION:=8faf3aaeca4858297f0b7905b4446cfe4d71a1c3 PKG_SOURCE_VERSION:=5bb6f24ec3dc2c57613ba91b6bdb9c7e3419655f
PKG_MIRROR_HASH:=skip PKG_MIRROR_HASH:=skip
PKG_LICENSE:=GPL-2.0-only PKG_LICENSE:=GPL-2.0-only
+1 -1
View File
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
LUCI_TITLE:=Noobwrt Theme LUCI_TITLE:=Noobwrt Theme
LUCI_DEPENDS:=+wget +jsonfilter LUCI_DEPENDS:=+wget +jsonfilter
PKG_VERSION:=1.1.7 PKG_VERSION:=1.1.7
PKG_RELEASE:=2 PKG_RELEASE:=3
CONFIG_LUCI_CSSTIDY:=1 CONFIG_LUCI_CSSTIDY:=1
@@ -17,7 +17,7 @@ touch /etc/config/noobwrt
uci get noobwrt.global >/dev/null 2>&1 || uci set noobwrt.global=global uci get noobwrt.global >/dev/null 2>&1 || uci set noobwrt.global=global
# Set each global option only if not already present # Set each global option only if not already present
uci get noobwrt.global.mode >/dev/null 2>&1 || uci set noobwrt.global.mode=normal uci get noobwrt.global.mode >/dev/null 2>&1 || uci set noobwrt.global.mode=dark
uci get noobwrt.global.primary >/dev/null 2>&1 || uci set noobwrt.global.primary='#7689f4' uci get noobwrt.global.primary >/dev/null 2>&1 || uci set noobwrt.global.primary='#7689f4'
uci get noobwrt.global.dark_primary >/dev/null 2>&1 || uci set noobwrt.global.dark_primary='#7c8ff5' uci get noobwrt.global.dark_primary >/dev/null 2>&1 || uci set noobwrt.global.dark_primary='#7c8ff5'
uci get noobwrt.global.blur >/dev/null 2>&1 || uci set noobwrt.global.blur=10 uci get noobwrt.global.blur >/dev/null 2>&1 || uci set noobwrt.global.blur=10
@@ -42,16 +42,16 @@ seed_toolbar() {
} }
seed_toolbar toolbar_home 'Home' '/cgi-bin/luci/admin/status/overview' home.png 1 1 seed_toolbar toolbar_home 'Home' '/cgi-bin/luci/admin/status/overview' home.png 1 1
seed_toolbar toolbar_status 'Status' '/cgi-bin/luci/admin/modem/modemdata' signal.png 1 2 seed_toolbar toolbar_vpn 'Passwall' '/cgi-bin/luci/admin/services/passwall' vpn.png 1 2
seed_toolbar toolbar_status 'Status' '/cgi-bin/luci/admin/modem/modemdata' signal.png 0 2
seed_toolbar toolbar_modem 'Modem' '/cgi-bin/luci/admin/modem/qmodem' cell.png 0 3 seed_toolbar toolbar_modem 'Modem' '/cgi-bin/luci/admin/modem/qmodem' cell.png 0 3
seed_toolbar toolbar_sms 'SMS' '/cgi-bin/luci/admin/modem/luci-app-sms-tool-js' sms.png 1 4 seed_toolbar toolbar_sms 'SMS' '/cgi-bin/luci/admin/modem/luci-app-sms-tool-js' sms.png 0 4
seed_toolbar toolbar_data 'Data Usage' '/cgi-bin/luci/admin/tools/netstat' network.png 1 5 seed_toolbar toolbar_data 'Data Usage' '/cgi-bin/luci/admin/status/netstat' network.png 0 5
seed_toolbar toolbar_nas 'NAS' '/cgi-bin/luci/admin/services/samba4' nas.png 0 6 seed_toolbar toolbar_nas 'NAS' '/cgi-bin/luci/admin/services/samba4' nas.png 0 6
seed_toolbar toolbar_wireless 'Wireless' '/cgi-bin/luci/admin/network/wireless' wifi.png 1 7 seed_toolbar toolbar_wireless 'Wireless' '/cgi-bin/luci/admin/network/wireless' wifi.png 1 7
seed_toolbar toolbar_firewall 'Firewall' '/cgi-bin/luci/admin/network/firewall' firewall.png 0 8 seed_toolbar toolbar_firewall 'Firewall' '/cgi-bin/luci/admin/network/firewall' firewall.png 0 8
seed_toolbar toolbar_log 'System Log' '/cgi-bin/luci/admin/status/logs' info.png 0 9 seed_toolbar toolbar_log 'System Log' '/cgi-bin/luci/admin/status/logs' info.png 1 9
seed_toolbar toolbar_terminal 'Terminal' '/cgi-bin/luci/admin/system/ttyd' terminal.png 1 10 seed_toolbar toolbar_terminal 'Terminal' '/cgi-bin/luci/admin/system/ttyd' terminal.png 1 10
seed_toolbar toolbar_vpn 'VPN' '/cgi-bin/luci/admin/services/passwall' vpn.png 0 11
seed_toolbar toolbar_files 'Files' '/cgi-bin/luci/admin/nas/tinyfilemanager' files.png 1 12 seed_toolbar toolbar_files 'Files' '/cgi-bin/luci/admin/nas/tinyfilemanager' files.png 1 12
seed_toolbar toolbar_system 'Settings' '/cgi-bin/luci/admin/system/noobwrt' settings.png 1 13 seed_toolbar toolbar_system 'Settings' '/cgi-bin/luci/admin/system/noobwrt' settings.png 1 13
@@ -5,6 +5,17 @@
"action": { "action": {
"type": "view", "type": "view",
"path": "noobwrt/settings" "path": "noobwrt/settings"
} },
"depends": {
"acl": [ "luci-theme-noobwrt" ],
"uci": {
"noobwrt": true,
"luci": {
"main": {
"mediaurlbase": "/luci-static/noobwrt"
}
}
}
}
} }
} }
+1 -1
View File
@@ -11,7 +11,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=luci-theme-vantage PKG_NAME:=luci-theme-vantage
PKG_VERSION:=1.0.1 PKG_VERSION:=1.0.1
PKG_RELEASE:=3 PKG_RELEASE:=4
PKG_LICENSE:=GPL-3.0-or-later PKG_LICENSE:=GPL-3.0-or-later
LUCI_TITLE:=Vantage theme LUCI_TITLE:=Vantage theme
@@ -1 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="32" height="32"><rect x="1" y="1" width="30" height="30" rx="7" fill="#16181b" stroke="#3a3e44"/><path d="M9 10.5 16 22" fill="none" stroke="#e7e9ec" stroke-width="2.6" stroke-linecap="round"/><path d="M16 22 23 10.5" fill="none" stroke="#c8f031" stroke-width="2.6" stroke-linecap="round"/><circle cx="23" cy="10.5" r="1.9" fill="#c8f031"/></svg> <?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 101 101" width="101" height="101">
<path d="M16.02 0.06C39.01 0.06 62 0.06 84.99 0.06C85.12 0.33 93.54 4.2 95.48 6.35C97.23 8.28 99.05 10.83 99.82 13.35C100.12 14.35 99.9 15.79 100.94 16.26C100.94 39.17 100.94 62.08 100.94 84.99C100.64 85.13 96.94 93.15 95.52 94.69C93.57 96.79 85.12 100.68 84.99 100.94C62 100.94 39.01 100.94 16.02 100.94C15.94 100.75 7.82 96.85 6.34 95.49C4.23 93.57 0.28 85.1 0.06 84.99C0.06 62 0.06 39.01 0.06 16.02C0.21 15.95 4.35 7.6 5.88 6.05C7.47 4.45 15.95 0.2 16.02 0.06ZM32.29 43.29C30.94 38.53 35.53 22.18 25.24 25.11C22.68 25.84 21.92 28.53 21.9 30.83C21.86 36.76 21.36 43.02 21.98 48.91C21.98 50.97 21.98 53.03 21.98 55.09C21.36 60.98 21.86 67.24 21.9 73.17C21.92 75.47 22.68 78.16 25.24 78.89C35.53 81.82 30.94 65.47 32.29 60.71C36.2 61.33 40.13 64.12 43.69 65.81C49.94 68.78 59.97 72.23 65.3 76.19C66.97 77.43 67.36 79.66 69.42 80.75C73.05 82.67 77.84 81.18 79.75 77.58C81.67 73.95 80.18 69.16 76.58 67.25C74.16 65.97 71.69 67.47 69.58 66.59C62.91 63.81 56.57 60.17 50.01 57.17C48.04 56.27 40.19 53.27 40.12 51.5C49.39 46.28 59.74 41.51 69.58 37.41C71.69 36.53 74.16 38.03 76.58 36.75C80.18 34.84 81.67 30.05 79.75 26.42C77.84 22.82 73.05 21.33 69.42 23.25C67.36 24.34 66.97 26.57 65.3 27.81C59.97 31.77 49.94 35.22 43.69 38.19C40.13 39.88 36.2 42.67 32.29 43.29Z" fill="#16181b" fill-rule="evenodd" stroke="#16181b" stroke-width="0.25" stroke-linejoin="round"/>
<path d="M32.29 60.71C28.86 58.84 25.42 56.97 21.98 55.09C21.98 53.03 21.98 50.97 21.98 48.91C25.42 47.03 28.86 45.16 32.29 43.29C36.2 42.67 40.13 39.88 43.69 38.19C49.94 35.22 59.97 31.77 65.3 27.81C66.97 26.57 67.36 24.34 69.42 23.25C73.05 21.33 77.84 22.82 79.75 26.42C81.67 30.05 80.18 34.84 76.58 36.75C74.16 38.03 71.69 36.53 69.58 37.41C59.74 41.51 49.39 46.28 40.12 51.5C40.19 53.27 48.04 56.27 50.01 57.17C56.57 60.17 62.91 63.81 69.58 66.59C71.69 67.47 74.16 65.97 76.58 67.25C80.18 69.16 81.67 73.95 79.75 77.58C77.84 81.18 73.05 82.67 69.42 80.75C67.36 79.66 66.97 77.43 65.3 76.19C59.97 72.23 49.94 68.78 43.69 65.81C40.13 64.12 36.2 61.33 32.29 60.71Z" fill="#c6ed31" fill-rule="evenodd" stroke="#c6ed31" stroke-width="0.25" stroke-linejoin="round"/>
<path d="M32.29 43.29C28.86 45.16 25.42 47.03 21.98 48.91C21.36 43.02 21.86 36.76 21.9 30.83C21.92 28.53 22.68 25.84 25.24 25.11C35.53 22.18 30.94 38.53 32.29 43.29ZM21.98 55.09C25.42 56.97 28.86 58.84 32.29 60.71C30.94 65.47 35.53 81.82 25.24 78.89C22.68 78.16 21.92 75.47 21.9 73.17C21.86 67.24 21.36 60.98 21.98 55.09Z" fill="#f2f3f5" fill-rule="evenodd" stroke="#f2f3f5" stroke-width="0.25" stroke-linejoin="round"/>
</svg>

Before

Width:  |  Height:  |  Size: 414 B

After

Width:  |  Height:  |  Size: 2.6 KiB

+10 -4
View File
@@ -50,12 +50,12 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=wwand PKG_NAME:=wwand
PKG_VERSION:=1.7.0_pre7 PKG_VERSION:=1.7.0_pre9
PKG_RELEASE:=70 PKG_RELEASE:=71
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/ddimension/wwand.git PKG_SOURCE_URL:=https://github.com/ddimension/wwand.git
PKG_SOURCE_VERSION:=4c6448277d5f587cd23d500f4b91c73d622ab5e8 PKG_SOURCE_VERSION:=20a0dc501a67ef548b2d33dca4ab82fbfb46df9d
PKG_MIRROR_HASH:=skip PKG_MIRROR_HASH:=skip
PKG_LICENSE:=GPL-2.0-only PKG_LICENSE:=GPL-2.0-only
@@ -104,7 +104,7 @@ WWAND_BASE_UC:=apndb.uc atcmd.uc atcmd_parse.uc atport.uc backend.uc board.uc \
simops.uc siminventory.uc sms.uc sms_pdu.uc telemetry_mbim.uc telemetry_ncm.uc \ simops.uc siminventory.uc sms.uc sms_pdu.uc telemetry_mbim.uc telemetry_ncm.uc \
telemetry_qmi.uc transport.uc ubus.uc version.uc wwandctl_fmt.uc telemetry_qmi.uc transport.uc ubus.uc version.uc wwandctl_fmt.uc
WWAND_BASE_CODEC:=arfcn_bands.uc hex.uc qmux.uc tlv.uc WWAND_BASE_CODEC:=arfcn_bands.uc hex.uc qmux.uc tlv.uc
WWAND_BASE_SCHEMA:=cat.uc ctl.uc dms.uc dsd.uc loc.uc loc_lazy.uc merge.uc nas.uc pdc.uc rat.uc \ WWAND_BASE_SCHEMA:=cat.uc ctl.uc dms.uc dsd.uc merge.uc nas.uc pdc.uc rat.uc \
tmd.uc uim.uc wda.uc wds.uc wms.uc wms_lazy.uc tmd.uc uim.uc wda.uc wds.uc wms.uc wms_lazy.uc
# DEVELOPERS: set CONFIG_WWAND_UCODE_SOURCE to ship readable .uc source # DEVELOPERS: set CONFIG_WWAND_UCODE_SOURCE to ship readable .uc source
@@ -554,6 +554,10 @@ define Package/wwand-gps/description
GSV/GLL/VTG/ZDA from ANY talker, reported through `modem_gps` as numbers, with GSV/GLL/VTG/ZDA from ANY talker, reported through `modem_gps` as numbers, with
the satellites in view and their SNR, the fix type and the DOP values. the satellites in view and their SNR, the fix type and the DOP values.
A modem WITHOUT an NMEA port gets the same NMEA over QMI LOC instead — on a
QMI modem natively, on an MBIM modem over the QMI passthrough. The port wins
where there is one. The LOC session is stopped before its client is released.
ONE READER PER MODEM, so a two-modem router has two positions. `option ONE READER PER MODEM, so a two-modem router has two positions. `option
gnss_set_time` hands the receiver's clock to wwand's own set_clock, which only gnss_set_time` hands the receiver's clock to wwand's own set_clock, which only
ever steps a clock that is plainly unset and so never fights sysntpd. ever steps a clock that is plainly unset and so never fights sysntpd.
@@ -568,6 +572,8 @@ define Package/wwand-gps/install
$(INSTALL_DIR) $(1)$(UCDIR) $(INSTALL_DIR) $(1)$(UCDIR)
$(INSTALL_DATA) $(WWAND_UCODE)/gps.uc $(1)$(UCDIR)/ $(INSTALL_DATA) $(WWAND_UCODE)/gps.uc $(1)$(UCDIR)/
$(INSTALL_DATA) $(WWAND_UCODE)/nmea.uc $(1)$(UCDIR)/ $(INSTALL_DATA) $(WWAND_UCODE)/nmea.uc $(1)$(UCDIR)/
$(INSTALL_DIR) $(1)$(UCDIR)/codec/schema
$(INSTALL_DATA) $(WWAND_UCODE)/codec/schema/loc.uc $(1)$(UCDIR)/codec/schema/
endef endef
# --------------------------------------------------------------------------- # ---------------------------------------------------------------------------