-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
widgets: add a re-useable filtered logread view
Multiple apps introduced their own implementation of a syslog view, filtered for just their own application logs. Pull that out as a shared view. Some of these had _minor_ style differences, which has been "standardized" now. A full "widget" conversion would allow more end app tuning of that, but is not implemented. Signed-off-by: Karl Palsson <karlp@etactica.com> app-nextdns: fix Logs title Minor typo, introduced in 625abbf (convert simple controllers to menu.json) Signed-off-by: Karl Palsson <karlp@etactica.com> luci-base: implement shared log reader view Closes #5452 Signed-off-by: Paul Donald <newtwen@gmail.com>
- Loading branch information
1 parent
97ebdcb
commit c5a65a8
Showing
6 changed files
with
54 additions
and
162 deletions.
There are no files selected for viewing
41 changes: 2 additions & 39 deletions
41
applications/luci-app-adblock/htdocs/luci-static/resources/view/adblock/logread.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,41 +1,4 @@ | ||
'use strict'; | ||
'require view'; | ||
'require poll'; | ||
'require fs'; | ||
'require tools.views as views'; | ||
|
||
return 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) { | ||
var logger = stat[0] ? stat[0].path : stat[1] ? stat[1].path : null; | ||
poll.add(function() { | ||
return L.resolveDefault(fs.exec_direct(logger, ['-e', 'adblock-'])).then(function(res) { | ||
var log = document.getElementById("logfile"); | ||
if (res) { | ||
log.value = res.trim(); | ||
} else { | ||
log.value = _('No adblock related logs yet!'); | ||
} | ||
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 adblock related messages only.')), | ||
E('textarea', { | ||
'id': 'logfile', | ||
'style': 'width: 100% !important; padding: 5px; font-family: monospace', | ||
'readonly': 'readonly', | ||
'wrap': 'off', | ||
'rows': 25 | ||
}) | ||
])); | ||
}, | ||
handleSaveApply: null, | ||
handleSave: null, | ||
handleReset: null | ||
}); | ||
return views.LogreadBox("adblock-", "adblock"); |
41 changes: 2 additions & 39 deletions
41
applications/luci-app-banip/htdocs/luci-static/resources/view/banip/processing_log.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,41 +1,4 @@ | ||
'use strict'; | ||
'require view'; | ||
'require poll'; | ||
'require fs'; | ||
'require tools.views as views'; | ||
|
||
return 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) { | ||
var logger = stat[0] ? stat[0].path : stat[1] ? stat[1].path : null; | ||
poll.add(function () { | ||
return L.resolveDefault(fs.exec_direct(logger, ['-e', 'banIP-'])).then(function (res) { | ||
var log = document.getElementById("logfile"); | ||
if (res) { | ||
log.value = res.trim(); | ||
} else { | ||
log.value = _('No banIP related processing logs yet!'); | ||
} | ||
log.scrollTop = log.scrollHeight; | ||
}); | ||
}); | ||
return E('div', { class: 'cbi-map' }, | ||
E('div', { class: 'cbi-section' }, [ | ||
E('div', { class: 'cbi-section-descr' }, _('The syslog output, prefiltered for banIP-related processing log entries only.')), | ||
E('textarea', { | ||
'id': 'logfile', | ||
'style': 'width: 100% !important; padding: 5px; font-family: monospace', | ||
'readonly': 'readonly', | ||
'wrap': 'off', | ||
'rows': 25 | ||
}) | ||
])); | ||
}, | ||
handleSaveApply: null, | ||
handleSave: null, | ||
handleReset: null | ||
}); | ||
return views.LogreadBox("banIP-", "banIP"); |
45 changes: 2 additions & 43 deletions
45
applications/luci-app-nextdns/htdocs/luci-static/resources/view/nextdns/logread.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,45 +1,4 @@ | ||
'use strict'; | ||
'require view'; | ||
'require poll'; | ||
'require fs'; | ||
'require tools.views as views'; | ||
|
||
return view.extend({ | ||
render: function() { | ||
poll.add(function() { | ||
return L.resolveDefault(fs.exec('/sbin/logread', ['-e', 'nextdns']), { code: 1 }) | ||
.then(function(res) { | ||
var content; | ||
if (res.code === 0) | ||
content = res.stdout.trim(); | ||
if (!content) | ||
content = _('No nextdns related logs yet!'); | ||
var view = document.getElementById("view_id"); | ||
view.value = content; | ||
view.scrollTop = view.scrollHeight; | ||
}); | ||
}); | ||
return E('div', { class: 'cbi-map' }, | ||
E('div', { class: 'cbi-section' }, [ | ||
E('div', { class: 'cbi-section-descr' }, | ||
_('The syslog output, pre-filtered for nextdns related messages only.')), | ||
E('textarea', { | ||
id: 'view_id', | ||
readonly: 'readonly', | ||
wrap: 'off', | ||
style: 'width: 100% !important;\ | ||
height: 450px !important;\ | ||
border: 1px solid #cccccc;\ | ||
padding: 5px;\ | ||
font-size: 12px;\ | ||
font-family: monospace;\ | ||
resize: none;\ | ||
pointer-events: auto;\ | ||
cursor: auto;' | ||
}) | ||
]) | ||
); | ||
}, | ||
handleSaveApply: null, | ||
handleSave: null, | ||
handleReset: null | ||
}); | ||
return views.LogreadBox("nextdns", "nextdns"); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
42 changes: 2 additions & 40 deletions
42
applications/luci-app-travelmate/htdocs/luci-static/resources/view/travelmate/logread.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,42 +1,4 @@ | ||
'use strict'; | ||
'require view'; | ||
'require poll'; | ||
'require fs'; | ||
'require tools.views as views'; | ||
|
||
return 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) { | ||
var logger = stat[0] ? stat[0].path : stat[1] ? stat[1].path : null; | ||
poll.add(function() { | ||
return L.resolveDefault(fs.exec_direct(logger, ['-e', 'trm-'])).then(function(res) { | ||
var log = document.getElementById("logfile"); | ||
if (res) { | ||
log.value = res.trim(); | ||
} | ||
else { | ||
log.value = _('No travelmate related logs yet!'); | ||
} | ||
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 travelmate related messages only.')), | ||
E('textarea', { | ||
'id': 'logfile', | ||
'style': 'width: 100% !important; padding: 5px; font-family: monospace', | ||
'readonly': 'readonly', | ||
'wrap': 'off', | ||
'rows': 25 | ||
}) | ||
])); | ||
}, | ||
handleSaveApply: null, | ||
handleSave: null, | ||
handleReset: null | ||
}); | ||
return views.LogreadBox("trm-", "travelmate"); |
45 changes: 45 additions & 0 deletions
45
modules/luci-base/htdocs/luci-static/resources/tools/views.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
'use strict'; | ||
'require fs'; | ||
|
||
var CBILogreadBox = function(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) { | ||
var logger = stat[0] ? stat[0].path : stat[1] ? stat[1].path : null; | ||
L.Poll.add(function() { | ||
return L.resolveDefault(fs.exec_direct(logger, ['-e', logtag])).then(function(res) { | ||
var log = document.getElementById("logfile"); | ||
if (res) { | ||
log.value = res.trim(); | ||
} else { | ||
log.value = _('No related logs yet!'); | ||
} | ||
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: ' + name)), | ||
E('textarea', { | ||
'id': 'logfile', | ||
'style': 'width: 100% !important; padding: 5px; font-family: monospace', | ||
'readonly': 'readonly', | ||
'wrap': 'off', | ||
'rows': 25 | ||
}) | ||
])); | ||
}, | ||
handleSaveApply: null, | ||
handleSave: null, | ||
handleReset: null | ||
}); | ||
}; | ||
|
||
return L.Class.extend({ | ||
LogreadBox: CBILogreadBox, | ||
}); |