diff --git a/scripts/pi-hole/js/settings-advanced.js b/scripts/pi-hole/js/settings-advanced.js index a89cf76f..bd514b56 100644 --- a/scripts/pi-hole/js/settings-advanced.js +++ b/scripts/pi-hole/js/settings-advanced.js @@ -50,7 +50,7 @@ function generateRow(topic, key, value) { ? '  ' : "") + (value.flags.env_var - ? '  ' + ? '  ' : "") + "" + "

" + diff --git a/scripts/pi-hole/js/settings-dns.js b/scripts/pi-hole/js/settings-dns.js index 5b750783..7059fc5e 100644 --- a/scripts/pi-hole/js/settings-dns.js +++ b/scripts/pi-hole/js/settings-dns.js @@ -18,6 +18,12 @@ function removeFromArray(arr, what) { } function fillDNSupstreams(value, servers) { + var disabledStr = ""; + if (value.flags.env_var === true) { + $("#DNSupstreamsTextfield").prop("disabled", true); + disabledStr = 'disabled="Disabled"'; + } + var i = 0; var customServers = value.value.length; servers.forEach(element => { @@ -30,21 +36,21 @@ function fillDNSupstreams(value, servers) { // Loop over available addresses (up to 2) for (let index = 0; index < 2; index++) { if (address.length > index) { - row += - '

'; + row += ` +
+ + +
+ `; } else { row += ""; } diff --git a/scripts/pi-hole/js/settings.js b/scripts/pi-hole/js/settings.js index 17d28f40..dc5c1ff4 100644 --- a/scripts/pi-hole/js/settings.js +++ b/scripts/pi-hole/js/settings.js @@ -37,6 +37,19 @@ function setConfigValues(topic, key, value) { // else: we have a setting we can set var escapedKey = key.replaceAll(".", "\\."); + + if (value.flags.env_var) { + // If this setting has been set by environment variable, display a padlock in the section title + var envTitle = $(`.${escapedKey}`); + if (envTitle.find(".env-warning").length === 0) { + envTitle.append( + `  ` + ); + } + + $(`#${escapedKey}`).prop("disabled", "disabled"); + } + switch (value.type) { case "enum (unsigned integer)": // fallthrough case "enum (string)": { @@ -44,6 +57,7 @@ function setConfigValues(topic, key, value) { $("#" + escapedKey + " option").remove(); // Add allowed select items (if available) value.allowed.forEach(function (allowedValue) { + $("#" + escapedKey + "-" + allowedValue.item).prop("disabled", value.flags.env_var); var newopt = $("") .attr("value", allowedValue.item) .text(allowedValue.description); @@ -70,7 +84,6 @@ function setConfigValues(topic, key, value) { case "string array": { // Set input field values from array (if available) $("#" + escapedKey).val(value.value.join("\n")); - break; } diff --git a/settings-api.lp b/settings-api.lp index dd0cc317..e47ea8fb 100644 --- a/settings-api.lp +++ b/settings-api.lp @@ -19,7 +19,7 @@ mg.include('scripts/pi-hole/lua/settings_header.lp','r')
-

Exclusions

+

Exclusions

@@ -40,7 +40,7 @@ mg.include('scripts/pi-hole/lua/settings_header.lp','r')
-

Theme settings

+

Theme settings

@@ -65,7 +65,7 @@ mg.include('scripts/pi-hole/lua/settings_header.lp','r')
-