luci-mod-network: predicate the display of dnsmasq and odhcpd tabs

First check the features are installed. Further, verify that some sections
exist which some GUI functions depend on.

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
This commit is contained in:
Paul Donald
2025-10-29 21:37:54 +01:00
parent cf868f4398
commit f9a5309095

View File

@ -207,9 +207,11 @@ return view.extend({
m = new form.Map('dhcp', _('DHCP'));
m.tabbed = true;
this.add_dnsmasq_cfg(m, networks);
if (L.hasSystemFeature('dnsmasq'))
this.add_dnsmasq_cfg(m, networks);
this.add_odhcpd_cfg(m);
if (L.hasSystemFeature('odhcpd'))
this.add_odhcpd_cfg(m);
this.add_leases_cfg(m, hosts, duids, pools, macdata);
@ -309,11 +311,11 @@ return view.extend({
const sections = this.cfgsections();
return Promise.resolve(renderTask).then(function(nodes) {
if (sections.length < 2) {
if (sections.length == 1) {
nodes.querySelector('#cbi-dhcp-dnsmasq > h3').remove();
nodes.querySelector('#cbi-dhcp-dnsmasq > .cbi-section-remove').remove();
}
else {
else if (sections.length > 1) {
nodes.querySelectorAll('#cbi-dhcp-dnsmasq > .cbi-section-remove').forEach(function(div, i) {
const section = uci.get('dhcp', sections[i]);
const hline = div.nextElementSibling;