luci-mod-network: make device selector dependent on protocol (again)
authorJo-Philipp Wich <jo@mein.io>
Mon, 31 May 2021 12:00:51 +0000 (14:00 +0200)
committerJo-Philipp Wich <jo@mein.io>
Sat, 12 Jun 2021 17:22:57 +0000 (19:22 +0200)
This commit effectively reverts the change made with
907b4222f7 ("luci-mod-network: don't hide "Device" on protocol change").

Floating tunnel protocols such as 6in4, plain PPP over modem device,
VPNC etc. do not have any layer 2 device at all, for such protocols the
device selector should be hidden.

Also swap back the incorrect option order introduced with commit
b7f3cf66ca ("luci-mod-network: drop support for *adding* legacy bridges").

Since device depends on proto, it should come after the protocol selection,
not before.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit fc12933670ba9efd87a24b6823cf57a666b54c1a)

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

index fc1e42fa401b682bb982827b749604cd3012312d..11d96eecb37fe09900a0e206e0b6af219c0a9fd5 100644 (file)
@@ -505,10 +505,6 @@ return view.extend({
                                }, this);
                                o.write = function() {};
 
-                               o = s.taboption('general', widgets.DeviceSelect, 'device', _('Device'));
-                               o.nobridges = false;
-                               o.optional = false;
-                               o.network = ifc.getName();
 
                                proto_select = s.taboption('general', form.ListValue, 'proto', _('Protocol'));
                                proto_select.modalonly = true;
@@ -525,6 +521,11 @@ return view.extend({
                                                .then(L.bind(this.renderMoreOptionsModal, this, s.section));
                                }, this);
 
+                               o = s.taboption('general', widgets.DeviceSelect, 'device', _('Device'));
+                               o.nobridges = false;
+                               o.optional = false;
+                               o.network = ifc.getName();
+
                                o = s.taboption('general', form.Flag, 'auto', _('Bring up on boot'));
                                o.modalonly = true;
                                o.default = o.enabled;
@@ -876,7 +877,6 @@ return view.extend({
                                        o = s.children[i];
 
                                        switch (o.option) {
-                                       case 'device':
                                        case 'proto':
                                        case 'auto':
                                        case '_dhcp':
@@ -888,6 +888,7 @@ return view.extend({
                                        case 'igmp_snooping':
                                        case 'stp':
                                        case 'type':
+                                       case 'device':
                                                var deps = [];
                                                for (var j = 0; j < protocols.length; j++) {
                                                        if (!protocols[j].isVirtual()) {