Fix issue #47 - Defaults toggling with repeated saves

Remove unused group from server.settings.php
Correct testing for use of system defaults
Correct application of system defaults
ToDo:Numeric values are not being saved, or do not revert to defaults when button clicked
This commit is contained in:
stevenA 2021-12-30 15:22:20 +01:00
parent 03206f8384
commit c473c62ada
7 changed files with 23 additions and 36 deletions

View file

@ -1148,7 +1148,6 @@ function cleanUpSccpSettings() {
unset($settingsFromDb[$key]);
}
} else {
dbug($sysConfiguration);
$sysConfiguration[$key]['DefaultValue'] = ($sysConfiguration[$key]['DefaultValue'] == '(null)') ? '' : $sysConfiguration[$key]['DefaultValue'];
if (array_key_exists($key,$settingsFromDb)) {
// Preserve sequence and type
@ -1157,7 +1156,6 @@ function cleanUpSccpSettings() {
$settingsFromDb[$key] = array('keyword' => $key, 'seq' => 0, 'type' => 0, 'data' => '', 'systemdefault' => $sysConfiguration[$key]['DefaultValue']);
}
}
dbug($settingsFromDb);
// Override certain chan-sccp defaults as they are based on a non-FreePbx system
$settingsFromDb['context']['systemdefault'] = 'from-internal';
$settingsFromDb['directed_pickup']['systemdefault'] = 'no';

View file

@ -1,7 +1,7 @@
<module>
<rawname>sccp_manager</rawname>
<name>SCCP Manager</name>
<version>14.3.0.19</version>
<version>14.3.0.21</version>
<type>setup</type>
<category>SCCP Connectivity</category>
<publisher>Steve Lad, Alex GP</publisher>

View file

@ -218,7 +218,6 @@ class Sccp extends \FreePBX\modules\Core\Driver {
public function getDefaultDeviceSettings($id, $displayname, &$flag) {
// FreePBX required method
$settings = array();
dbug($this->line_defaults);
$settingsFields = array('mailbox', 'incominglimit', 'context', 'directed_pickup_context', 'callgroup', 'pickupgroup', 'namedcallgroup',
'namedpickupgroup', 'adhocNumber', 'secondary_dialtone_digits', 'secondary_dialtone_tone', 'directed_pickup', 'pickup_modeanswer',
'transfer', 'echocancel', 'dnd', 'silencesuppression', 'musicclass', 'pin', 'allow', 'disallow');

View file

@ -46,10 +46,9 @@ class formcreate
<?php
if (!empty($sccp_defaults[$shortId]['systemdefault'])) {
// There is a system default, so add button to customise or reset
// the closing } is after the code to include the button at line ~498
//-- Start include of defaults button --
echo "<div class=col-md-3>";
}
// Can have multiple inputs for a field which are displayed with a separator
foreach ($child->xpath('input') as $value) {
@ -58,15 +57,10 @@ class formcreate
//if (!empty($fvalues[$res_n])) {
$value->value = $fvalues[$res_n]['data'];
if (!empty($fvalues[$res_n]['data'])) {
if (!empty($sccp_defaults[$res_n]['systemdefault']) && ($sccp_defaults[$res_n]['systemdefault'] != $fvalues[$res_n]['data'])) {
if ($sccp_defaults[$res_n]['systemdefault'] != $fvalues[$res_n]['data']) {
$usingSysDefaults = false;
}
}
//}
// Default to chan-sccp defaults, not xml defaults.
//if (empty($value->value)) {
//$value->value = $sccp_defaults[$res_n]['systemdefault'];
//}
if (empty($value->type)) {
$value->type = 'text';
}
@ -83,6 +77,8 @@ class formcreate
echo $value->value;
$i ++;
}
if (!empty($sccp_defaults[$shortId]['systemdefault'])) {
?>
</div>
<div class="col-md-4">
@ -123,7 +119,7 @@ class formcreate
<!-- Finish include of defaults button -->
<?php
// Close the conditional include of the defaults button opened at line ~425
// Close the conditional include of the defaults button opened at line ~47
}
?>
@ -146,7 +142,8 @@ class formcreate
if (empty($value->value)) {
$value->value = $sccp_defaults[$res_n]['systemdefault'];
}
if (!$usingSysDefaults) {
if ($usingSysDefaults) {
// using system defaults
$value->value = $sccp_defaults[$res_n]['systemdefault'];
}
if (empty($value->type)) {
@ -373,17 +370,15 @@ class formcreate
$res_v = (string)$fvalues[$res_n]['data'];
}
}
if ($sccp_defaults[$res_n]['systemdefault'] != $res_v) {
$usingSysDefaults = false;
}
if (!empty($sccp_defaults[$res_n]['systemdefault'])) {
// There is a system default, so add button to customise or reset
// the closing } is after the code to include the button at line ~498
// the closing } is after the code to include the button at line ~438
//-- Start include of defaults button --
echo "<div class='col-md-3'>";
if (!empty($sccp_defaults[$res_n]['systemdefault']) && ($sccp_defaults[$res_n]['systemdefault'] != $res_v)) {
$usingSysDefaults = false;
}
// Output current value
echo $res_v;
?>
@ -427,7 +422,7 @@ class formcreate
</div>
<!-- Finish include of defaults button -->
<?php
// Close the conditional include of the defaults button opened at line ~425
// Close the conditional include of the defaults button opened at line ~385
}
?>
@ -437,7 +432,7 @@ class formcreate
$i = 0;
$opt_hide = '';
if (!$usingSysDefaults) {
if ($usingSysDefaults) {
$res_v = $sccp_defaults[$res_n]['systemdefault'];
}
if (!empty($child->option_hide)) {
@ -449,8 +444,6 @@ class formcreate
}
$opt_hide .= ' data-vshow="'.$child->option_show.'" data-clshow="'.$child->option_show['class'].'" ';
}
foreach ($child->xpath('button') as $value) {
$opt_disabled = '';
if (in_array($value, $disabledButtons )) {

View file

@ -505,7 +505,6 @@ trait ajaxHelper {
}
}
}
$extSettings = $this->extconfigs->updateTftpStructure(array_merge($this->sccpvalues, $save_settings));
$save_settings = array_merge($save_settings, $extSettings);
if (!empty($save_settings)) {

View file

@ -48,7 +48,6 @@ if ($h_show==1) {
<?php
}
foreach ($items as $child) {
$disabledButtons = array();
if (empty($child->help)) {

View file

@ -25,7 +25,6 @@
$def_val_device = $this->getTableDefaults('sccpdevice');
echo $this->showGroup('sccp_general', 1);
echo $this->showGroup('sccp_dev_time_s', 1);
echo $this->showGroup('sccp_net', 1);
echo $this->showGroup('sccp_lang', 1);
echo $this->showGroup('sccp_extpath_config', 1);