From 8953484e1fd848696352342f9310e9cb456a5f22 Mon Sep 17 00:00:00 2001 From: stevenA Date: Fri, 31 Dec 2021 15:01:02 +0100 Subject: [PATCH] Fix reset of defaults for text fields Still need to address bindaddress:port and externalIP: Name --- assets/js/sccp_manager.js | 87 +++++++++++++++-------------- sccpManClasses/formcreate.class.php | 2 + 2 files changed, 46 insertions(+), 43 deletions(-) diff --git a/assets/js/sccp_manager.js b/assets/js/sccp_manager.js index 0fedd6f..0bf2f37 100644 --- a/assets/js/sccp_manager.js +++ b/assets/js/sccp_manager.js @@ -1187,52 +1187,53 @@ function sleep(milliseconds) } $(".sccp-restore").click(function() { - //input is sent by data-for where for is an attribute - var id = $(this).data("for"), input = $("#" + id); - var edit_style = document.getElementById("edit_" + id).style; - if ($(this).data("type") === 'radio') { - input = document.getElementsByName(id); - } - if (input.length === 0) { - return; - } - if ($(this).is(":checked")) { - edit_style.display = 'block'; - var defaultVal = $(this).data("default"); + //input is sent by data-for where for is an attribute + var id = $(this).data("for"), input = $("#" + id); + var edit_style = document.getElementById("edit_" + id).style; if ($(this).data("type") === 'radio') { - // simulate read only for checkboxes - console.log(input); - input.forEach( - function(radioElement) { - radioElement.setAttribute('disabled', true); - if (radioElement.value === defaultVal){ - radioElement.removeAttribute('disabled'); - radioElement.setAttribute('checked', true); - } else { + input = document.getElementsByName(id); + } else if ($(this).data("type") === 'text') { + input = document.getElementsByName(id); + } + if (input.length === 0) { + return; + } + if ($(this).is(":checked")) { + console.log("Restore checked"); + edit_style.display = 'block'; + var defaultVal = $(this).data("default"); + if ($(this).data("type") === 'radio') { + // simulate read only for checkboxes except default + input.forEach( + function(radioElement) { radioElement.setAttribute('disabled', true); - radioElement.removeAttribute('checked'); + if (radioElement.value === defaultVal){ + radioElement.removeAttribute('disabled'); + radioElement.setAttribute('checked', true); + } else { + radioElement.removeAttribute('checked'); + } } - } - ); - return; - } - input.prop("readonly", true); - } else { - console.log('restore/unchecked'); - edit_style.display = 'none'; - if ($(this).data("type") === 'radio') { - // simulate read only for checkboxes - input.forEach( - function(radioElement) { - radioElement.removeAttribute('disabled'); - } - ); - return; - } - input.data("custom", input.val()); - input.prop("readonly", true); - input.val(input.data("default")); - } + ); + return; + } else if ($(this).data("type") === 'text') { + input[0].value = defaultVal; + input[0].readOnly = true; + } + } else { + edit_style.display = 'none'; + if ($(this).data("type") === 'radio') { + input.forEach( + function(radioElement) { + radioElement.removeAttribute('disabled'); + } + ); + return; + } + input.data("custom", input.val()); + input.prop("readonly", true); + input.val(input.data("default")); + } }); $(".sccp-edit").click(function() { diff --git a/sccpManClasses/formcreate.class.php b/sccpManClasses/formcreate.class.php index 75afdee..0fe61cd 100644 --- a/sccpManClasses/formcreate.class.php +++ b/sccpManClasses/formcreate.class.php @@ -94,8 +94,10 @@ class formcreate } else { // reverting to chan-sccp default values echo " data-for={$res_id}"; + echo " data-type=text"; echo " class=sccp-restore"; echo " id=usedefault_{$res_id}"; + echo " data-default={$sccp_defaults[$res_n]['systemdefault']}"; echo " "; } ?>