luci-mod-network: correctness fixes
authorPaul Donald <redacted>
Tue, 26 May 2026 14:30:59 +0000 (17:30 +0300)
committerPaul Donald <redacted>
Wed, 27 May 2026 12:49:46 +0000 (15:49 +0300)
Signed-off-by: Paul Donald <redacted>
modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js
modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js
modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js

index d4774bbadd059917bb3be13e28b34eef2e8cd28a..1eaa6ada95a100fb0c8b8794926361ff7ff3d185 100644 (file)
@@ -197,7 +197,7 @@ function expandAndFormatMAC(macs) {
        return result.length ? result : null;
 }
 
-function isValidMAC(sid, s) {
+function isValidMAC(s) {
        if (!s) return true;
 
        for (const mac of L.toArray(s))
@@ -1002,7 +1002,7 @@ return view.extend({
                                        return _('The MAC address %h is already used by another static lease in the same DHCP pool')
                                                .format(host_macs.find(lm => this_macs.includes(lm)));
                        }
-                       return isValidMAC(section_id, value);
+                       return isValidMAC(value);
                }
                Object.keys(hosts).forEach(function(mac) {
                        let vendor;
index 857585667d4a0667d844f878d445c035d5db793e..77cefe86cbf318bc56cbb1681432f47f88057bca 100644 (file)
@@ -115,7 +115,7 @@ function render_modal_status(node, ifc) {
 
        dom.content(node, [
                E('img', {
-                       'src': L.resource('icons/%s%s.svg').format(dev ? dev.getType() : 'ethernet', ifc.isUp() ? '' : '_disabled'),
+                       'src': L.resource('icons/%s%s.svg').format(dev ? dev.getType() : 'ethernet', ifc && ifc.isUp() ? '' : '_disabled'),
                        'title': dev ? dev.getTypeI18n() : _('Not present')
                }),
                ifc ? render_status(E('span'), ifc, true) : E('em', _('Interface not present or not connected yet.'))
index a9ab42c791f4347b5e53ffe8ef0f31ea94f9015c..975002c0b2859392fe27b3a79a78b0addcdec09b 100644 (file)
@@ -679,6 +679,7 @@ return view.extend({
                        const badge = row.querySelector('[data-name="_badge"] > div');
                        const stat = row.querySelector('[data-name="_stat"]');
                        const btns = row.querySelectorAll('.cbi-section-actions button');
+                       if (btns.length < 3) return;
                        const busy = btns[0].classList.contains('spinning') || btns[1].classList.contains('spinning') || btns[2].classList.contains('spinning');
 
                        if (radioDev) {
@@ -866,7 +867,7 @@ return view.extend({
                s.load = function() {
                        return network.getWifiDevices().then(L.bind(function(radios) {
                                this.radios = radios.sort(function(a, b) {
-                                       return a.getName() > b.getName();
+                                       return a.getName().localeCompare(b.getName());
                                });
 
                                const tasks = [];
git clone https://git.99rst.org/PROJECT