"/proc/sys/net/netfilter/nf_conntrack_*": [ "read" ],
"/proc/mounts": [ "read" ],
"/usr/lib/lua/luci/version.lua": [ "read" ],
+ "/bin/dmesg -r": [ "exec" ],
"/bin/ping *": [ "exec" ],
"/bin/ping6 *": [ "exec" ],
"/bin/traceroute *": [ "exec" ],
"/bin/traceroute6 *": [ "exec" ],
+ "/sbin/logread -e ^": [ "exec" ],
"/usr/bin/ping *": [ "exec" ],
"/usr/bin/ping6 *": [ "exec" ],
"/usr/bin/traceroute *": [ "exec" ],
--- /dev/null
+'use strict';
+'require fs';
+'require ui';
+
+return L.view.extend({
+ load: function() {
+ return fs.exec_direct('/bin/dmesg', [ '-r' ]).catch(function(err) {
+ ui.addNotification(null, E('p', {}, _('Unable to load log data: ' + err.message)));
+ return '';
+ });
+ },
+
+ render: function(logdata) {
+ var loglines = logdata.trim().split(/\n/).map(function(line) {
+ return line.replace(/^<\d+>/, '');
+ });
+
+ return E([], [
+ E('h2', {}, [ _('Kernel Log') ]),
+ E('div', { 'id': 'content_syslog' }, [
+ E('textarea', {
+ 'id': 'syslog',
+ 'style': 'font-size:12px',
+ 'readonly': 'readonly',
+ 'wrap': 'off',
+ 'rows': loglines.length + 1
+ }, [ loglines.join('\n') ])
+ ])
+ ]);
+ },
+
+ handleSaveApply: null,
+ handleSave: null,
+ handleReset: null
+});
--- /dev/null
+'use strict';
+'require fs';
+'require ui';
+
+return L.view.extend({
+ load: function() {
+ return fs.exec_direct('/sbin/logread', [ '-e', '^' ]).catch(function(err) {
+ ui.addNotification(null, E('p', {}, _('Unable to load log data: ' + err.message)));
+ return '';
+ });
+ },
+
+ render: function(logdata) {
+ var loglines = logdata.trim().split(/\n/);
+
+ return E([], [
+ E('h2', {}, [ _('System Log') ]),
+ E('div', { 'id': 'content_syslog' }, [
+ E('textarea', {
+ 'id': 'syslog',
+ 'style': 'font-size:12px',
+ 'readonly': 'readonly',
+ 'wrap': 'off',
+ 'rows': loglines.length + 1
+ }, [ loglines.join('\n') ])
+ ])
+ ]);
+ },
+
+ handleSaveApply: null,
+ handleSave: null,
+ handleReset: null
+});
entry({"admin", "status", "iptables"}, view("status/iptables"), _("Firewall"), 2).leaf = true
entry({"admin", "status", "routes"}, template("admin_status/routes"), _("Routes"), 3)
- entry({"admin", "status", "syslog"}, call("action_syslog"), _("System Log"), 4)
- entry({"admin", "status", "dmesg"}, call("action_dmesg"), _("Kernel Log"), 5)
+ entry({"admin", "status", "syslog"}, view("status/syslog"), _("System Log"), 4)
+ entry({"admin", "status", "dmesg"}, view("status/dmesg"), _("Kernel Log"), 5)
entry({"admin", "status", "processes"}, view("status/processes"), _("Processes"), 6)
entry({"admin", "status", "realtime"}, alias("admin", "status", "realtime", "load"), _("Realtime Graphs"), 7)
entry({"admin", "status", "nameinfo"}, call("action_nameinfo")).leaf = true
end
-
-function action_syslog()
- local syslog = luci.sys.syslog()
- luci.template.render("admin_status/syslog", {syslog=syslog})
-end
-
-function action_dmesg()
- local dmesg = luci.sys.dmesg()
- luci.template.render("admin_status/dmesg", {dmesg=dmesg})
-end
+++ /dev/null
-<%#
- Copyright 2008 Steven Barth <steven@midlink.org>
- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%+header%>
-<h2 name="content"><%:Kernel Log%></h2>
-<div id="content_syslog">
-<textarea style="font-size: 12px;" readonly="readonly" wrap="off" rows="<%=dmesg:cmatch("\n")+2%>" id="syslog"><%=dmesg:pcdata()%></textarea>
-</div>
-<%+footer%>
+++ /dev/null
-<%#
- Copyright 2008 Steven Barth <steven@midlink.org>
- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%+header%>
-<h2 name="content"><%:System Log%></h2>
-<div id="content_syslog">
-<textarea style="font-size: 12px;" readonly="readonly" wrap="off" rows="<%=syslog:cmatch("\n")+2%>" id="syslog"><%=syslog:pcdata()%></textarea>
-</div>
-<%+footer%>