83 lines
2.0 KiB
JavaScript
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];
|
|
}
|
|
|
|
});
|