luci-app-banip: use separate log viewer template

Signed-off-by: Dirk Brenken <dev@brenken.org>
This commit is contained in:
Dirk Brenken
2025-10-26 20:38:01 +01:00
parent 3fb12ab7d7
commit 0f97532791
4 changed files with 64 additions and 7 deletions

View File

@@ -1,4 +1,4 @@
'use strict';
'require tools.views as views';
'require view.banip.logtemplate as LogTemplate';
return views.LogreadBox(" banIP/", _('banIP firewall Log'));
return LogTemplate.Logview('banIP/', 'banIP');

View File

@@ -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
});

View File

@@ -1,4 +1,4 @@
'use strict';
'require tools.views as views';
'require view.banip.logtemplate as LogTemplate';
return views.LogreadBox("banIP-", _('banIP Log'));
return LogTemplate.Logview('banIP-', 'banIP');

View File

@@ -30,6 +30,18 @@
"/var/run/banip.lock": [
"read"
],
"/sbin/logread -e banIP-": [
"exec"
],
"/usr/sbin/logread -e banIP-": [
"exec"
],
"/sbin/logread -e banIP/": [
"exec"
],
"/usr/sbin/logread -e banIP/": [
"exec"
],
"/usr/sbin/nft -tj list sets": [
"exec"
],
@@ -58,9 +70,6 @@
"exec"
]
},
"ubus": {
"log": [ "read" ]
},
"uci": [
"banip"
]