diff --git a/filebrowser/Makefile b/filebrowser/Makefile index 798f287d2..58cd019f4 100644 --- a/filebrowser/Makefile +++ b/filebrowser/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=filebrowser PKG_VERSION:=2.63.23 -PKG_RELEASE:=21 +PKG_RELEASE:=22 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/filebrowser/filebrowser/tar.gz/v$(PKG_VERSION)? @@ -48,17 +48,20 @@ define Package/filebrowser/conffiles /etc/config/filebrowser endef -define Build/Compile +define Build/Prepare + $(call Build/Prepare/Default) ( \ export PNPM_HOME="$(PKG_BUILD_DIR)/frontend" ; \ pushd "$(PKG_BUILD_DIR)/frontend" ; \ pnpm install --frozen-lockfile ; \ pnpm run build ; \ - popd ; \ - $(call GoPackage/Build/Compile) ; \ ) endef +define Build/Compile + $(call GoPackage/Build/Compile) +endef + define Package/filebrowser/install $(call GoPackage/Package/Install/Bin,$(1)) diff --git a/luci-app-passwall2/Makefile b/luci-app-passwall2/Makefile index 3902fa8b0..e7e71d0e7 100644 --- a/luci-app-passwall2/Makefile +++ b/luci-app-passwall2/Makefile @@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-passwall2 PKG_VERSION:=26.9.2 -PKG_RELEASE:=111 +PKG_RELEASE:=112 PKG_PO_VERSION:=$(PKG_VERSION) PKG_CONFIG_DEPENDS:= \ diff --git a/luci-app-passwall2/luasrc/model/cbi/passwall2/client/acl_config.lua b/luci-app-passwall2/luasrc/model/cbi/passwall2/client/acl_config.lua index 57c790783..f4ce5fb64 100644 --- a/luci-app-passwall2/luasrc/model/cbi/passwall2/client/acl_config.lua +++ b/luci-app-passwall2/luasrc/model/cbi/passwall2/client/acl_config.lua @@ -272,9 +272,17 @@ o = s:option(ListValue, "remote_dns_protocol", translate("Remote DNS Protocol")) o:value("tcp", "TCP") o:value("doh", "DoH") o:value("udp", "UDP") -o:value("tls", "TLS(DoT)", { _is_singbox = "1" }) -o:value("quic", "QUIC(DoQ)", { _is_singbox = "1" }) -o:value("http3", "HTTP3(DoH3)", { _is_singbox = "1" }) +if m.is_js_luci then + if current_node.type == "sing-box" then + o:value("tls", "TLS(DoT)") + o:value("quic", "QUIC(DoQ)") + o:value("http3", "HTTP3(DoH3)") + end +else + o:value("tls", "TLS(DoT)", { _is_singbox = "1" }) + o:value("quic", "QUIC(DoQ)", { _is_singbox = "1" }) + o:value("http3", "HTTP3(DoH3)", { _is_singbox = "1" }) +end o:depends("_show_dns_option", "1") ---- DNS over TCP or UDP or TLS (DoT) or QUIC (DoQ) @@ -382,9 +390,8 @@ for k, v in pairs(nodes_table) do end end ---m:appendTemplate("/acl/options", {section = arg[1]}) - --- Shunt Start +--[[ +-- Shunt if current_node.protocol == "_shunt" then local shunt_lua = loadfile("/usr/lib/lua/luci/model/cbi/passwall2/client/include/shunt_options.lua") setfenv(shunt_lua, getfenv(1))(m, s, { @@ -396,5 +403,6 @@ if current_node.protocol == "_shunt" then end m:appendTemplate("/acl/shunt", { shunt_list = api.jsonc.stringify(shunt_list), section = s.section }) +]]-- return api.return_map(m) diff --git a/luci-app-passwall2/luasrc/model/cbi/passwall2/client/global.lua b/luci-app-passwall2/luasrc/model/cbi/passwall2/client/global.lua index e041a8d32..6be7ec7d0 100644 --- a/luci-app-passwall2/luasrc/model/cbi/passwall2/client/global.lua +++ b/luci-app-passwall2/luasrc/model/cbi/passwall2/client/global.lua @@ -201,9 +201,17 @@ o = s:taboption("DNS", ListValue, "remote_dns_protocol", translate("Remote DNS P o:value("tcp", "TCP") o:value("doh", "DoH") o:value("udp", "UDP") -o:value("tls", "TLS(DoT)", { _is_singbox = "1" }) -o:value("quic", "QUIC(DoQ)", { _is_singbox = "1" }) -o:value("http3", "HTTP3(DoH3)", { _is_singbox = "1" }) +if m.is_js_luci then + if current_node.type == "sing-box" then + o:value("tls", "TLS(DoT)") + o:value("quic", "QUIC(DoQ)") + o:value("http3", "HTTP3(DoH3)") + end +else + o:value("tls", "TLS(DoT)", { _is_singbox = "1" }) + o:value("quic", "QUIC(DoQ)", { _is_singbox = "1" }) + o:value("http3", "HTTP3(DoH3)", { _is_singbox = "1" }) +end ---- DNS over TCP or UDP or TLS (DoT) or QUIC (DoQ) o = s:taboption("DNS", Value, "remote_dns", translate("Remote DNS")) @@ -259,11 +267,10 @@ o:value("UseIP") o:value("UseIPv4") o:value("UseIPv6") -if current_node.type == "sing-box" then - o = s:taboption("DNS", Value, "remote_rewrite_ttl", translate("Remote DNS") .. " TTL") - o.datatype = "min(1)" - o.default = "30" -end +o = s:taboption("DNS", Value, "remote_rewrite_ttl", translate("Remote DNS") .. " TTL") +o.datatype = "min(1)" +o.default = "30" +o:depends("_is_singbox", "1") o = s:taboption("DNS", TextValue, "dns_hosts", translate("Domain Override")) o.rows = 5 diff --git a/luci-app-passwall2/luasrc/view/passwall2/acl/options.htm b/luci-app-passwall2/luasrc/view/passwall2/acl/options.htm deleted file mode 100644 index e8610a40e..000000000 --- a/luci-app-passwall2/luasrc/view/passwall2/acl/options.htm +++ /dev/null @@ -1,56 +0,0 @@ -<% -local map = self.map -local api = map.api -local config = map.config -local section = self.section --%> - \ No newline at end of file diff --git a/luci-app-passwall2/luasrc/view/passwall2/node_list/node_list.htm b/luci-app-passwall2/luasrc/view/passwall2/node_list/node_list.htm index 0dc59b239..32652d937 100644 --- a/luci-app-passwall2/luasrc/view/passwall2/node_list/node_list.htm +++ b/luci-app-passwall2/luasrc/view/passwall2/node_list/node_list.htm @@ -1507,15 +1507,17 @@ table td, .table .td { //Node list option saving logic document.addEventListener("DOMContentLoaded", function () { - function onChange(option, value) { + function onChange(option, value, refresh) { ajax.abortAll(); XHR.get('<%=api.url("save_node_list_opt")%>', { option: option, value: value }, function(x) { if (x && x.status == 200) { - document.getElementById("node_list").innerHTML = ""; - loadNodeList(); + if (refresh) { + document.getElementById("node_list").innerHTML = ""; + loadNodeList(); + } } else { alert("<%:Error%>"); } @@ -1527,7 +1529,7 @@ table td, .table .td { el.addEventListener("change", () => { el.blur(); show_node_info = el.checked ? "1" : "0"; - onChange("show_node_info", show_node_info); + onChange("show_node_info", show_node_info, true); }); }); @@ -1535,32 +1537,47 @@ table td, .table .td { el.addEventListener("change", () => { el.blur(); auto_detection_time = el.value; - onChange("auto_detection_time", auto_detection_time); + onChange("auto_detection_time", auto_detection_time, true); }); }); - waitForElement('select[id*="<%=appname%>"][id*="url_test_url"]', function(el) { - el.addEventListener("change", () => { - if (el.value) { - onChange("url_test_url", el.value); - } + <% if api.is_js_luci() then -%> + waitForElement('div[id*="cbid.<%=appname%>"][id*="url_test_url"]', function(el) { + el.addEventListener("cbi-dropdown-change", () => { + if (el.value && (!el.new_val || el.new_val != el.value)) { + onChange("url_test_url", el.value, false); + el.new_val = el.value; + } + }); + }); + <% else -%> + waitForElement('select[id*="<%=appname%>"][id*="url_test_url"]', function(el) { + el.addEventListener("change", () => { + if (el.value && (!el.new_val || el.new_val != el.value)) { + onChange("url_test_url", el.value, false); + el.new_val = el.value; + } + }); }); - }); - waitForElement('input[id*="<%=appname%>"][id*="url_test_url"]', function(el) { - el.addEventListener("change", () => { - if (el.value) { - onChange("url_test_url", el.value); - } + waitForElement('input[id*="<%=appname%>"][id*="url_test_url"]', function(el) { + el.addEventListener("change", () => { + if (el.value && (!el.new_val || el.new_val != el.value)) { + onChange("url_test_url", el.value, false); + el.new_val = el.value; + } + }); }); - }); + <% end -%> } - const ori_cbi_d_update = cbi_d_update; - cbi_d_update = function() { - ori_cbi_d_update(); - dom_event(); - }; + <% if not api.is_js_luci() then -%> + const ori_cbi_d_update = cbi_d_update; + cbi_d_update = function() { + ori_cbi_d_update(); + dom_event(); + }; + <% end -%> dom_event(); const links = document.querySelectorAll('a'); diff --git a/luci-app-wwand/Makefile b/luci-app-wwand/Makefile index 1384259d1..91912a430 100644 --- a/luci-app-wwand/Makefile +++ b/luci-app-wwand/Makefile @@ -15,12 +15,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-wwand -PKG_RELEASE:=9 +PKG_RELEASE:=10 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/ddimension/luci-app-wwand.git -PKG_SOURCE_VERSION:=88a711251296810ea3428d32a3da9c5b635cea0c -PKG_SOURCE_DATE:=2026-08-31 +PKG_SOURCE_VERSION:=bd773d76198d2a92063b349ed4f1e1f75475857c +PKG_SOURCE_DATE:=2026-09-05 PKG_MIRROR_HASH:=skip PKG_LICENSE:=GPL-2.0-only diff --git a/wwand/Makefile b/wwand/Makefile index fc78c10c8..a3ca62d5b 100644 --- a/wwand/Makefile +++ b/wwand/Makefile @@ -43,12 +43,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=wwand -PKG_RELEASE:=21 +PKG_RELEASE:=22 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/ddimension/wwand.git -PKG_SOURCE_VERSION:=6ed882e3b53544c9e42f2cc681780d99205141eb -PKG_SOURCE_DATE:=2026-09-03 +PKG_SOURCE_VERSION:=1aff5270ef08b380e9c07ad5c62b79704212b779 +PKG_SOURCE_DATE:=2026-09-05 PKG_MIRROR_HASH:=skip PKG_LICENSE:=GPL-2.0-only