summaryrefslogtreecommitdiffhomepage
path: root/modules/luci-base/htdocs/luci-static/resources/tools/views.js
blob: f851f61dffc3b857bf2b37baaedc3155508df76c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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,
});