diff options
Diffstat (limited to 'protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js')
-rw-r--r-- | protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js | 44 |
1 files changed, 7 insertions, 37 deletions
diff --git a/protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js b/protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js index 501f759646..34b71addd6 100644 --- a/protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js +++ b/protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js @@ -2,39 +2,7 @@ 'require fs'; 'require form'; 'require network'; - -function getModemList() { - return fs.exec_direct('/usr/bin/mmcli', [ '-L' ]).then(function(res) { - var lines = (res || '').split(/\n/), - tasks = []; - - for (var i = 0; i < lines.length; i++) { - var m = lines[i].match(/\/Modem\/(\d+)/); - if (m) - tasks.push(fs.exec_direct('/usr/bin/mmcli', [ '-m', m[1] ])); - } - - return Promise.all(tasks).then(function(res) { - var modems = []; - - for (var i = 0; i < res.length; i++) { - var man = res[i].match(/manufacturer: ([^\n]+)/), - mod = res[i].match(/model: ([^\n]+)/), - dev = res[i].match(/device: ([^\n]+)/); - - if (dev) { - modems.push({ - device: dev[1].trim(), - manufacturer: (man ? man[1].trim() : '') || '?', - model: (mod ? mod[1].trim() : '') || dev[1].trim() - }); - } - } - - return modems; - }); - }); -} +'require modemmanager_helper as helper'; network.registerPatternVirtual(/^mobiledata-.+$/); network.registerErrorCode('MM_CONNECT_FAILED', _('Connection attempt failed.')); @@ -83,10 +51,12 @@ return network.registerProtocol('modemmanager', { o.ucioption = 'device'; o.rmempty = false; o.load = function(section_id) { - return getModemList().then(L.bind(function(devices) { - for (var i = 0; i < devices.length; i++) - this.value(devices[i].device, - '%s - %s'.format(devices[i].manufacturer, devices[i].model)); + return helper.getModems().then(L.bind(function(devices) { + for (var i = 0; i < devices.length; i++) { + var generic = devices[i].modem.generic; + this.value(generic.device, + '%s - %s'.format(generic.manufacturer, generic.model)); + } return form.Value.prototype.load.apply(this, [section_id]); }, this)); }; |