luci-base: widgets shall show devices that are online as online
authorPaul Donald <[email protected]>
Wed, 23 Apr 2025 12:03:28 +0000 (14:03 +0200)
committerPaul Donald <[email protected]>
Wed, 23 Apr 2025 12:26:37 +0000 (14:26 +0200)
Tunnel devices which are up, show as down, since they don't have access
to any device status. The 'device' being enumerated is e.g.
'wireguard_wg0', a configuration for a tunnel interface, whose parent
is an 'ethernet' type.

That's a bug for another day. So they shall get parent device status.

Signed-off-by: Paul Donald <[email protected]>
(cherry picked from commit 832680bb84d18132d04f424b7d70ce18d62e1150)

modules/luci-base/htdocs/luci-static/resources/tools/widgets.js

index 14948bbf0f8f9764f286e086ad9d7ad3b1a5b4be..ab777ba428e1f4dd3b47b382ef068dbbfccf9843 100644 (file)
@@ -102,7 +102,7 @@ var CBIZoneSelect = form.ListValue.extend({
                                        continue;
 
                                var span = E('span', {
-                                       'class': 'ifacebadge' + (network.getName() == this.network ? ' ifacebadge-active' : '')
+                                       'class': 'ifacebadge' + (network.isUp() ? ' ifacebadge-active' : '')
                                }, network.getName() + ': ');
 
                                var devices = network.isBridge() ? network.getDevices() : L.toArray(network.getDevice());
@@ -110,7 +110,7 @@ var CBIZoneSelect = form.ListValue.extend({
                                for (var k = 0; k < devices.length; k++) {
                                        span.appendChild(E('img', {
                                                'title': devices[k].getI18n(),
-                                               'src': L.resource('icons/%s%s.png'.format(devices[k].getType(), devices[k].isUp() ? '' : '_disabled'))
+                                               'src': L.resource('icons/%s%s.png'.format(devices[k].getType(), network.isUp() ? '' : '_disabled'))
                                        }));
                                }
 
@@ -243,7 +243,7 @@ var CBIZoneForwards = form.DummyValue.extend({
                                continue;
 
                        var span = E('span', {
-                               'class': 'ifacebadge' + (network.getName() == this.network ? ' ifacebadge-active' : '')
+                               'class': 'ifacebadge' + (network.isUp() ? ' ifacebadge-active' : '')
                        }, network.getName() + ': ');
 
                        var subdevs = network.isBridge() ? network.getDevices() : L.toArray(network.getDevice());
@@ -251,7 +251,7 @@ var CBIZoneForwards = form.DummyValue.extend({
                        for (var k = 0; k < subdevs.length && subdevs[k]; k++) {
                                span.appendChild(E('img', {
                                        'title': subdevs[k].getI18n(),
-                                       'src': L.resource('icons/%s%s.png'.format(subdevs[k].getType(), subdevs[k].isUp() ? '' : '_disabled'))
+                                       'src': L.resource('icons/%s%s.png'.format(subdevs[k].getType(), network.isUp() ? '' : '_disabled'))
                                }));
                        }
 
@@ -522,7 +522,7 @@ var CBIDeviceSelect = form.ListValue.extend({
                                var item = E([
                                        E('img', {
                                                'title': device.getI18n(),
-                                               'src': L.resource('icons/alias%s.png'.format(net.isUp() ? '' : '_disabled'))
+                                               'src': L.resource('icons/alias%s.png'.format(device.isUp() ? '' : '_disabled'))
                                        }),
                                        E('span', { 'class': 'hide-open' }, [ name ]),
                                        E('span', { 'class': 'hide-close'}, [ device.getI18n() ])