From: Dirk Brenken Date: Sun, 26 Oct 2025 18:43:48 +0000 (+0100) Subject: luci-app-adblock: use separate log viewer template X-Git-Url: http://git.openwrt.org/?a=commitdiff_plain;h=3fb12ab7d7604d25facb8a80afbc0f89af9bf28a;p=project%2Fluci.git luci-app-adblock: use separate log viewer template Signed-off-by: Dirk Brenken --- diff --git a/applications/luci-app-adblock/htdocs/luci-static/resources/view/adblock/logread.js b/applications/luci-app-adblock/htdocs/luci-static/resources/view/adblock/logread.js index 8a86ea45ed..36e9535c1b 100644 --- a/applications/luci-app-adblock/htdocs/luci-static/resources/view/adblock/logread.js +++ b/applications/luci-app-adblock/htdocs/luci-static/resources/view/adblock/logread.js @@ -1,4 +1,4 @@ 'use strict'; -'require tools.views as views'; +'require view.adblock.logtemplate as LogTemplate'; -return views.LogreadBox("adblock-", _('Adblock Log')); \ No newline at end of file +return LogTemplate.Logview('adblock-', 'adblock'); diff --git a/applications/luci-app-adblock/htdocs/luci-static/resources/view/adblock/logtemplate.js b/applications/luci-app-adblock/htdocs/luci-static/resources/view/adblock/logtemplate.js new file mode 100644 index 0000000000..23a8fbebe7 --- /dev/null +++ b/applications/luci-app-adblock/htdocs/luci-static/resources/view/adblock/logtemplate.js @@ -0,0 +1,48 @@ +'use strict'; +'require fs'; + +function Logview(logtag, name) { + return L.view.extend({ + load: function() { + return Promise.all([ + L.resolveDefault(fs.stat('/sbin/logread'), null), + L.resolveDefault(fs.stat('/usr/sbin/logread'), null) + ]); + }, + + render: function(stat) { + let logger = stat[0]?.path || stat[1]?.path || null; + + if (!logger) { + return E('div', { class: 'error' }, _('logread not found on system.')); + } + L.Poll.add(function() { + return L.resolveDefault(fs.exec_direct(logger, ['-e', logtag])).then(function(res) { + var log = document.getElementById('logfile'); + if (log) { + log.value = res ? res.trim() : _('No %s related logs yet!').format(name); + log.scrollTop = log.scrollHeight; + } + }); + }); + return E('div', { class: 'cbi-map' }, [ + E('div', { class: 'cbi-section' }, [ + E('div', { class: 'cbi-section-descr' }, _('The syslog output, pre-filtered for messages related to: %s').format(name)), + E('textarea', { + id: 'logfile', + style: 'min-height: 500px; max-height: 90vh; width: 100%; padding: 5px; font-family: monospace; resize: vertical;', + readonly: 'readonly', + wrap: 'off' + }) + ]) + ]); + }, + handleSaveApply: null, + handleSave: null, + handleReset: null + }); +} + +return L.Class.extend({ + Logview: Logview +}); diff --git a/applications/luci-app-adblock/root/usr/share/rpcd/acl.d/luci-app-adblock.json b/applications/luci-app-adblock/root/usr/share/rpcd/acl.d/luci-app-adblock.json index b0be565571..5fc914d3e7 100644 --- a/applications/luci-app-adblock/root/usr/share/rpcd/acl.d/luci-app-adblock.json +++ b/applications/luci-app-adblock/root/usr/share/rpcd/acl.d/luci-app-adblock.json @@ -33,6 +33,12 @@ "/var/run/adb_runtime.json": [ "read" ], + "/sbin/logread -e adblock-": [ + "exec" + ], + "/usr/sbin/logread -e adblock-": [ + "exec" + ], "/etc/init.d/adblock reload": [ "exec" ], @@ -55,9 +61,6 @@ "exec" ] }, - "ubus": { - "log": [ "read" ] - }, "uci": [ "adblock" ]