treewide: import utility classes explicitly

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(backported from commit 3c4bc228a1)
This commit is contained in:
Jo-Philipp Wich 2020-04-03 10:00:06 +02:00
parent 28489b12eb
commit c2f30fbe4d
45 changed files with 177 additions and 108 deletions

View file

@ -1,4 +1,6 @@
'use strict'; 'use strict';
'require baseclass';
'require dom';
'require ui'; 'require ui';
'require uci'; 'require uci';
'require form'; 'require form';
@ -81,7 +83,7 @@ function lookupProto(x) {
return [ -1, x, x ]; return [ -1, x, x ];
} }
return L.Class.extend({ return baseclass.extend({
fmt: function(fmtstr, args, values) { fmt: function(fmtstr, args, values) {
var repl = [], var repl = [],
wrap = false, wrap = false,
@ -112,7 +114,7 @@ return L.Class.extend({
}; };
var isset = function(val) { var isset = function(val) {
if (L.isObject(val) && !L.dom.elem(val)) { if (L.isObject(val) && !dom.elem(val)) {
for (var k in val) for (var k in val)
if (val.hasOwnProperty(k)) if (val.hasOwnProperty(k))
return true; return true;
@ -128,7 +130,7 @@ return L.Class.extend({
}; };
var parse = function(tokens, text) { var parse = function(tokens, text) {
if (L.dom.elem(text)) { if (dom.elem(text)) {
tokens.push('<span data-fmt-placeholder="%d"></span>'.format(values.length)); tokens.push('<span data-fmt-placeholder="%d"></span>'.format(values.length));
values.push(text); values.push(text);
} }

View file

@ -1,8 +1,9 @@
'use strict'; 'use strict';
'require view';
'require fs'; 'require fs';
'require ui'; 'require ui';
return L.view.extend({ return view.extend({
load: function() { load: function() {
return L.resolveDefault(fs.read('/etc/firewall.user'), ''); return L.resolveDefault(fs.read('/etc/firewall.user'), '');
}, },

View file

@ -1,4 +1,5 @@
'use strict'; 'use strict';
'require view';
'require ui'; 'require ui';
'require rpc'; 'require rpc';
'require uci'; 'require uci';
@ -84,7 +85,7 @@ function rule_target_txt(s) {
}); });
} }
return L.view.extend({ return view.extend({
callHostHints: rpc.declare({ callHostHints: rpc.declare({
object: 'luci-rpc', object: 'luci-rpc',
method: 'getHostHints', method: 'getHostHints',

View file

@ -1,4 +1,5 @@
'use strict'; 'use strict';
'require view';
'require ui'; 'require ui';
'require rpc'; 'require rpc';
'require uci'; 'require uci';
@ -136,7 +137,7 @@ function rule_target_txt(s, ctHelpers) {
} }
} }
return L.view.extend({ return view.extend({
callHostHints: rpc.declare({ callHostHints: rpc.declare({
object: 'luci-rpc', object: 'luci-rpc',
method: 'getHostHints', method: 'getHostHints',

View file

@ -1,4 +1,5 @@
'use strict'; 'use strict';
'require view';
'require ui'; 'require ui';
'require rpc'; 'require rpc';
'require uci'; 'require uci';
@ -90,7 +91,7 @@ function rule_target_txt(s) {
} }
} }
return L.view.extend({ return view.extend({
callHostHints: rpc.declare({ callHostHints: rpc.declare({
object: 'luci-rpc', object: 'luci-rpc',
method: 'getHostHints', method: 'getHostHints',

View file

@ -1,4 +1,5 @@
'use strict'; 'use strict';
'require view';
'require rpc'; 'require rpc';
'require uci'; 'require uci';
'require form'; 'require form';
@ -7,7 +8,7 @@
'require tools.firewall as fwtool'; 'require tools.firewall as fwtool';
'require tools.widgets as widgets'; 'require tools.widgets as widgets';
return L.view.extend({ return view.extend({
callConntrackHelpers: rpc.declare({ callConntrackHelpers: rpc.declare({
object: 'luci', object: 'luci',
method: 'getConntrackHelpers', method: 'getConntrackHelpers',

View file

@ -1,9 +1,10 @@
'use strict'; 'use strict';
'require view';
'require fs'; 'require fs';
'require form'; 'require form';
'require tools.widgets as widgets'; 'require tools.widgets as widgets';
return L.view.extend({ return view.extend({
load: function() { load: function() {
return Promise.all([ return Promise.all([
L.resolveDefault(fs.stat('/sbin/block'), null), L.resolveDefault(fs.stat('/sbin/block'), null),

View file

@ -63,7 +63,7 @@ Chart.defaults.global.tooltipTemplate = function(tip) {
function kpi(id, val1, val2, val3) function kpi(id, val1, val2, val3)
{ {
var e = L.dom.elem(id) ? id : document.getElementById(id); var e = dom.elem(id) ? id : document.getElementById(id);
if (val1 && val2 && val3) if (val1 && val2 && val3)
e.innerHTML = _('%s, %s and %s').format(val1, val2, val3); e.innerHTML = _('%s, %s and %s').format(val1, val2, val3);
@ -96,8 +96,8 @@ function pie(id, data)
} }
} }
var node = L.dom.elem(id) ? id : document.getElementById(id), var node = dom.elem(id) ? id : document.getElementById(id),
key = L.dom.elem(id) ? id.id : id, key = dom.elem(id) ? id.id : id,
ctx = node.getContext('2d'); ctx = node.getContext('2d');
if (chartRegistry.hasOwnProperty(key)) if (chartRegistry.hasOwnProperty(key))
@ -279,7 +279,7 @@ function renderHostDetail(tooltip)
var rxData = [], txData = []; var rxData = [], txData = [];
L.dom.content(tooltip, [ dom.content(tooltip, [
E('div', { 'class': 'head' }, [ E('div', { 'class': 'head' }, [
E('div', { 'class': 'pie' }, [ E('div', { 'class': 'pie' }, [
E('label', _('Download')), E('label', _('Download')),

View file

@ -1,9 +1,10 @@
'use strict'; 'use strict';
'require view';
'require fs'; 'require fs';
'require form'; 'require form';
'require tools.widgets as widgets'; 'require tools.widgets as widgets';
return L.view.extend({ return view.extend({
load: function() { load: function() {
return Promise.all([ return Promise.all([
L.resolveDefault(fs.stat('/sbin/block'), null), L.resolveDefault(fs.stat('/sbin/block'), null),

View file

@ -1,8 +1,9 @@
'use strict'; 'use strict';
'require view';
'require form'; 'require form';
'require tools.widgets as widgets'; 'require tools.widgets as widgets';
return L.view.extend({ return view.extend({
render: function() { render: function() {
var m, s, o; var m, s, o;

View file

@ -1,7 +1,8 @@
'use strict'; 'use strict';
'require view';
'require uci'; 'require uci';
return L.view.extend({ return view.extend({
load: function() { load: function() {
return uci.load('ttyd'); return uci.load('ttyd');
}, },

View file

@ -1,4 +1,7 @@
'use strict'; 'use strict';
'require view';
'require dom';
'require poll';
'require rpc'; 'require rpc';
'require uci'; 'require uci';
'require form'; 'require form';
@ -123,7 +126,7 @@ function validateServerSpec(sid, s) {
return true; return true;
} }
return L.view.extend({ return view.extend({
load: function() { load: function() {
return Promise.all([ return Promise.all([
callHostHints(), callHostHints(),
@ -439,7 +442,7 @@ return L.view.extend({
var node = ipopt.map.findElement('id', ipopt.cbid(section_id)); var node = ipopt.map.findElement('id', ipopt.cbid(section_id));
if (node) if (node)
L.dom.callClassMethod(node, 'setValue', hosts[mac].ipv4); dom.callClassMethod(node, 'setValue', hosts[mac].ipv4);
}, this, ipopt, section_id)); }, this, ipopt, section_id));
return node; return node;
@ -486,7 +489,7 @@ return L.view.extend({
o = s.taboption('leases', CBILease6Status, '__status6__'); o = s.taboption('leases', CBILease6Status, '__status6__');
return m.render().then(function(mapEl) { return m.render().then(function(mapEl) {
L.Poll.add(function() { poll.add(function() {
return callDHCPLeases().then(function(leaseinfo) { return callDHCPLeases().then(function(leaseinfo) {
var leases = Array.isArray(leaseinfo.dhcp_leases) ? leaseinfo.dhcp_leases : [], var leases = Array.isArray(leaseinfo.dhcp_leases) ? leaseinfo.dhcp_leases : [],
leases6 = Array.isArray(leaseinfo.dhcp6_leases) ? leaseinfo.dhcp6_leases : []; leases6 = Array.isArray(leaseinfo.dhcp6_leases) ? leaseinfo.dhcp6_leases : [];

View file

@ -1,9 +1,11 @@
'use strict'; 'use strict';
'require view';
'require dom';
'require fs'; 'require fs';
'require ui'; 'require ui';
'require uci'; 'require uci';
return L.view.extend({ return view.extend({
handleCommand: function(exec, args) { handleCommand: function(exec, args) {
var buttons = document.querySelectorAll('.diag-action > .cbi-button'); var buttons = document.querySelectorAll('.diag-action > .cbi-button');
@ -14,7 +16,7 @@ return L.view.extend({
var out = document.querySelector('.command-output'); var out = document.querySelector('.command-output');
out.style.display = ''; out.style.display = '';
L.dom.content(out, [ res.stdout || '', res.stderr || '' ]); dom.content(out, [ res.stdout || '', res.stderr || '' ]);
}).catch(function(err) { }).catch(function(err) {
ui.addNotification(null, E('p', [ err ])) ui.addNotification(null, E('p', [ err ]))
}).finally(function() { }).finally(function() {

View file

@ -1,8 +1,9 @@
'use strict'; 'use strict';
'require view';
'require rpc'; 'require rpc';
'require form'; 'require form';
return L.view.extend({ return view.extend({
callHostHints: rpc.declare({ callHostHints: rpc.declare({
object: 'luci-rpc', object: 'luci-rpc',
method: 'getHostHints', method: 'getHostHints',

View file

@ -1,4 +1,7 @@
'use strict'; 'use strict';
'require view';
'require dom';
'require poll';
'require fs'; 'require fs';
'require ui'; 'require ui';
'require uci'; 'require uci';
@ -109,7 +112,7 @@ function render_status(node, ifc, with_device) {
function render_modal_status(node, ifc) { function render_modal_status(node, ifc) {
var dev = ifc ? (ifc.getDevice() || ifc.getL3Device() || ifc.getL3Device()) : null; var dev = ifc ? (ifc.getDevice() || ifc.getL3Device() || ifc.getL3Device()) : null;
L.dom.content(node, [ dom.content(node, [
E('img', { E('img', {
'src': L.resource('icons/%s%s.png').format(dev ? dev.getType() : 'ethernet', (dev && dev.isUp()) ? '' : '_disabled'), 'src': L.resource('icons/%s%s.png').format(dev ? dev.getType() : 'ethernet', (dev && dev.isUp()) ? '' : '_disabled'),
'title': dev ? dev.getTypeI18n() : _('Not present') 'title': dev ? dev.getTypeI18n() : _('Not present')
@ -140,7 +143,7 @@ function render_ifacebox_status(node, ifc) {
c.push(E('small', {}, ifc.isAlias() ? _('Alias of "%s"').format(ifc.isAlias()) c.push(E('small', {}, ifc.isAlias() ? _('Alias of "%s"').format(ifc.isAlias())
: (dev ? dev.getName() : E('em', _('Not present'))))); : (dev ? dev.getName() : E('em', _('Not present')))));
L.dom.content(node, c); dom.content(node, c);
return firewall.getZoneByNetwork(ifc.getName()).then(L.bind(function(zone) { return firewall.getZoneByNetwork(ifc.getName()).then(L.bind(function(zone) {
this.style.backgroundColor = zone ? zone.getColor() : '#EEEEEE'; this.style.backgroundColor = zone ? zone.getColor() : '#EEEEEE';
@ -185,7 +188,7 @@ function iface_updown(up, id, ev, force) {
'class': 'cbi-button cbi-button-negative important', 'class': 'cbi-button cbi-button-negative important',
'click': function(ev) { 'click': function(ev) {
dsc.setAttribute('disconnect', ''); dsc.setAttribute('disconnect', '');
L.dom.content(dsc, E('em', _('Interface is shutting down...'))); dom.content(dsc, E('em', _('Interface is shutting down...')));
ui.hideModal(); ui.hideModal();
} }
@ -195,13 +198,13 @@ function iface_updown(up, id, ev, force) {
} }
else { else {
dsc.setAttribute('disconnect', ''); dsc.setAttribute('disconnect', '');
L.dom.content(dsc, E('em', _('Interface is shutting down...'))); dom.content(dsc, E('em', _('Interface is shutting down...')));
} }
}); });
} }
else { else {
dsc.setAttribute(up ? 'reconnect' : 'disconnect', force ? 'force' : ''); dsc.setAttribute(up ? 'reconnect' : 'disconnect', force ? 'force' : '');
L.dom.content(dsc, E('em', up ? _('Interface is reconnecting...') : _('Interface is shutting down...'))); dom.content(dsc, E('em', up ? _('Interface is reconnecting...') : _('Interface is shutting down...')));
} }
} }
@ -224,7 +227,7 @@ function get_netmask(s, use_cfgvalue) {
return mask; return mask;
} }
return L.view.extend({ return view.extend({
poll_status: function(map, networks) { poll_status: function(map, networks) {
var resolveZone = null; var resolveZone = null;
@ -245,10 +248,10 @@ return L.view.extend({
dynamic = ifc ? ifc.isDynamic() : false; dynamic = ifc ? ifc.isDynamic() : false;
if (dsc.hasAttribute('reconnect')) { if (dsc.hasAttribute('reconnect')) {
L.dom.content(dsc, E('em', _('Interface is starting...'))); dom.content(dsc, E('em', _('Interface is starting...')));
} }
else if (dsc.hasAttribute('disconnect')) { else if (dsc.hasAttribute('disconnect')) {
L.dom.content(dsc, E('em', _('Interface is stopping...'))); dom.content(dsc, E('em', _('Interface is stopping...')));
} }
else if (ifc.getProtocol() || uci.get('network', ifc.getName()) == null) { else if (ifc.getProtocol() || uci.get('network', ifc.getName()) == null) {
render_status(dsc, ifc, false); render_status(dsc, ifc, false);
@ -258,18 +261,18 @@ return L.view.extend({
if (e) e.disabled = true; if (e) e.disabled = true;
var link = L.url('admin/system/opkg') + '?query=luci-proto'; var link = L.url('admin/system/opkg') + '?query=luci-proto';
L.dom.content(dsc, [ dom.content(dsc, [
E('em', _('Unsupported protocol type.')), E('br'), E('em', _('Unsupported protocol type.')), E('br'),
E('a', { href: link }, _('Install protocol extensions...')) E('a', { href: link }, _('Install protocol extensions...'))
]); ]);
} }
else { else {
L.dom.content(dsc, E('em', _('Interface not present or not connected yet.'))); dom.content(dsc, E('em', _('Interface not present or not connected yet.')));
} }
if (stat) { if (stat) {
var dev = ifc.getDevice(); var dev = ifc.getDevice();
L.dom.content(stat, [ dom.content(stat, [
E('img', { E('img', {
'src': L.resource('icons/%s%s.png').format(dev ? dev.getType() : 'ethernet', (dev && dev.isUp()) ? '' : '_disabled'), 'src': L.resource('icons/%s%s.png').format(dev ? dev.getType() : 'ethernet', (dev && dev.isUp()) ? '' : '_disabled'),
'title': dev ? dev.getTypeI18n() : _('Not present') 'title': dev ? dev.getTypeI18n() : _('Not present')
@ -336,7 +339,7 @@ return L.view.extend({
disabled = net ? !net.isUp() : true, disabled = net ? !net.isUp() : true,
dynamic = net ? net.isDynamic() : false; dynamic = net ? net.isDynamic() : false;
L.dom.content(tdEl.lastChild, [ dom.content(tdEl.lastChild, [
E('button', { E('button', {
'class': 'cbi-button cbi-button-neutral reconnect', 'class': 'cbi-button cbi-button-neutral reconnect',
'click': iface_updown.bind(this, true, section_id), 'click': iface_updown.bind(this, true, section_id),
@ -965,7 +968,7 @@ return L.view.extend({
return m.render().then(L.bind(function(m, nodes) { return m.render().then(L.bind(function(m, nodes) {
L.Poll.add(L.bind(function() { poll.add(L.bind(function() {
var section_ids = m.children[0].cfgsections(), var section_ids = m.children[0].cfgsections(),
tasks = []; tasks = [];

View file

@ -1,9 +1,10 @@
'use strict'; 'use strict';
'require view';
'require form'; 'require form';
'require network'; 'require network';
'require tools.widgets as widgets'; 'require tools.widgets as widgets';
return L.view.extend({ return view.extend({
load: function() { load: function() {
return network.getDevices(); return network.getDevices();
}, },

View file

@ -1,4 +1,7 @@
'use strict'; 'use strict';
'require view';
'require dom';
'require poll';
'require ui'; 'require ui';
'require rpc'; 'require rpc';
'require uci'; 'require uci';
@ -67,13 +70,13 @@ function render_port_status(node, portstate) {
return null; return null;
if (!portstate || !portstate.link) if (!portstate || !portstate.link)
L.dom.content(node, [ dom.content(node, [
E('img', { src: L.resource('icons/port_down.png') }), E('img', { src: L.resource('icons/port_down.png') }),
E('br'), E('br'),
_('no link') _('no link')
]); ]);
else else
L.dom.content(node, [ dom.content(node, [
E('img', { src: L.resource('icons/port_up.png') }), E('img', { src: L.resource('icons/port_up.png') }),
E('br'), E('br'),
'%d'.format(portstate.speed) + _('baseT'), '%d'.format(portstate.speed) + _('baseT'),
@ -112,7 +115,7 @@ var callSwconfigPortState = rpc.declare({
expect: { result: [] } expect: { result: [] }
}); });
return L.view.extend({ return view.extend({
load: function() { load: function() {
return network.getSwitchTopologies().then(function(topologies) { return network.getSwitchTopologies().then(function(topologies) {
var tasks = []; var tasks = [];
@ -363,7 +366,7 @@ return L.view.extend({
}); });
} }
L.Poll.add(L.bind(update_port_status, m, topologies)); poll.add(L.bind(update_port_status, m, topologies));
return m.render(); return m.render();
} }

View file

@ -1,4 +1,7 @@
'use strict'; 'use strict';
'require view';
'require dom';
'require poll';
'require fs'; 'require fs';
'require ui'; 'require ui';
'require rpc'; 'require rpc';
@ -167,7 +170,7 @@ function render_modal_status(node, radioNet) {
if (node == null) if (node == null)
node = E('span', { 'class': 'ifacebadge large', 'data-network': radioNet.getName() }, [ E('small'), E('span') ]); node = E('span', { 'class': 'ifacebadge large', 'data-network': radioNet.getName() }, [ E('small'), E('span') ]);
L.dom.content(node.firstElementChild, render_signal_badge( dom.content(node.firstElementChild, render_signal_badge(
disabled ? -1 : radioNet.getSignalPercent(), disabled ? -1 : radioNet.getSignalPercent(),
radioNet.getSignal(), noise, true, radioNet.getMode())); radioNet.getSignal(), noise, true, radioNet.getMode()));
@ -185,7 +188,7 @@ function render_modal_status(node, radioNet) {
], [ ' | ', E('br'), E('br'), E('br'), E('br'), E('br'), ' | ', E('br'), ' | ' ]); ], [ ' | ', E('br'), E('br'), E('br'), E('br'), E('br'), ' | ', E('br'), ' | ' ]);
if (!is_assoc) if (!is_assoc)
L.dom.append(node.lastElementChild, E('em', disabled ? _('Wireless is disabled') : _('Wireless is not associated'))); dom.append(node.lastElementChild, E('em', disabled ? _('Wireless is disabled') : _('Wireless is not associated')));
return node; return node;
} }
@ -216,7 +219,7 @@ function radio_restart(id, ev) {
btn.disabled = true; btn.disabled = true;
dsc.setAttribute('restart', ''); dsc.setAttribute('restart', '');
L.dom.content(dsc, E('em', _('Device is restarting…'))); dom.content(dsc, E('em', _('Device is restarting…')));
} }
function network_updown(id, map, ev) { function network_updown(id, map, ev) {
@ -432,7 +435,7 @@ var CBIWifiFrequencyValue = form.Value.extend({
renderWidget: function(section_id, option_index, cfgvalue) { renderWidget: function(section_id, option_index, cfgvalue) {
var elem = E('div'); var elem = E('div');
L.dom.content(elem, [ dom.content(elem, [
E('label', { 'style': 'float:left; margin-right:3px' }, [ E('label', { 'style': 'float:left; margin-right:3px' }, [
_('Mode'), E('br'), _('Mode'), E('br'),
E('select', { E('select', {
@ -520,7 +523,7 @@ var CBIWifiTxPowerValue = form.ListValue.extend({
var widget = form.ListValue.prototype.renderWidget.apply(this, [section_id, option_index, cfgvalue]); var widget = form.ListValue.prototype.renderWidget.apply(this, [section_id, option_index, cfgvalue]);
widget.firstElementChild.style.width = 'auto'; widget.firstElementChild.style.width = 'auto';
L.dom.append(widget, E('span', [ dom.append(widget, E('span', [
' - ', _('Current power'), ': ', ' - ', _('Current power'), ': ',
E('span', [ this.powerval != null ? '%d dBm'.format(this.powerval) : E('em', _('unknown')) ]), E('span', [ this.powerval != null ? '%d dBm'.format(this.powerval) : E('em', _('unknown')) ]),
this.poweroff ? ' + %d dB offset = %s dBm'.format(this.poweroff, this.powerval != null ? this.powerval + this.poweroff : '?') : '' this.poweroff ? ' + %d dB offset = %s dBm'.format(this.poweroff, this.powerval != null ? this.powerval + this.poweroff : '?') : ''
@ -564,7 +567,7 @@ var CBIWifiCountryValue = form.Value.extend({
} }
}); });
return L.view.extend({ return view.extend({
poll_status: function(map, data) { poll_status: function(map, data) {
var rows = map.querySelectorAll('.cbi-section-table-row[data-sid]'); var rows = map.querySelectorAll('.cbi-section-table-row[data-sid]');
@ -578,16 +581,16 @@ return L.view.extend({
busy = btns[0].classList.contains('spinning') || btns[1].classList.contains('spinning') || btns[2].classList.contains('spinning'); busy = btns[0].classList.contains('spinning') || btns[1].classList.contains('spinning') || btns[2].classList.contains('spinning');
if (radioDev) { if (radioDev) {
L.dom.content(badge, render_radio_badge(radioDev)); dom.content(badge, render_radio_badge(radioDev));
L.dom.content(stat, render_radio_status(radioDev, data[2].filter(function(n) { return n.getWifiDeviceName() == radioDev.getName() }))); dom.content(stat, render_radio_status(radioDev, data[2].filter(function(n) { return n.getWifiDeviceName() == radioDev.getName() })));
} }
else { else {
L.dom.content(badge, render_network_badge(radioNet)); dom.content(badge, render_network_badge(radioNet));
L.dom.content(stat, render_network_status(radioNet)); dom.content(stat, render_network_status(radioNet));
} }
if (stat.hasAttribute('restart')) if (stat.hasAttribute('restart'))
L.dom.content(stat, E('em', _('Device is restarting…'))); dom.content(stat, E('em', _('Device is restarting…')));
btns[0].disabled = busy; btns[0].disabled = busy;
btns[1].disabled = busy; btns[1].disabled = busy;
@ -645,7 +648,7 @@ return L.view.extend({
row.push(E('button', { row.push(E('button', {
'class': 'cbi-button cbi-button-remove', 'class': 'cbi-button cbi-button-remove',
'click': L.bind(function(net, mac, ev) { 'click': L.bind(function(net, mac, ev) {
L.dom.parent(ev.currentTarget, '.tr').style.opacity = 0.5; dom.parent(ev.currentTarget, '.tr').style.opacity = 0.5;
ev.currentTarget.classList.add('spinning'); ev.currentTarget.classList.add('spinning');
ev.currentTarget.disabled = true; ev.currentTarget.disabled = true;
ev.currentTarget.blur(); ev.currentTarget.blur();
@ -1652,8 +1655,8 @@ return L.view.extend({
this.pollFn = L.bind(this.handleScanRefresh, this, radioDev, {}, table, stop); this.pollFn = L.bind(this.handleScanRefresh, this, radioDev, {}, table, stop);
L.Poll.add(this.pollFn); poll.add(this.pollFn);
L.Poll.start(); poll.start();
}; };
s.handleScanRefresh = function(radioDev, scanCache, table, stop) { s.handleScanRefresh = function(radioDev, scanCache, table, stop) {
@ -1719,12 +1722,12 @@ return L.view.extend({
var btn = ev.currentTarget; var btn = ev.currentTarget;
if (btn.getAttribute('data-state') == 'stop') { if (btn.getAttribute('data-state') == 'stop') {
L.Poll.remove(this.pollFn); poll.remove(this.pollFn);
btn.firstChild.data = _('Start refresh'); btn.firstChild.data = _('Start refresh');
btn.setAttribute('data-state', 'start'); btn.setAttribute('data-state', 'start');
} }
else { else {
L.Poll.add(this.pollFn); poll.add(this.pollFn);
btn.firstChild.data = _('Stop refresh'); btn.firstChild.data = _('Stop refresh');
btn.setAttribute('data-state', 'stop'); btn.setAttribute('data-state', 'stop');
btn.classList.add('spinning'); btn.classList.add('spinning');
@ -1733,14 +1736,14 @@ return L.view.extend({
}; };
s.handleScanAbort = function(ev) { s.handleScanAbort = function(ev) {
var md = L.dom.parent(ev.target, 'div[aria-modal="true"]'); var md = dom.parent(ev.target, 'div[aria-modal="true"]');
if (md) { if (md) {
md.style.maxWidth = ''; md.style.maxWidth = '';
md.style.maxHeight = ''; md.style.maxHeight = '';
} }
ui.hideModal(); ui.hideModal();
L.Poll.remove(this.pollFn); poll.remove(this.pollFn);
this.pollFn = null; this.pollFn = null;
}; };
@ -1960,7 +1963,7 @@ return L.view.extend({
}; };
return m.render().then(L.bind(function(m, nodes) { return m.render().then(L.bind(function(m, nodes) {
L.Poll.add(L.bind(function() { poll.add(L.bind(function() {
var section_ids = m.children[0].cfgsections(), var section_ids = m.children[0].cfgsections(),
tasks = [ network.getHostHints(), network.getWifiDevices() ]; tasks = [ network.getHostHints(), network.getWifiDevices() ];

View file

@ -1,4 +1,8 @@
'use strict'; 'use strict';
'require view';
'require dom';
'require poll';
'require request';
'require ui'; 'require ui';
'require rpc'; 'require rpc';
'require network'; 'require network';
@ -20,7 +24,7 @@ function rate(n, br) {
return [ '%1024.2mbit/s'.format(n * 8), br ? E('br') : ' ', '(%1024.2mB/s)'.format(n) ] return [ '%1024.2mbit/s'.format(n * 8), br ? E('br') : ' ', '(%1024.2mB/s)'.format(n) ]
} }
return L.view.extend({ return view.extend({
load: function() { load: function() {
return Promise.all([ return Promise.all([
this.loadSVG(L.resource('bandwidth.svg')), this.loadSVG(L.resource('bandwidth.svg')),
@ -95,7 +99,7 @@ return L.view.extend({
}, },
pollData: function() { pollData: function() {
L.Poll.add(L.bind(function() { poll.add(L.bind(function() {
var tasks = []; var tasks = [];
for (var i = 0; i < graphPolls.length; i++) { for (var i = 0; i < graphPolls.length; i++) {
@ -227,7 +231,7 @@ return L.view.extend({
}, },
loadSVG: function(src) { loadSVG: function(src) {
return L.Request.get(src).then(function(response) { return request.get(src).then(function(response) {
if (!response.ok) if (!response.ok)
throw new Error(response.statusText); throw new Error(response.statusText);
@ -289,13 +293,13 @@ return L.view.extend({
tab.querySelector('#scale').firstChild.data = _('(%d minute window, %d second interval)').format(info.timeframe, info.interval); tab.querySelector('#scale').firstChild.data = _('(%d minute window, %d second interval)').format(info.timeframe, info.interval);
L.dom.content(tab.querySelector('#rx_bw_cur'), rate(info.line_current[0], true)); dom.content(tab.querySelector('#rx_bw_cur'), rate(info.line_current[0], true));
L.dom.content(tab.querySelector('#rx_bw_avg'), rate(info.line_average[0], true)); dom.content(tab.querySelector('#rx_bw_avg'), rate(info.line_average[0], true));
L.dom.content(tab.querySelector('#rx_bw_peak'), rate(info.line_peak[0], true)); dom.content(tab.querySelector('#rx_bw_peak'), rate(info.line_peak[0], true));
L.dom.content(tab.querySelector('#tx_bw_cur'), rate(info.line_current[1], true)); dom.content(tab.querySelector('#tx_bw_cur'), rate(info.line_current[1], true));
L.dom.content(tab.querySelector('#tx_bw_avg'), rate(info.line_average[1], true)); dom.content(tab.querySelector('#tx_bw_avg'), rate(info.line_average[1], true));
L.dom.content(tab.querySelector('#tx_bw_peak'), rate(info.line_peak[1], true)); dom.content(tab.querySelector('#tx_bw_peak'), rate(info.line_peak[1], true));
}); });
} }

View file

@ -1,4 +1,7 @@
'use strict'; 'use strict';
'require view';
'require poll';
'require request';
'require rpc'; 'require rpc';
var callLuciRealtimeStats = rpc.declare({ var callLuciRealtimeStats = rpc.declare({
@ -30,7 +33,7 @@ var recheck_lookup_queue = {};
Math.log2 = Math.log2 || function(x) { return Math.log(x) * Math.LOG2E; }; Math.log2 = Math.log2 || function(x) { return Math.log(x) * Math.LOG2E; };
return L.view.extend({ return view.extend({
load: function() { load: function() {
return Promise.all([ return Promise.all([
this.loadSVG(L.resource('connections.svg')) this.loadSVG(L.resource('connections.svg'))
@ -177,7 +180,7 @@ return L.view.extend({
}, },
pollData: function() { pollData: function() {
L.Poll.add(L.bind(function() { poll.add(L.bind(function() {
var tasks = [ var tasks = [
L.resolveDefault(callLuciConntrackList(), []) L.resolveDefault(callLuciConntrackList(), [])
]; ];
@ -300,7 +303,7 @@ return L.view.extend({
}, },
loadSVG: function(src) { loadSVG: function(src) {
return L.Request.get(src).then(function(response) { return request.get(src).then(function(response) {
if (!response.ok) if (!response.ok)
throw new Error(response.statusText); throw new Error(response.statusText);

View file

@ -1,8 +1,9 @@
'use strict'; 'use strict';
'require view';
'require fs'; 'require fs';
'require ui'; 'require ui';
return L.view.extend({ return view.extend({
load: function() { load: function() {
return fs.exec_direct('/bin/dmesg', [ '-r' ]).catch(function(err) { return fs.exec_direct('/bin/dmesg', [ '-r' ]).catch(function(err) {
ui.addNotification(null, E('p', {}, _('Unable to load log data: ' + err.message))); ui.addNotification(null, E('p', {}, _('Unable to load log data: ' + err.message)));

View file

@ -1,4 +1,5 @@
'use strict'; 'use strict';
'require baseclass';
'require fs'; 'require fs';
'require rpc'; 'require rpc';
@ -12,7 +13,7 @@ var callSystemInfo = rpc.declare({
method: 'info' method: 'info'
}); });
return L.Class.extend({ return baseclass.extend({
title: _('System'), title: _('System'),
load: function() { load: function() {

View file

@ -1,4 +1,5 @@
'use strict'; 'use strict';
'require baseclass';
'require rpc'; 'require rpc';
var callSystemInfo = rpc.declare({ var callSystemInfo = rpc.declare({
@ -19,7 +20,7 @@ function progressbar(value, max, byte) {
}, E('div', { 'style': 'width:%.2f%%'.format(pc) })); }, E('div', { 'style': 'width:%.2f%%'.format(pc) }));
} }
return L.Class.extend({ return baseclass.extend({
title: _('Memory'), title: _('Memory'),
load: function() { load: function() {

View file

@ -1,4 +1,5 @@
'use strict'; 'use strict';
'require baseclass';
'require fs'; 'require fs';
'require network'; 'require network';
@ -58,7 +59,7 @@ function renderbox(ifc, ipv6) {
]); ]);
} }
return L.Class.extend({ return baseclass.extend({
title: _('Network'), title: _('Network'),
load: function() { load: function() {

View file

@ -1,4 +1,5 @@
'use strict'; 'use strict';
'require baseclass';
'require rpc'; 'require rpc';
'require network'; 'require network';
@ -8,7 +9,7 @@ var callLuciDHCPLeases = rpc.declare({
expect: { '': {} } expect: { '': {} }
}); });
return L.Class.extend({ return baseclass.extend({
title: '', title: '',
load: function() { load: function() {

View file

@ -1,4 +1,5 @@
'use strict'; 'use strict';
'require baseclass';
'require rpc'; 'require rpc';
var callLuciDSLStatus = rpc.declare({ var callLuciDSLStatus = rpc.declare({
@ -40,7 +41,7 @@ function renderbox(dsl) {
]); ]);
} }
return L.Class.extend({ return baseclass.extend({
title: _('DSL'), title: _('DSL'),
load: function() { load: function() {

View file

@ -1,4 +1,6 @@
'use strict'; 'use strict';
'require baseclass';
'require dom';
'require network'; 'require network';
function renderbox(radio, networks) { function renderbox(radio, networks) {
@ -73,11 +75,11 @@ function wifirate(rt) {
return s; return s;
} }
return L.Class.extend({ return baseclass.extend({
title: _('Wireless'), title: _('Wireless'),
handleDelClient: function(wifinet, mac, ev) { handleDelClient: function(wifinet, mac, ev) {
L.dom.parent(ev.currentTarget, '.tr').style.opacity = 0.5; dom.parent(ev.currentTarget, '.tr').style.opacity = 0.5;
ev.currentTarget.classList.add('spinning'); ev.currentTarget.classList.add('spinning');
ev.currentTarget.disabled = true; ev.currentTarget.disabled = true;
ev.currentTarget.blur(); ev.currentTarget.blur();

View file

@ -1,4 +1,7 @@
'use strict'; 'use strict';
'require view';
'require dom';
'require poll';
'require fs'; 'require fs';
'require network'; 'require network';
@ -35,7 +38,7 @@ function startPolling(includes, containers) {
containers[i].parentNode.style.display = ''; containers[i].parentNode.style.display = '';
containers[i].parentNode.classList.add('fade-in'); containers[i].parentNode.classList.add('fade-in');
L.dom.content(containers[i], content); dom.content(containers[i], content);
} }
} }
@ -48,11 +51,11 @@ function startPolling(includes, containers) {
}; };
return step().then(function() { return step().then(function() {
L.Poll.add(step); poll.add(step);
}); });
} }
return L.view.extend({ return view.extend({
load: function() { load: function() {
return L.resolveDefault(fs.list('/www' + L.resource('view/status/include')), []).then(function(entries) { return L.resolveDefault(fs.list('/www' + L.resource('view/status/include')), []).then(function(entries) {
return Promise.all(entries.filter(function(e) { return Promise.all(entries.filter(function(e) {

View file

@ -1,10 +1,12 @@
'use strict'; 'use strict';
'require view';
'require poll';
'require fs'; 'require fs';
'require ui'; 'require ui';
var table_names = [ 'Filter', 'NAT', 'Mangle', 'Raw' ]; var table_names = [ 'Filter', 'NAT', 'Mangle', 'Raw' ];
return L.view.extend({ return view.extend({
load: function() { load: function() {
return L.resolveDefault(fs.stat('/usr/sbin/ip6tables')); return L.resolveDefault(fs.stat('/usr/sbin/ip6tables'));
}, },
@ -215,7 +217,7 @@ return L.view.extend({
if (has_ip6tables) if (has_ip6tables)
cmds.push('/usr/sbin/ip6tables'); cmds.push('/usr/sbin/ip6tables');
L.Poll.add(L.bind(function() { poll.add(L.bind(function() {
var tasks = []; var tasks = [];
for (var i = 0; i < cmds.length; i++) { for (var i = 0; i < cmds.length; i++) {

View file

@ -1,4 +1,7 @@
'use strict'; 'use strict';
'require view';
'require poll';
'require request';
'require rpc'; 'require rpc';
var callLuciRealtimeStats = rpc.declare({ var callLuciRealtimeStats = rpc.declare({
@ -13,7 +16,7 @@ var graphPolls = [],
Math.log2 = Math.log2 || function(x) { return Math.log(x) * Math.LOG2E; }; Math.log2 = Math.log2 || function(x) { return Math.log(x) * Math.LOG2E; };
return L.view.extend({ return view.extend({
load: function() { load: function() {
return Promise.all([ return Promise.all([
this.loadSVG(L.resource('load.svg')) this.loadSVG(L.resource('load.svg'))
@ -86,7 +89,7 @@ return L.view.extend({
}, },
pollData: function() { pollData: function() {
L.Poll.add(L.bind(function() { poll.add(L.bind(function() {
var tasks = []; var tasks = [];
for (var i = 0; i < graphPolls.length; i++) { for (var i = 0; i < graphPolls.length; i++) {
@ -205,7 +208,7 @@ return L.view.extend({
}, },
loadSVG: function(src) { loadSVG: function(src) {
return L.Request.get(src).then(function(response) { return request.get(src).then(function(response) {
if (!response.ok) if (!response.ok)
throw new Error(response.statusText); throw new Error(response.statusText);

View file

@ -1,4 +1,5 @@
'use strict'; 'use strict';
'require view';
'require fs'; 'require fs';
'require ui'; 'require ui';
'require rpc'; 'require rpc';
@ -9,7 +10,7 @@ var callLuciProcessList = rpc.declare({
expect: { result: [] } expect: { result: [] }
}); });
return L.view.extend({ return view.extend({
load: function() { load: function() {
return callLuciProcessList(); return callLuciProcessList();
}, },

View file

@ -1,4 +1,5 @@
'use strict'; 'use strict';
'require view';
'require fs'; 'require fs';
'require rpc'; 'require rpc';
'require validation'; 'require validation';
@ -25,7 +26,7 @@ function applyMask(addr, mask, v6) {
v6 ? '%x:%x:%x:%x:%x:%x:%x:%x' : '%d.%d.%d.%d', words); v6 ? '%x:%x:%x:%x:%x:%x:%x:%x' : '%d.%d.%d.%d', words);
} }
return L.view.extend({ return view.extend({
load: function() { load: function() {
return Promise.all([ return Promise.all([
callNetworkInterfaceDump(), callNetworkInterfaceDump(),

View file

@ -1,8 +1,9 @@
'use strict'; 'use strict';
'require view';
'require fs'; 'require fs';
'require ui'; 'require ui';
return L.view.extend({ return view.extend({
load: function() { load: function() {
return fs.exec_direct('/sbin/logread', [ '-e', '^' ]).catch(function(err) { return fs.exec_direct('/sbin/logread', [ '-e', '^' ]).catch(function(err) {
ui.addNotification(null, E('p', {}, _('Unable to load log data: ' + err.message))); ui.addNotification(null, E('p', {}, _('Unable to load log data: ' + err.message)));

View file

@ -1,4 +1,7 @@
'use strict'; 'use strict';
'require view';
'require poll';
'require request';
'require ui'; 'require ui';
'require rpc'; 'require rpc';
'require network'; 'require network';
@ -15,7 +18,7 @@ var graphPolls = [],
Math.log2 = Math.log2 || function(x) { return Math.log(x) * Math.LOG2E; }; Math.log2 = Math.log2 || function(x) { return Math.log(x) * Math.LOG2E; };
return L.view.extend({ return view.extend({
load: function() { load: function() {
return Promise.all([ return Promise.all([
this.loadSVG(L.resource('wireless.svg')), this.loadSVG(L.resource('wireless.svg')),
@ -102,7 +105,7 @@ return L.view.extend({
}, },
pollData: function() { pollData: function() {
L.Poll.add(L.bind(function() { poll.add(L.bind(function() {
var tasks = []; var tasks = [];
for (var i = 0; i < graphPolls.length; i++) { for (var i = 0; i < graphPolls.length; i++) {
@ -221,7 +224,7 @@ return L.view.extend({
}, },
loadSVG: function(src) { loadSVG: function(src) {
return L.Request.get(src).then(function(response) { return request.get(src).then(function(response) {
if (!response.ok) if (!response.ok)
throw new Error(response.statusText); throw new Error(response.statusText);

View file

@ -70,7 +70,7 @@ function renderBadge(icon, title) {
</div> </div>
<script type="text/javascript">L.require('view.status.index').catch(function(err) { <script type="text/javascript">L.require('view.status.index').catch(function(err) {
L.dom.content(document.querySelector('#view'), null); dom.content(document.querySelector('#view'), null);
L.error(err); L.error(err);
});</script> });</script>

View file

@ -1,8 +1,9 @@
'use strict'; 'use strict';
'require view';
'require fs'; 'require fs';
'require ui'; 'require ui';
return L.view.extend({ return view.extend({
load: function() { load: function() {
return L.resolveDefault(fs.read('/etc/crontabs/root'), ''); return L.resolveDefault(fs.read('/etc/crontabs/root'), '');
}, },

View file

@ -1,8 +1,9 @@
'use strict'; 'use strict';
'require view';
'require form'; 'require form';
'require tools.widgets as widgets'; 'require tools.widgets as widgets';
return L.view.extend({ return view.extend({
render: function() { render: function() {
var m, s, o; var m, s, o;

View file

@ -1,4 +1,6 @@
'use strict'; 'use strict';
'require view';
'require dom';
'require form'; 'require form';
'require rpc'; 'require rpc';
'require fs'; 'require fs';
@ -60,7 +62,7 @@ function findStorageSize(procmtd, procpart) {
var mapdata = { actions: {}, config: {} }; var mapdata = { actions: {}, config: {} };
return L.view.extend({ return view.extend({
load: function() { load: function() {
var tasks = [ var tasks = [
L.resolveDefault(fs.stat('/lib/upgrade/platform.sh'), {}), L.resolveDefault(fs.stat('/lib/upgrade/platform.sh'), {}),
@ -166,7 +168,7 @@ return L.view.extend({
}, },
handleBlock: function(hostname, ev) { handleBlock: function(hostname, ev) {
var mtdblock = L.dom.parent(ev.target, '.cbi-section').querySelector('[data-name="mtdselect"] select').value; var mtdblock = dom.parent(ev.target, '.cbi-section').querySelector('[data-name="mtdselect"] select').value;
var form = E('form', { var form = E('form', {
'method': 'post', 'method': 'post',
'action': L.env.cgi_base + '/cgi-download', 'action': L.env.cgi_base + '/cgi-download',

View file

@ -1,4 +1,5 @@
'use strict'; 'use strict';
'require view';
'require uci'; 'require uci';
'require rpc'; 'require rpc';
'require form'; 'require form';
@ -18,7 +19,7 @@ callUSB = rpc.declare({
expect: { '': {} } expect: { '': {} }
}); });
return L.view.extend({ return view.extend({
load: function() { load: function() {
return Promise.all([ return Promise.all([
callLeds(), callLeds(),

View file

@ -1,4 +1,5 @@
'use strict'; 'use strict';
'require view';
'require fs'; 'require fs';
'require ui'; 'require ui';
'require uci'; 'require uci';
@ -69,7 +70,7 @@ function device_textvalue(devices, section_id) {
} }
} }
return L.view.extend({ return view.extend({
handleDetect: function(m, ev) { handleDetect: function(m, ev) {
return callBlockDetect() return callBlockDetect()
.then(L.bind(uci.unload, uci, 'fstab')) .then(L.bind(uci.unload, uci, 'fstab'))

View file

@ -1,4 +1,6 @@
'use strict'; 'use strict';
'require view';
'require dom';
'require ui'; 'require ui';
'require form'; 'require form';
'require rpc'; 'require rpc';
@ -17,7 +19,7 @@ var callSetPassword = rpc.declare({
expect: { result: false } expect: { result: false }
}); });
return L.view.extend({ return view.extend({
checkPassword: function(section_id, value) { checkPassword: function(section_id, value) {
var strength = document.querySelector('.cbi-value-description'), var strength = document.querySelector('.cbi-value-description'),
strongRegex = new RegExp("^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g"), strongRegex = new RegExp("^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g"),
@ -67,7 +69,7 @@ return L.view.extend({
handleSave: function() { handleSave: function() {
var map = document.querySelector('.cbi-map'); var map = document.querySelector('.cbi-map');
return L.dom.callClassMethod(map, 'save').then(function() { return dom.callClassMethod(map, 'save').then(function() {
if (formData.password.pw1 == null || formData.password.pw1.length == 0) if (formData.password.pw1 == null || formData.password.pw1.length == 0)
return; return;
@ -85,7 +87,7 @@ return L.view.extend({
formData.password.pw1 = null; formData.password.pw1 = null;
formData.password.pw2 = null; formData.password.pw2 = null;
L.dom.callClassMethod(map, 'render'); dom.callClassMethod(map, 'render');
}); });
}); });
}, },

View file

@ -1,9 +1,10 @@
'use strict'; 'use strict';
'require view';
'require fs'; 'require fs';
'require ui'; 'require ui';
'require uci'; 'require uci';
return L.view.extend({ return view.extend({
load: function() { load: function() {
return uci.changes(); return uci.changes();
}, },

View file

@ -1,4 +1,5 @@
'use strict'; 'use strict';
'require view';
'require fs'; 'require fs';
'require ui'; 'require ui';
@ -213,7 +214,7 @@ function handleWindowDragDropIgnore(ev) {
ev.preventDefault() ev.preventDefault()
} }
return L.view.extend({ return view.extend({
load: function() { load: function() {
return fs.lines('/etc/dropbear/authorized_keys').then(function(lines) { return fs.lines('/etc/dropbear/authorized_keys').then(function(lines) {
return lines.filter(function(line) { return lines.filter(function(line) {

View file

@ -1,9 +1,10 @@
'use strict'; 'use strict';
'require view';
'require rpc'; 'require rpc';
'require fs'; 'require fs';
'require ui'; 'require ui';
return L.view.extend({ return view.extend({
callInitList: rpc.declare({ callInitList: rpc.declare({
object: 'luci', object: 'luci',
method: 'getInitList', method: 'getInitList',

View file

@ -1,4 +1,6 @@
'use strict'; 'use strict';
'require view';
'require poll';
'require ui'; 'require ui';
'require uci'; 'require uci';
'require rpc'; 'require rpc';
@ -74,7 +76,7 @@ CBILocalTime = form.DummyValue.extend({
}, },
}); });
return L.view.extend({ return view.extend({
load: function() { load: function() {
return Promise.all([ return Promise.all([
callInitList('sysntpd'), callInitList('sysntpd'),
@ -277,7 +279,7 @@ return L.view.extend({
} }
return m.render().then(function(mapEl) { return m.render().then(function(mapEl) {
L.Poll.add(function() { poll.add(function() {
return callGetLocaltime().then(function(t) { return callGetLocaltime().then(function(t) {
mapEl.querySelector('#localtime').value = new Date(t * 1000).toLocaleString(); mapEl.querySelector('#localtime').value = new Date(t * 1000).toLocaleString();
}); });