luci-mod-network: properly handle wireless devices when adding interfaces

Wireless device names must not be added as list/option ifname, but the
network must be backreferenced in config wifi-iface instead in these
cases.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(backported from commit 7b5b7fbcd6)
This commit is contained in:
Jo-Philipp Wich 2020-12-12 12:15:33 +01:00
parent 0386a295d7
commit 6ba9740b61

View file

@ -763,22 +763,25 @@ return view.extend({
'class': 'cbi-button cbi-button-positive important',
'click': ui.createHandlerFn(this, function(ev) {
var nameval = name.isValid('_new_') ? name.formvalue('_new_') : null,
protoval = proto.isValid('_new_') ? proto.formvalue('_new_') : null;
protoval = proto.isValid('_new_') ? proto.formvalue('_new_') : null,
protoclass = protoval ? network.getProtocol(protoval, nameval) : null;
if (nameval == null || protoval == null || nameval == '' || protoval == '')
return;
return m.save(function() {
var section_id = uci.add('network', 'interface', nameval);
uci.add('network', 'interface', nameval);
uci.set('network', section_id, 'proto', protoval);
protoclass.set('proto', protoval);
if (ifname_single.isActive('_new_')) {
uci.set('network', section_id, 'ifname', ifname_single.formvalue('_new_'));
protoclass.addDevice(ifname_single.formvalue('_new_'));
}
else if (ifname_multi.isActive('_new_')) {
uci.set('network', section_id, 'type', 'bridge');
uci.set('network', section_id, 'ifname', L.toArray(ifname_multi.formvalue('_new_')).join(' '));
protoclass.set('type', 'bridge');
L.toArray(ifname_multi.formvalue('_new_')).map(function(dev) {
protoclass.addDevice(dev);
});
}
}).then(L.bind(m.children[0].renderMoreOptionsModal, m.children[0], nameval));
})