diff --git a/applications/luci-app-adblock-fast/Makefile b/applications/luci-app-adblock-fast/Makefile index ac92c61adc..4707415dc9 100644 --- a/applications/luci-app-adblock-fast/Makefile +++ b/applications/luci-app-adblock-fast/Makefile @@ -7,7 +7,7 @@ PKG_NAME:=luci-app-adblock-fast PKG_LICENSE:=AGPL-3.0-or-later PKG_MAINTAINER:=Stan Grishin PKG_VERSION:=1.2.2 -PKG_RELEASE:=12 +PKG_RELEASE:=14 LUCI_TITLE:=AdBlock-Fast Web UI LUCI_URL:=https://github.com/mossdef-org/luci-app-adblock-fast/ diff --git a/applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js b/applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js index 092ae7cc58..72cc294f78 100644 --- a/applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js +++ b/applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js @@ -234,6 +234,26 @@ var _setRpcdToken = rpc.declare({ expect: { result: false }, }); +var getQueryLogStatus = rpc.declare({ + object: "luci." + pkg.Name, + method: "getQueryLogStatus", + params: ["name"], +}); + +var setQueryLog = rpc.declare({ + object: "luci." + pkg.Name, + method: "setQueryLog", + params: ["name", "action"], + expect: { result: false }, +}); + +var callLogRead = rpc.declare({ + object: "log", + method: "read", + params: ["lines", "stream", "oneshot"], + expect: { log: [] }, +}); + var RPC = { listeners: [], on: function (event, callback) { @@ -814,4 +834,7 @@ return L.Class.extend({ setCronEntry: setCronEntry, getPlatformSupport: getPlatformSupport, getServiceInfo: getServiceInfo, + getQueryLogStatus: getQueryLogStatus, + setQueryLog: setQueryLog, + callLogRead: callLogRead, }); diff --git a/applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js b/applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js index 99d7425bea..af341e2ea0 100644 --- a/applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js +++ b/applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js @@ -157,6 +157,7 @@ return view.extend({ L.resolveDefault(L.uci.load(pkg.Name), {}), L.resolveDefault(L.uci.load("dhcp"), {}), L.resolveDefault(L.uci.load("smartdns"), {}), + L.resolveDefault(adb.getQueryLogStatus(pkg.Name), {}), ]); }, @@ -187,6 +188,9 @@ return view.extend({ // Parse cron entry into virtual config values var cronConfig = this.parseCronEntry(reply.cronEntry); + var queryLogData = + (data[5] && data[5][pkg.Name]) || {}; + var status, m, s1, s2, s3, o; status = new adb.status(); @@ -209,8 +213,9 @@ return view.extend({ s1 = m.section(form.NamedSection, "config", pkg.Name); s1.tab("tab_basic", _("Basic Configuration")); - s1.tab("tab_schedule", _("List Updates Schedule")); s1.tab("tab_advanced", _("Advanced Configuration")); + s1.tab("tab_schedule", _("List Updates Schedule")); + s1.tab("tab_log", _("DNS Query Log")); var text = _( "DNS resolution option, see the %sREADME%s for details.", @@ -824,6 +829,108 @@ return view.extend({ return L.uci.set(pkg.Name, section_id, "rpcd_token", formvalue); }; + o = s1.taboption("tab_log", form.DummyValue, "_log_viewer"); + o.rawhtml = true; + o.cfgvalue = function () { + return ""; + }; + o.renderWidget = function () { + var resolver = queryLogData.resolver || "dnsmasq"; + var isLogging = queryLogData.logging_enabled || false; + + var logTag; + switch (resolver) { + case "smartdns": + logTag = "smartdns"; + break; + case "unbound": + logTag = "unbound"; + break; + default: + logTag = "dnsmasq"; + break; + } + + var statusLabel = E( + "span", + { + id: "query-log-status", + style: "font-weight: bold; color: " + (isLogging ? "green" : "inherit"), + }, + isLogging ? _("Enabled") : _("Disabled"), + ); + + var btn_enable_log = E( + "button", + { + class: "btn cbi-button cbi-button-apply", + disabled: isLogging ? true : null, + click: function (ev) { + ev.target.disabled = true; + ev.target.classList.add("spinning"); + return adb + .setQueryLog(pkg.Name, "enable") + .then(function () { + location.reload(); + }); + }, + }, + _("Enable Logging"), + ); + + var btn_disable_log = E( + "button", + { + class: "btn cbi-button cbi-button-reset", + disabled: !isLogging ? true : null, + click: function (ev) { + ev.target.disabled = true; + ev.target.classList.add("spinning"); + return adb + .setQueryLog(pkg.Name, "disable") + .then(function () { + location.reload(); + }); + }, + }, + _("Disable Logging"), + ); + + var logTextarea = E("textarea", { + id: "dns-query-log", + style: + "min-height: 800px; max-height: 85vh; width: 100%; padding: 5px;" + + " font-family: monospace; font-size: 12px; resize: vertical;", + readonly: "readonly", + wrap: "off", + }); + + return E("div", { id: "adblock-fast-log-container" }, [ + E("div", { style: "margin-bottom: 10px;" }, [ + E("span", {}, [ + _("Query logging for %s: ").format(resolver), + statusLabel, + ]), + ]), + E("div", { style: "margin-bottom: 10px;" }, [ + btn_enable_log, + E("span", {}, "\u00a0\u00a0"), + btn_disable_log, + ]), + E( + "div", + { + class: "cbi-section-descr", + style: "margin-bottom: 5px;", + }, + _( + "Showing syslog entries for %s. Log refreshes automatically.", + ).format(logTag), + ), + logTextarea, + ]); + }; + s2 = m.section( form.NamedSection, "config", @@ -903,7 +1010,70 @@ return view.extend({ o.modalonly = true; o.optional = false; - return Promise.all([status.render(), m.render()]); + return Promise.all([status.render(), m.render()]).then(function (nodes) { + var mapNode = nodes[1]; + + // Defer DOM modifications until after browser inserts nodes + requestAnimationFrame(function () { + var dns = queryLogData.resolver || "dnsmasq"; + var logTag = dns === "smartdns" ? "smartdns" : dns === "unbound" ? "unbound" : "dnsmasq"; + + // Log fetcher + var fetchLog = function () { + var el = document.getElementById("dns-query-log"); + if (!el) return; + adb.callLogRead(1000, false, true).then(function (logEntries) { + var filtered = (logEntries || []) + .filter(function (e) { return e.msg && e.msg.indexOf(logTag) >= 0; }) + .map(function (e) { + var d = new Date(e.time); + return "[" + d.toLocaleDateString([], { year: "numeric", month: "2-digit", day: "2-digit" }) + + "-" + d.toLocaleTimeString([], { hour: "2-digit", minute: "2-digit", second: "2-digit", hour12: false }) + + "] " + e.msg; + }); + el.value = filtered.length > 0 ? filtered.join("\n") + : _("No %s query log entries found.").format(dns); + el.scrollTop = el.scrollHeight; + }); + }; + L.Poll.add(fetchLog, 5); + L.Poll.start(); + + // Make the log viewer full-width + var style = document.createElement("style"); + style.textContent = + "#cbi-adblock-fast-config-_log_viewer { display: block !important; }"; + document.head.appendChild(style); + + // Hide s2/s3 sections when the log tab is active + var logContainer = document.getElementById("adblock-fast-log-container"); + var cbiMap = logContainer && logContainer.closest(".cbi-map"); + if (cbiMap) { + var sections = cbiMap.querySelectorAll(":scope > .cbi-section"); + var extraSections = []; + for (var i = 1; i < sections.length; i++) + extraSections.push(sections[i]); + + var updateSections = function () { + var activeTab = cbiMap.querySelector(".cbi-tabmenu li.cbi-tab"); + var isLogTab = activeTab && activeTab.getAttribute("data-tab") === "tab_log"; + extraSections.forEach(function (s) { + s.style.display = isLogTab ? "none" : ""; + }); + }; + + // Handle tab clicks and initial state + cbiMap.querySelectorAll(".cbi-tabmenu li[data-tab] a").forEach(function (link) { + link.addEventListener("click", function () { + requestAnimationFrame(updateSections); + }); + }); + updateSections(); + } + }); + + return nodes; + }); }, handleSave: function (ev) { diff --git a/applications/luci-app-adblock-fast/po/templates/adblock-fast.pot b/applications/luci-app-adblock-fast/po/templates/adblock-fast.pot index 4d67e93faf..ff8f52b1b6 100644 --- a/applications/luci-app-adblock-fast/po/templates/adblock-fast.pot +++ b/applications/luci-app-adblock-fast/po/templates/adblock-fast.pot @@ -15,7 +15,7 @@ msgstr "" msgid "-" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:880 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:987 msgid "Action" msgstr "" @@ -23,13 +23,13 @@ msgstr "" msgid "Active" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:349 -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:415 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:354 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:420 msgid "Ad-blocking on all instances" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:350 -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:416 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:355 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:421 msgid "Ad-blocking on select instances" msgstr "" @@ -41,72 +41,72 @@ msgstr "" msgid "AdBlock-Fast" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:831 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:938 msgid "AdBlock-Fast - Allowed and Blocked Domains" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:855 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:962 msgid "AdBlock-Fast - Allowed and Blocked Lists URLs" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:199 -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:207 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:203 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:211 msgid "AdBlock-Fast - Configuration" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:413 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:433 msgid "AdBlock-Fast - Status" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:674 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:679 msgid "Add IPv6 entries" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:671 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:676 msgid "Add IPv6 entries to block-list." msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:213 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:216 msgid "Advanced Configuration" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:881 -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:886 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:988 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:993 msgid "Allow" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:839 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:946 msgid "Allowed Domains" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:747 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:752 msgid "" "Attempt to create a compressed cache of block-list in the persistent memory." msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:659 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:664 msgid "Automatic Config Update" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:512 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:517 msgid "Automatic List Update" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:211 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:215 msgid "Basic Configuration" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:882 -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:886 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:989 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:993 msgid "Block" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:847 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:954 #: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/status/include/70_adblock-fast.js:42 msgid "Blocked Domains" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:460 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:480 msgid "Blocking %s domains (with %s)." msgstr "" @@ -118,7 +118,7 @@ msgstr "" msgid "Cache file" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:477 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:497 msgid "Cache file found." msgstr "" @@ -130,11 +130,11 @@ msgstr "" msgid "Compressed cache" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:465 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:485 msgid "Compressed cache file created." msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:479 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:499 msgid "Compressed cache file found." msgstr "" @@ -142,7 +142,7 @@ msgstr "" msgid "Config (%s) validation failure!" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:484 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:489 msgid "Controls system log and console output verbosity." msgstr "" @@ -156,81 +156,90 @@ msgstr "" msgid "Cron service is not enabled or running. Enable it with: %s." msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:720 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:725 msgid "Curl download retry" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:707 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:712 msgid "Curl maximum file size (in bytes)" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:294 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:218 +msgid "DNS Query Log" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:299 #: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/status/include/70_adblock-fast.js:41 msgid "DNS Service" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:216 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:221 msgid "DNS resolution option, see the %sREADME%s for details." msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:530 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:535 msgid "Daily" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:601 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:606 msgid "Day of Month" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:580 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:585 msgid "Day of Week" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:758 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:763 msgid "Directory for compressed cache file" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:760 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:765 msgid "" "Directory for compressed cache file of block-list in the persistent memory." msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:722 -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:515 -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:662 -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:778 -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:791 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:742 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:520 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:667 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:783 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:796 msgid "Disable" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:802 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:807 msgid "Disable Debugging" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:432 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:896 +msgid "Disable Logging" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:452 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:860 msgid "Disabled" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:716 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:736 msgid "Disabling %s service" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:326 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:331 msgid "Dnsmasq Config File URL" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:673 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:678 msgid "Do not add IPv6 entries" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:750 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:755 msgid "Do not store compressed cache" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:737 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:742 msgid "Do not use simultaneous processing" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:685 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:690 msgid "Download time-out (in seconds)" msgstr "" @@ -238,63 +247,71 @@ msgstr "" msgid "Downloading lists" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:703 -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:516 -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:663 -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:779 -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:792 -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:876 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:723 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:521 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:668 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:784 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:797 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:983 msgid "Enable" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:799 -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:803 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:804 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:808 msgid "Enable Debugging" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:788 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:878 +msgid "Enable Logging" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:793 msgid "" "Enable RFC 1123 compliant domain validation for dnsmasq block-lists to " "remove invalid entries." msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:786 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:791 msgid "Enable dnsmasq domain validation" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:773 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:778 msgid "Enable dnsmasq sanity check" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:775 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:780 msgid "" "Enable sanity check for dnsmasq block-list processing to detect and report " "issues." msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:513 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:518 msgid "Enable scheduled list redownloads via /etc/init.d/adblock-fast dl." msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:800 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:860 +msgid "Enabled" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:805 msgid "Enables debug output to /tmp/adblock-fast.log." msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:697 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:717 msgid "Enabling %s service" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:560 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:580 msgid "Errors encountered, please check the %sREADME%s" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:533 -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:546 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:538 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:551 msgid "Every N days" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:534 -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:563 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:539 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:568 msgid "Every N hours" msgstr "" @@ -390,7 +407,7 @@ msgstr "" msgid "Failed to unpack compressed cache" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:945 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:1115 msgid "Failed to update cron schedule." msgstr "" @@ -398,7 +415,7 @@ msgstr "" msgid "Force DNS Ports" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:468 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:488 msgid "Force DNS ports:" msgstr "" @@ -406,19 +423,19 @@ msgstr "" msgid "Force Reloading" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:472 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:477 msgid "Force Router DNS" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:476 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:481 msgid "Force Router DNS server to all local devices" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:608 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:628 msgid "Force redownloading %s block lists" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:473 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:478 msgid "Forces Router DNS use on local devices, also known as DNS Hijacking." msgstr "" @@ -426,7 +443,7 @@ msgstr "" msgid "Free ram (%s) is not enough to process all enabled block-lists" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:588 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:593 msgid "Friday" msgstr "" @@ -442,31 +459,31 @@ msgstr "" msgid "Heartbeat domain is not accessible after resolver restart" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:619 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:624 msgid "Hour of day to run the update (0-23)." msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:670 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:675 msgid "IPv6 Support" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:709 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:714 msgid "" "If curl is installed and detected, it would not download files bigger than " "this." msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:722 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:727 msgid "" "If curl is installed and detected, it would retry download this many times " "on timeout/fail." msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:840 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:947 msgid "Individual domains to be allowed." msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:848 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:955 msgid "Individual domains to be blocked." msgstr "" @@ -481,25 +498,25 @@ msgstr "" msgid "Invalid compressed cache directory '%s'" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:496 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:501 msgid "LED to indicate status" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:734 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:739 msgid "" "Launch all lists downloads and processing simultaneously, reducing service " "start time." msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:475 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:480 msgid "Let local devices use their own DNS servers if set" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:212 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:217 msgid "List Updates Schedule" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:641 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:646 msgid "" "Minute of hour to run the update (0-59). In 'Every N hours' mode, updates " "run at the selected minute within each interval." @@ -509,27 +526,31 @@ msgstr "" msgid "Missing recommended package: '%s'" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:584 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:589 msgid "Monday" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:532 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:537 msgid "Monthly" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:898 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:1005 msgid "Name" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:889 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:996 msgid "Name/URL" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:417 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:1035 +msgid "No %s query log entries found." +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:422 msgid "No Ad-blocking on SmartDNS" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:351 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:356 msgid "No Ad-blocking on dnsmasq" msgstr "" @@ -541,61 +562,61 @@ msgstr "" msgid "No blocked list URLs nor blocked-domains enabled" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:447 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:467 msgid "Not installed or not found" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:483 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:488 msgid "Output Verbosity Setting" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:619 -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:641 -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:650 -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:657 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:639 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:661 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:670 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:677 msgid "Pause" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:697 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:702 msgid "" "Pause ad-blocking for the specified number of seconds when the Pause button " "is pressed." msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:695 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:700 msgid "Pause time-out (in seconds)" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:660 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:665 msgid "Perform config update before downloading the block/allow-lists." msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:498 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:503 msgid "Pick the LED not already used in %sSystem LED Configuration%s." msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:447 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:452 msgid "Pick the SmartDNS instance(s) for ad-blocking" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:382 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:387 msgid "Pick the dnsmasq instance(s) for ad-blocking" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:492 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:512 msgid "Please %sdonate%s to support development of this project." msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:224 #: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:229 #: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:234 #: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:239 -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:246 -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:253 -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:262 -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:269 -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:276 -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:285 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:244 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:251 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:258 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:267 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:274 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:281 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:290 msgid "Please note that %s is not supported on this system." msgstr "" @@ -603,11 +624,15 @@ msgstr "" msgid "Processing lists" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:614 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:911 +msgid "Query logging for %s:" +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:634 msgid "Redownload" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:810 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:815 msgid "Remote Access Token" msgstr "" @@ -618,23 +643,23 @@ msgid "" msgstr "" #: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:70 -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:657 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:677 msgid "Restarting" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:602 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:607 msgid "Run on the selected day of month." msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:581 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:586 msgid "Run on the selected weekday." msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:547 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:552 msgid "Run once every N days." msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:564 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:569 msgid "Run once every N hours." msgstr "" @@ -646,61 +671,65 @@ msgstr "" msgid "Sanity check discovered leading dots in %s" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:589 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:594 msgid "Saturday" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:527 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:532 msgid "Schedule Type" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:529 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:534 msgid "Select how often the update should run." msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:762 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:782 msgid "Service Control" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:486 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:506 msgid "Service Details" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:547 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:567 msgid "Service Errors" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:417 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:437 msgid "Service Status" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:517 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:537 msgid "Service Warnings" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:201 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:205 msgid "" "Service is disabled. Please enable the service using the Service Control " "button above to configure service options." msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:732 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:927 +msgid "Showing syslog entries for %s. Log refreshes automatically." +msgstr "" + +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:737 msgid "Simultaneous processing" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:863 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:970 msgid "Size" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:873 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:980 msgid "Size: %s" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:487 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:492 msgid "Some output" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:595 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:615 msgid "Start" msgstr "" @@ -708,7 +737,7 @@ msgstr "" msgid "Starting" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:589 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:609 msgid "Starting %s service" msgstr "" @@ -716,11 +745,11 @@ msgstr "" msgid "Status" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:684 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:704 msgid "Stop" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:686 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:691 msgid "Stop the download if it is stalled for set number of seconds." msgstr "" @@ -728,23 +757,23 @@ msgstr "" msgid "Stopped" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:678 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/adblock-fast/status.js:698 msgid "Stopping %s service" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:751 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:756 msgid "Store compressed cache" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:745 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:750 msgid "Store compressed cache file on router" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:583 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:588 msgid "Sunday" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:486 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:491 msgid "Suppress output" msgstr "" @@ -783,28 +812,28 @@ msgstr "" msgid "The principal package (adblock-fast) is outdated, please update it" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:587 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:592 msgid "Thursday" msgstr "" -#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:812 +#: applications/luci-app-adblock-fast/htdocs/luci-static/resources/view/adblock-fast/overview.js:817 msgid "Token for = 2) + logging_enabled = true; + }); + break; + } + + let result = {}; + result[name] = { + resolver: resolver, + dns: dns, + logging_enabled: logging_enabled, + }; + return result; + } + }, + setQueryLog: { + args: { name: 'name', action: 'action' }, + call: function(req) { + let name = req.args?.name || packageName; + let action = req.args?.action; + if (action != 'enable' && action != 'disable') + return { result: false }; + + let uci_ctx = cursor(); + uci_ctx.load(packageName); + let dns = uci_ctx.get(packageName, 'config', 'dns') || 'dnsmasq.servers'; + let resolver = split(dns, '.')[0]; + let enable = (action == 'enable'); + + switch (resolver) { + case 'dnsmasq': { + uci_ctx.load('dhcp'); + let dsel = get_selected_instances(uci_ctx, 'dhcp', 'dnsmasq', 'dnsmasq_instance'); + uci_ctx.foreach('dhcp', 'dnsmasq', function(s) { + if (dsel != null && index(dsel, s['.name']) < 0) return; + let sect = s['.name']; + if (enable) { + if (!uci_bool(s.logqueries)) + uci_ctx.set('dhcp', sect, 'adbf_backup_logqueries', s.logqueries || '0'); + uci_ctx.set('dhcp', sect, 'logqueries', '1'); + if (s.logfacility) { + uci_ctx.set('dhcp', sect, 'adbf_backup_logfacility', s.logfacility); + uci_ctx.delete('dhcp', sect, 'logfacility'); + } + } else { + let saved = s.adbf_backup_logqueries; + if (saved != null) { + if (uci_bool(saved)) + uci_ctx.set('dhcp', sect, 'logqueries', saved); + else + uci_ctx.delete('dhcp', sect, 'logqueries'); + uci_ctx.delete('dhcp', sect, 'adbf_backup_logqueries'); + } else { + uci_ctx.delete('dhcp', sect, 'logqueries'); + } + let saved_fac = s.adbf_backup_logfacility; + if (saved_fac != null) { + uci_ctx.set('dhcp', sect, 'logfacility', saved_fac); + uci_ctx.delete('dhcp', sect, 'adbf_backup_logfacility'); + } + } + }); + uci_ctx.commit('dhcp'); + system('/etc/init.d/dnsmasq restart >/dev/null 2>&1'); + break; + } + case 'smartdns': { + uci_ctx.load('smartdns'); + let ssel = get_selected_instances(uci_ctx, 'smartdns', 'smartdns', 'smartdns_instance'); + uci_ctx.foreach('smartdns', 'smartdns', function(s) { + if (ssel != null && index(ssel, s['.name']) < 0) return; + let sect = s['.name']; + if (enable) { + let lvl = s.log_level; + if (lvl != 'info' && lvl != 'debug') + uci_ctx.set('smartdns', sect, 'adbf_backup_log_level', lvl || 'error'); + uci_ctx.set('smartdns', sect, 'log_level', 'info'); + } else { + let saved = s.adbf_backup_log_level; + if (saved != null) { + uci_ctx.set('smartdns', sect, 'log_level', saved); + uci_ctx.delete('smartdns', sect, 'adbf_backup_log_level'); + } else { + uci_ctx.set('smartdns', sect, 'log_level', 'error'); + } + } + return false; + }); + uci_ctx.commit('smartdns'); + system('/etc/init.d/smartdns restart >/dev/null 2>&1'); + break; + } + case 'unbound': + uci_ctx.load('unbound'); + uci_ctx.foreach('unbound', 'unbound', function(s) { + let sect = s['.name']; + if (enable) { + let verb = s.verbosity; + if (+verb < 2) + uci_ctx.set('unbound', sect, 'adbf_backup_verbosity', verb || '1'); + uci_ctx.set('unbound', sect, 'verbosity', '2'); + } else { + let saved = s.adbf_backup_verbosity; + if (saved != null) { + uci_ctx.set('unbound', sect, 'verbosity', saved); + uci_ctx.delete('unbound', sect, 'adbf_backup_verbosity'); + } else { + uci_ctx.set('unbound', sect, 'verbosity', '1'); + } + } + return false; + }); + uci_ctx.commit('unbound'); + system('/etc/init.d/unbound restart >/dev/null 2>&1'); + break; + default: + return { result: false }; + } + return { result: true }; } },