luci-mod-network: wifi scan: add button to start/stop refreshes

Fixes: #3662
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
Jo-Philipp Wich 2020-02-21 21:09:45 +01:00
parent 9b024767d7
commit a2fe3d9fc4

View file

@ -1744,27 +1744,37 @@ return L.view.extend({
])
]);
var stop = E('button', {
'class': 'btn',
'click': L.bind(this.handleScanStartStop, this),
'style': 'display:none',
'data-state': 'stop'
}, _('Stop refresh'));
cbi_update_table(table, [], E('em', { class: 'spinning' }, _('Starting wireless scan...')));
var md = ui.showModal(_('Join Network: Wireless Scan'), [
table,
E('div', { 'class': 'right' },
E('div', { 'class': 'right' }, [
stop,
' ',
E('button', {
'class': 'btn',
'click': L.bind(this.handleScanAbort, this)
}, _('Dismiss')))
}, _('Dismiss'))
])
]);
md.style.maxWidth = '90%';
md.style.maxHeight = 'none';
this.pollFn = L.bind(this.handleScanRefresh, this, radioDev, {}, table);
this.pollFn = L.bind(this.handleScanRefresh, this, radioDev, {}, table, stop);
L.Poll.add(this.pollFn);
L.Poll.start();
};
s.handleScanRefresh = function(radioDev, scanCache, table) {
s.handleScanRefresh = function(radioDev, scanCache, table, stop) {
return radioDev.getScanList().then(L.bind(function(results) {
var rows = [];
@ -1816,9 +1826,30 @@ return L.view.extend({
}
cbi_update_table(table, rows);
stop.disabled = false;
stop.style.display = '';
stop.classList.remove('spinning');
}, this));
};
s.handleScanStartStop = function(ev) {
var btn = ev.currentTarget;
if (btn.getAttribute('data-state') == 'stop') {
L.Poll.remove(this.pollFn);
btn.firstChild.data = _('Start refresh');
btn.setAttribute('data-state', 'start');
}
else {
L.Poll.add(this.pollFn);
btn.firstChild.data = _('Stop refresh');
btn.setAttribute('data-state', 'stop');
btn.classList.add('spinning');
btn.disabled = true;
}
};
s.handleScanAbort = function(ev) {
var md = L.dom.parent(ev.target, 'div[aria-modal="true"]');
if (md) {