Merge pull request #6579 from systemcrash/fix_dnsmasq_instance_fields
authorPaul Donald <newtwen@gmail.com>
Mon, 4 Dec 2023 03:51:03 +0000 (04:51 +0100)
committerPaul Donald <newtwen@gmail.com>
Mon, 4 Dec 2023 22:39:01 +0000 (23:39 +0100)
luci-mod-network: Fix 'instances' fields for dnsmasq dhcp config entries
(cherry picked from commit d353bc50cd45bd0863170a0fa2f4e474405f8354)

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

index da0eeabb5a3541726b02d6e1a14393a1a275fcbe..538b1b0d55a46f8b31b9c2fa2232f0510a5edc23 100644 (file)
@@ -89,6 +89,21 @@ function calculateNetwork(addr, mask) {
        ];
 }
 
+function generateDnsmasqInstanceEntry(data) {
+       const nameValueMap = new Map(Object.entries(data));
+       let formatString = nameValueMap.get('.index') + ' (' +  _('Name') + (nameValueMap.get('.anonymous') ? ': dnsmasq[' + nameValueMap.get('.index') + ']': ': ' + nameValueMap.get('.name'));
+
+       if (data.domain) {
+               formatString += ', ' +  _('Domain')  + ': ' + data.domain;
+       }
+       if (data.local) {
+               formatString += ', ' +  _('Local')  + ': ' + data.local;
+       }
+       formatString += ')';
+
+       return nameValueMap.get('.name'), formatString;
+}
+
 function getDHCPPools() {
        return uci.load('dhcp').then(function() {
                let sections = uci.sections('dhcp', 'dhcp'),
@@ -630,7 +645,7 @@ return view.extend({
                so.optional = true;
 
                Object.values(L.uci.sections('dhcp', 'dnsmasq')).forEach(function(val, index) {
-                       so.value(index, '%s (Domain: %s, Local: %s)'.format(index, val.domain || '?', val.local || '?'));
+                       so.value(generateDnsmasqInstanceEntry(val));
                });
 
                o = s.taboption('srvhosts', form.SectionValue, '__srvhosts__', form.TableSection, 'srvhost', null,
@@ -932,7 +947,7 @@ return view.extend({
                so.optional = true;
 
                Object.values(L.uci.sections('dhcp', 'dnsmasq')).forEach(function(val, index) {
-                       so.value(index, '%s (Domain: %s, Local: %s)'.format(index, val.domain || '?', val.local || '?'));
+                       so.value(generateDnsmasqInstanceEntry(val));
                });