Fix issue with not saving all settings
An erroneous break instead of continue was truncating sccpsettings Simplify logic by avoiding create then delete for settings where data was empty
This commit is contained in:
parent
3d1b8015c5
commit
7107dbe86b
|
@ -163,10 +163,10 @@ class Sccp_manager extends \FreePBX_Helpers implements \BMO {
|
||||||
$this->initVarfromXml(); // Overwrite Exist
|
$this->initVarfromXml(); // Overwrite Exist
|
||||||
}
|
}
|
||||||
|
|
||||||
if (get_class($freepbx) === 'FreePBX') {
|
//if (get_class($freepbx) === 'FreePBX') {
|
||||||
// only save settings when building a new FreePBX object
|
// only save settings when building a new FreePBX object
|
||||||
$this->saveSccpSettings();
|
$this->saveSccpSettings();
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -239,7 +239,6 @@ class dbinterface
|
||||||
// mode update - update / replace record
|
// mode update - update / replace record
|
||||||
$dbh = \FreePBX::Database();
|
$dbh = \FreePBX::Database();
|
||||||
$result = false;
|
$result = false;
|
||||||
$delete_value = array();
|
|
||||||
switch ($table_name) {
|
switch ($table_name) {
|
||||||
case 'sccpsettings':
|
case 'sccpsettings':
|
||||||
if ($mode == 'replace') { // Change mode name to be more transparent
|
if ($mode == 'replace') { // Change mode name to be more transparent
|
||||||
|
@ -250,9 +249,8 @@ class dbinterface
|
||||||
}
|
}
|
||||||
foreach ($save_value as $key => $dataArr) {
|
foreach ($save_value as $key => $dataArr) {
|
||||||
if (!empty($dataArr) && isset($dataArr['data'])) {
|
if (!empty($dataArr) && isset($dataArr['data'])) {
|
||||||
if ($dataArr['data'] == $this->val_null) {
|
if (empty($dataArr['data'])) {
|
||||||
$delete_value[] = $save_value[$key]['keyword'];
|
continue;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$stmt->bindParam(':keyword',$dataArr['keyword'],\PDO::PARAM_STR);
|
$stmt->bindParam(':keyword',$dataArr['keyword'],\PDO::PARAM_STR);
|
||||||
|
@ -261,13 +259,6 @@ class dbinterface
|
||||||
$stmt->bindParam(':type',$dataArr['type'],\PDO::PARAM_INT);
|
$stmt->bindParam(':type',$dataArr['type'],\PDO::PARAM_INT);
|
||||||
$result = $stmt->execute();
|
$result = $stmt->execute();
|
||||||
}
|
}
|
||||||
if (!empty($delete_value)) {
|
|
||||||
$stmt = $dbh->prepare('DELETE FROM sccpsettings WHERE keyword = :keyword');
|
|
||||||
foreach ($delete_value as $del_key) {
|
|
||||||
$stmt->bindParam(':keyword',$del_key,\PDO::PARAM_STR);
|
|
||||||
$result = $stmt->execute();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case 'sccpdevmodel': // Fall through to next intentionally
|
case 'sccpdevmodel': // Fall through to next intentionally
|
||||||
case 'sccpdevice': // Fall through to next intentionally
|
case 'sccpdevice': // Fall through to next intentionally
|
||||||
|
|
Loading…
Reference in a new issue