summaryrefslogtreecommitdiffhomepage
path: root/modules/luci-mod-network/htdocs
diff options
context:
space:
mode:
authorJo-Philipp Wich <jo@mein.io>2020-02-21 21:09:45 +0100
committerJo-Philipp Wich <jo@mein.io>2020-02-21 21:09:45 +0100
commita2fe3d9fc4f967b9d79346f358aaaf12eeb1e040 (patch)
tree0138053251028498c018ca96b74094cebb5f451b /modules/luci-mod-network/htdocs
parent9b024767d7604c5a17b1e70df45231f134282003 (diff)
luci-mod-network: wifi scan: add button to start/stop refreshes
Fixes: #3662 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Diffstat (limited to 'modules/luci-mod-network/htdocs')
-rw-r--r--modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js39
1 files changed, 35 insertions, 4 deletions
diff --git a/modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js b/modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js
index a4de1c17c..1aafb2b77 100644
--- a/modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js
+++ b/modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js
@@ -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) {