openwrt-routing/luci-app-olsrd2/htdocs/luci-static/resources/view/olsrd2/overview.js

83 lines
2.0 KiB
JavaScript

'use strict';
'require view';
'require ui';
'require rpc';
'require poll';
var callgetVersion = rpc.declare({
object: 'status.olsrd2',
method: 'getVersion'
});
var callgetLan = rpc.declare({
object: 'status.olsrd2',
method: 'getLan'
});
function createTable(data) {
let tableData = [];
if ( data && data.version && data.version[0] ) {
if ( data.version[0].version_text != undefined ) {
tableData.push([_('OLSRd2 Version'),data.version[0].version_text]);
}
if ( data.version[0].version_commit != undefined) {
tableData.push([_('OLSRd2 GIT commit'),data.version[0].version_commit]);
}
}
tableData.push(['']);
return tableData;
}
function createTableDomain(data) {
let tableData = [];
if ( data && data.lan && data.lan[0] ) {
data.lan.forEach(row => {
tableData.push([
row.lan,
row.domain,
row.domain_metric,
row.domain_metric_out,
row.domain_metric_out_raw,
row.domain_distance
])
});
}
return tableData;
}
return view.extend({
title: _('Version'),
handleSaveApply: null,
handleSave: null,
handleReset: null,
render: function() {
var tr = E('table',{ 'class': 'table'});
tr.appendChild(E('tr', { 'class': 'tr cbi-section-table-titles' }, [
E('th', { 'class': 'th left' }),
E('th', { 'class': 'th left' })
]));
var trd = E('table', { 'class': 'table' });
trd.appendChild(E('trd', { 'class': 'tr cbi-section-table-titles' }, [
E('th', { 'class': 'th left' }, [ 'LAN IP' ]),
E('th', { 'class': 'th left' }, [ 'Domain' ]),
E('th', { 'class': 'th left' }, [ 'Domain Metric' ]),
E('th', { 'class': 'th left' }, [ 'Domain Metric out' ]),
E('th', { 'class': 'th left' }, [ 'Domain Metric out' ]),
E('th', { 'class': 'th left' }, [ 'Domain distance' ])
]));
poll.add(() => {
Promise.all([
callgetVersion(),
callgetLan()
]).then((results) => {
cbi_update_table(tr, createTable(results[0]));
cbi_update_table(trd, createTableDomain(results[1]));
})
}, 30);
return [tr,trd];
}
});