luci-mod-network: organize "relay" tab in dhcp/dns views
authorDavid Härdeman <[email protected]>
Wed, 15 Oct 2025 17:08:31 +0000 (19:08 +0200)
committerPaul Donald <[email protected]>
Sat, 18 Oct 2025 21:51:38 +0000 (23:51 +0200)
Delete the tab from dns.js, sort the options that belong to it in dhcp.js.

Signed-off-by: David Härdeman <[email protected]>
modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js
modules/luci-mod-network/htdocs/luci-static/resources/view/network/dns.js

index 4d436b7f4b35af60b9089947a101d861480a3712..19089a6925aaa884dadd11450187f363110e6fdf 100644 (file)
@@ -673,6 +673,7 @@ return view.extend({
                        o = s.taboption('leases', CBILease6Status, '__status6__');
                // End leases
 
+               // Begin relay
                o = s.taboption('relay', form.SectionValue, '__relays__', form.TableSection, 'relay', null,
                        _('Relay DHCP requests elsewhere. OK: v4↔v4, v6↔v6. Not OK: v4↔v6, v6↔v4.')
                        + '<br />' + _('Note: you may also need a DHCP Proxy (currently unavailable) when specifying a non-standard Relay To port(<code>addr#port</code>).')
@@ -710,7 +711,6 @@ return view.extend({
                so.rmempty = false;
                so.optional = false;
                so.placeholder = '192.168.10.1#535';
-
                so.validate = function(section, value) {
                        var m = this.section.formvalue(section, 'local_addr'),
                            n = this.section.formvalue(section, 'server_addr'),
@@ -735,11 +735,11 @@ return view.extend({
                        return true;
                };
 
-
                so = ss.option(widgets.NetworkSelect, 'interface', _('Only accept replies via'));
                so.optional = true;
                so.rmempty = false;
                so.placeholder = 'lan';
+               // End relay
 
                o = s.taboption('pxe_tftp', form.Flag, 'enable_tftp',
                        _('Enable TFTP server'),
index 80255229dadfd5ffc4e0f4ba6ec3e2546933d08d..b1ea15df9863c83468abf0022d7c985ec854d25a 100644 (file)
@@ -401,7 +401,6 @@ return view.extend({
                s.tab('logging', _('Log'));
                s.tab('files', _('Resolv &amp; Hosts Files'));
                s.tab('ipsets', _('IP Sets'));
-               s.tab('relay', _('Relay'));
                s.tab('pxe_tftp', _('PXE/TFTP'));
 
                // Begin general
@@ -1060,73 +1059,6 @@ return view.extend({
                so.value('ip6', _('IPv6'));
                // End ipsets
 
-               o = s.taboption('relay', form.SectionValue, '__relays__', form.TableSection, 'relay', null,
-                       _('Relay DHCP requests elsewhere. OK: v4↔v4, v6↔v6. Not OK: v4↔v6, v6↔v4.')
-                       + '<br />' + _('Note: you may also need a DHCP Proxy (currently unavailable) when specifying a non-standard Relay To port(<code>addr#port</code>).')
-                       + '<br />' + _('You may add multiple unique Relay To on the same Listen addr.'));
-
-               ss = o.subsection;
-
-               ss.addremove = true;
-               ss.anonymous = true;
-               ss.sortable  = true;
-               ss.rowcolors = true;
-               ss.nodescriptions = true;
-
-               so = ss.option(form.Value, 'local_addr', _('Relay from'));
-               so.rmempty = false;
-               so.datatype = 'ipaddr';
-
-               for (var family = 4; family <= 6; family += 2) {
-                       for (var i = 0; i < networks.length; i++) {
-                               if (networks[i].getName() != 'loopback') {
-                                       var addrs = (family == 6) ? networks[i].getIP6Addrs() : networks[i].getIPAddrs();
-                                       for (var j = 0; j < addrs.length; j++) {
-                                               var addr = addrs[j].split('/')[0];
-                                               so.value(addr, E([], [
-                                                       addr, ' (',
-                                                       widgets.NetworkSelect.prototype.renderIfaceBadge(networks[i]),
-                                                       ')'
-                                               ]));
-                                       }
-                               }
-                       }
-               }
-
-               so = ss.option(form.Value, 'server_addr', _('Relay to address'));
-               so.rmempty = false;
-               so.optional = false;
-               so.placeholder = '192.168.10.1#535';
-
-               so.validate = function(section, value) {
-                       var m = this.section.formvalue(section, 'local_addr'),
-                           n = this.section.formvalue(section, 'server_addr'),
-                           p;
-
-                       if (!m || !n) {
-                               return _('Both "Relay from" and "Relay to address" must be specified.');
-                       }
-                       else {
-                               p = n.split('#');
-                               if (p.length > 1 && !/^[0-9]+$/.test(p[1]))
-                                       return _('Expected port number.');
-                               else
-                                       n = p[0];
-
-                               if ((validation.parseIPv6(m) && validation.parseIPv6(n)) ||
-                                       validation.parseIPv4(m) && validation.parseIPv4(n))
-                                       return true;
-                               else
-                                       return _('Address families of "Relay from" and "Relay to address" must match.')
-                       }
-                       return true;
-               };
-
-
-               so = ss.option(widgets.NetworkSelect, 'interface', _('Only accept replies via'));
-               so.optional = true;
-               so.rmempty = false;
-               so.placeholder = 'lan';
 
                o = s.taboption('pxe_tftp', form.Flag, 'enable_tftp',
                        _('Enable TFTP server'),