luci-mod-network: fix device dependencies in add interface dialog
authorJo-Philipp Wich <jo@mein.io>
Mon, 31 May 2021 09:50:56 +0000 (11:50 +0200)
committerJo-Philipp Wich <jo@mein.io>
Sat, 12 Jun 2021 17:22:53 +0000 (19:22 +0200)
Commit b7f3cf66ca "luci-mod-network: drop support for *adding* legacy bridges"
dropped the protocol dependcies of the ifname/device selector in the add new
interface dialog.

Re-add the required dependencies and swap the order of the protocol and
device inputs while we're at it since latter depends on the former.

Fixes: b7f3cf66ca ("luci-mod-network: drop support for *adding* legacy bridges")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 147188f6ee7067119746ffc2a505ef8f4eb8943a)

modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js

index 64aa96090ce643a17b73a2e0e75c8c275ae68951..fc1e42fa401b682bb982827b749604cd3012312d 100644 (file)
@@ -960,15 +960,18 @@ return view.extend({
                                return true;
                        };
 
+                       proto = s2.option(form.ListValue, 'proto', _('Protocol'));
+                       proto.validate = name.validate;
+
                        device = s2.option(widgets.DeviceSelect, 'device', _('Device'));
                        device.noaliases = false;
                        device.optional = false;
 
-                       proto = s2.option(form.ListValue, 'proto', _('Protocol'));
-                       proto.validate = name.validate;
-
                        for (var i = 0; i < protocols.length; i++) {
                                proto.value(protocols[i].getProtocol(), protocols[i].getI18n());
+
+                               if (!protocols[i].isVirtual())
+                                       device.depends('proto', protocols[i].getProtocol());
                        }
 
                        m2.render().then(L.bind(function(nodes) {