summaryrefslogtreecommitdiffhomepage
path: root/modules/luci-mod-network/htdocs
diff options
context:
space:
mode:
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 a4de1c17c0..1aafb2b77a 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) {