Move handleSubmit to AjaxHelper
This commit is contained in:
		
							parent
							
								
									5df918a04b
								
							
						
					
					
						commit
						afe3382aed
					
				| 
						 | 
				
			
			@ -692,128 +692,6 @@ class Sccp_manager extends \FreePBX_Helpers implements \BMO {
 | 
			
		|||
        return $save_settings;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function handleSubmit($get_settings, $validateonly = false) {
 | 
			
		||||
        $hdr_prefix = 'sccp_';
 | 
			
		||||
        $hdr_arprefix = 'sccp-ar_';
 | 
			
		||||
        $save_settings = array();
 | 
			
		||||
        $save_codec = array();
 | 
			
		||||
        $count_mods = 0;
 | 
			
		||||
        $dbSaveArray = array();
 | 
			
		||||
        $integer_msg = _("%s must be a non-negative integer");
 | 
			
		||||
        $errors = array();
 | 
			
		||||
        $i = 0;
 | 
			
		||||
        foreach ($get_settings as $key => $value) {
 | 
			
		||||
            // Initallly saved all to sccpvalues. Now will save to db defaults if appropriate
 | 
			
		||||
            // TODO: Need to verify the tables defined in showGroup - some options maybe
 | 
			
		||||
            // device options, but if set by freePbx extensions, be in sccpline.
 | 
			
		||||
            $key = (str_replace('sccpdevice_', '', $key, $count_mods));
 | 
			
		||||
            if (($count_mods) && (!empty($value))) {
 | 
			
		||||
                // There will be some exceptions to be handled where there should be no underscore
 | 
			
		||||
                // Handle at db write
 | 
			
		||||
                // Have default to be saved to db sccpdevice
 | 
			
		||||
                $dev_def = $this->getDeviceDefaults();
 | 
			
		||||
                if (!array_key_exists($key, $dev_def)) {
 | 
			
		||||
                    // This key needs to be prefixed with underscore
 | 
			
		||||
                    $key = '_'.$key;
 | 
			
		||||
                }
 | 
			
		||||
                if ((array_key_exists($key, $dev_def)) && ($dev_def[$key]['data'] == $value)) {
 | 
			
		||||
                    // Value unchanged so ignore and get next key.
 | 
			
		||||
                    continue;
 | 
			
		||||
                }
 | 
			
		||||
                $dbSaveArray[] = array('table' => 'sccpdevice', 'field' => $key, 'Default' => $value);
 | 
			
		||||
                unset($get_settings[$key]);
 | 
			
		||||
                continue;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            $pos = strpos($key, $hdr_prefix);
 | 
			
		||||
            if ($pos !== false) {
 | 
			
		||||
                $key1 = substr_replace($key, '', 0, strlen($hdr_prefix));
 | 
			
		||||
                if (!empty($this->sccpvalues[$key1])) {
 | 
			
		||||
                    if (!($this->sccpvalues[$key1]['data'] == $value)) {
 | 
			
		||||
                        $save_settings[] = array('keyword' => $this->sccpvalues[$key1]['keyword'], 'data' => $value,
 | 
			
		||||
                            'seq' => $this->sccpvalues[$key1]['seq'], 'type' => $this->sccpvalues[$key1]['type']);
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            $pos = strpos($key, $hdr_arprefix);
 | 
			
		||||
            if ($pos !== false) {
 | 
			
		||||
                $key1 = substr_replace($key, '', 0, strlen($hdr_arprefix));
 | 
			
		||||
                $arr_data = '';
 | 
			
		||||
                if (!empty($this->sccpvalues[$key1])) {
 | 
			
		||||
                    foreach ($value as $vkey => $vval) {
 | 
			
		||||
                        $tmp_data = '';
 | 
			
		||||
                        foreach ($vval as $vkey => $vval) {
 | 
			
		||||
                            switch ($vkey) {
 | 
			
		||||
                                case 'inherit':
 | 
			
		||||
                                case 'internal':
 | 
			
		||||
                                    if ($vval == 'on') {
 | 
			
		||||
                                        $tmp_data .= 'internal;';
 | 
			
		||||
                                    }
 | 
			
		||||
                                    break;
 | 
			
		||||
                                default:
 | 
			
		||||
                                    $tmp_data .= $vval . '/';
 | 
			
		||||
                                    break;
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                        if (strlen($tmp_data) > 2) {
 | 
			
		||||
                            while (substr($tmp_data, -1) == '/') {
 | 
			
		||||
                                $tmp_data = substr($tmp_data, 0, -1);
 | 
			
		||||
                            }
 | 
			
		||||
                            $arr_data .= $tmp_data . ';';
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                    while (substr($arr_data, -1) == ';') {
 | 
			
		||||
                        $arr_data = substr($arr_data, 0, -1);
 | 
			
		||||
                    }
 | 
			
		||||
                    if (!($this->sccpvalues[$key1]['data'] == $arr_data)) {
 | 
			
		||||
                        $save_settings[] = array('keyword' => $this->sccpvalues[$key1]['keyword'], 'data' => $arr_data,
 | 
			
		||||
                            'seq' => $this->sccpvalues[$key1]['seq'], 'type' => $this->sccpvalues[$key1]['type']);
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            switch ($key) {
 | 
			
		||||
                case 'voicecodecs':
 | 
			
		||||
                case 'vcodec':
 | 
			
		||||
                    foreach ($value as $keycodeс => $valcodeс) {
 | 
			
		||||
                        $save_codec[$i] = $keycodeс;
 | 
			
		||||
                        $i++;
 | 
			
		||||
                    };
 | 
			
		||||
                    $tmpv = implode(";", $save_codec);
 | 
			
		||||
                    if ($tmpv !== $this->sccpvalues['allow']['data']) {
 | 
			
		||||
                        $save_settings[] = array('keyword' => 'allow', 'data' => $tmpv,
 | 
			
		||||
                            'seq' => $this->sccpvalues['allow']['seq'],
 | 
			
		||||
                            'type' => $this->sccpvalues['allow']['type']);
 | 
			
		||||
                    }
 | 
			
		||||
                    break;
 | 
			
		||||
 | 
			
		||||
                case 'sccp_ntp_timezone':
 | 
			
		||||
                    $tz_id = $value;
 | 
			
		||||
                    $TZdata = $this->extconfigs->getextConfig('sccp_timezone', $tz_id);
 | 
			
		||||
                    if (!empty($TZdata)) {
 | 
			
		||||
                        $value = $TZdata['offset']/60;
 | 
			
		||||
                        if (!($this->sccpvalues['tzoffset']['data'] == $value)) {
 | 
			
		||||
                            $save_settings[] = array('keyword' => 'tzoffset', 'data' => $value,
 | 
			
		||||
                                'seq' => '98',
 | 
			
		||||
                                'type' => '2');
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                    break;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        if (!empty($save_settings)) {
 | 
			
		||||
            $this->saveSccpSettings($save_settings);
 | 
			
		||||
            $this->sccpvalues = $this->dbinterface->get_db_SccpSetting();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        foreach ($dbSaveArray as $rowToSave) {
 | 
			
		||||
            $this->dbinterface->updateTableDefaults($rowToSave['table'], $rowToSave['field'], $rowToSave['Default']);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $this->createDefaultSccpConfig(); // Rewrite Config.
 | 
			
		||||
        $save_settings[] = array('status' => true);
 | 
			
		||||
        return $save_settings;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function handleRoamingUsers($get_settings, $validateonly = false) {
 | 
			
		||||
        $hdr_prefix = 'sccp_ru_';
 | 
			
		||||
        $hdr_arprefix = 'sccp_ru-ar_';
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,7 +21,7 @@ class dbinterface
 | 
			
		|||
 | 
			
		||||
    public function info()
 | 
			
		||||
    {
 | 
			
		||||
        $Ver = '13.0.2';    // This should be updated
 | 
			
		||||
        $Ver = '13.0.10';    // This should be updated
 | 
			
		||||
        return array('Version' => $Ver,
 | 
			
		||||
            'about' => 'Data access interface ver: ' . $Ver);
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -386,6 +386,128 @@ trait ajaxHelper {
 | 
			
		|||
                return $result;
 | 
			
		||||
                break;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    function handleSubmit($get_settings, $validateonly = false) {
 | 
			
		||||
        $hdr_prefix = 'sccp_';
 | 
			
		||||
        $hdr_arprefix = 'sccp-ar_';
 | 
			
		||||
        $save_settings = array();
 | 
			
		||||
        $save_codec = array();
 | 
			
		||||
        $count_mods = 0;
 | 
			
		||||
        $dbSaveArray = array();
 | 
			
		||||
        $integer_msg = _("%s must be a non-negative integer");
 | 
			
		||||
        $errors = array();
 | 
			
		||||
        $i = 0;
 | 
			
		||||
        foreach ($get_settings as $key => $value) {
 | 
			
		||||
            // Initallly saved all to sccpvalues. Now will save to db defaults if appropriate
 | 
			
		||||
            // TODO: Need to verify the tables defined in showGroup - some options maybe
 | 
			
		||||
            // device options, but if set by freePbx extensions, be in sccpline.
 | 
			
		||||
            $key = (str_replace('sccpdevice_', '', $key, $count_mods));
 | 
			
		||||
            if (($count_mods) && (!empty($value))) {
 | 
			
		||||
                // There will be some exceptions to be handled where there should be no underscore
 | 
			
		||||
                // Handle at db write
 | 
			
		||||
                // Have default to be saved to db sccpdevice
 | 
			
		||||
                $dev_def = $this->getDeviceDefaults();
 | 
			
		||||
                if (!array_key_exists($key, $dev_def)) {
 | 
			
		||||
                    // This key needs to be prefixed with underscore
 | 
			
		||||
                    $key = '_'.$key;
 | 
			
		||||
                }
 | 
			
		||||
                if ((array_key_exists($key, $dev_def)) && ($dev_def[$key]['data'] == $value)) {
 | 
			
		||||
                    // Value unchanged so ignore and get next key.
 | 
			
		||||
                    continue;
 | 
			
		||||
                }
 | 
			
		||||
                $dbSaveArray[] = array('table' => 'sccpdevice', 'field' => $key, 'Default' => $value);
 | 
			
		||||
                unset($get_settings[$key]);
 | 
			
		||||
                continue;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            $pos = strpos($key, $hdr_prefix);
 | 
			
		||||
            if ($pos !== false) {
 | 
			
		||||
                $key1 = substr_replace($key, '', 0, strlen($hdr_prefix));
 | 
			
		||||
                if (!empty($this->sccpvalues[$key1])) {
 | 
			
		||||
                    if (!($this->sccpvalues[$key1]['data'] == $value)) {
 | 
			
		||||
                        $save_settings[] = array('keyword' => $this->sccpvalues[$key1]['keyword'], 'data' => $value,
 | 
			
		||||
                            'seq' => $this->sccpvalues[$key1]['seq'], 'type' => $this->sccpvalues[$key1]['type']);
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            $pos = strpos($key, $hdr_arprefix);
 | 
			
		||||
            if ($pos !== false) {
 | 
			
		||||
                $key1 = substr_replace($key, '', 0, strlen($hdr_arprefix));
 | 
			
		||||
                $arr_data = '';
 | 
			
		||||
                if (!empty($this->sccpvalues[$key1])) {
 | 
			
		||||
                    foreach ($value as $vkey => $vval) {
 | 
			
		||||
                        $tmp_data = '';
 | 
			
		||||
                        foreach ($vval as $vkey => $vval) {
 | 
			
		||||
                            switch ($vkey) {
 | 
			
		||||
                                case 'inherit':
 | 
			
		||||
                                case 'internal':
 | 
			
		||||
                                    if ($vval == 'on') {
 | 
			
		||||
                                        $tmp_data .= 'internal;';
 | 
			
		||||
                                    }
 | 
			
		||||
                                    break;
 | 
			
		||||
                                default:
 | 
			
		||||
                                    $tmp_data .= $vval . '/';
 | 
			
		||||
                                    break;
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                        if (strlen($tmp_data) > 2) {
 | 
			
		||||
                            while (substr($tmp_data, -1) == '/') {
 | 
			
		||||
                                $tmp_data = substr($tmp_data, 0, -1);
 | 
			
		||||
                            }
 | 
			
		||||
                            $arr_data .= $tmp_data . ';';
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                    while (substr($arr_data, -1) == ';') {
 | 
			
		||||
                        $arr_data = substr($arr_data, 0, -1);
 | 
			
		||||
                    }
 | 
			
		||||
                    if (!($this->sccpvalues[$key1]['data'] == $arr_data)) {
 | 
			
		||||
                        $save_settings[] = array('keyword' => $this->sccpvalues[$key1]['keyword'], 'data' => $arr_data,
 | 
			
		||||
                            'seq' => $this->sccpvalues[$key1]['seq'], 'type' => $this->sccpvalues[$key1]['type']);
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            switch ($key) {
 | 
			
		||||
                case 'voicecodecs':
 | 
			
		||||
                case 'vcodec':
 | 
			
		||||
                    foreach ($value as $keycodeс => $valcodeс) {
 | 
			
		||||
                        $save_codec[$i] = $keycodeс;
 | 
			
		||||
                        $i++;
 | 
			
		||||
                    };
 | 
			
		||||
                    $tmpv = implode(";", $save_codec);
 | 
			
		||||
                    if ($tmpv !== $this->sccpvalues['allow']['data']) {
 | 
			
		||||
                        $save_settings[] = array('keyword' => 'allow', 'data' => $tmpv,
 | 
			
		||||
                            'seq' => $this->sccpvalues['allow']['seq'],
 | 
			
		||||
                            'type' => $this->sccpvalues['allow']['type']);
 | 
			
		||||
                    }
 | 
			
		||||
                    break;
 | 
			
		||||
 | 
			
		||||
                case 'sccp_ntp_timezone':
 | 
			
		||||
                    $tz_id = $value;
 | 
			
		||||
                    $TZdata = $this->extconfigs->getextConfig('sccp_timezone', $tz_id);
 | 
			
		||||
                    if (!empty($TZdata)) {
 | 
			
		||||
                        $value = $TZdata['offset']/60;
 | 
			
		||||
                        if (!($this->sccpvalues['tzoffset']['data'] == $value)) {
 | 
			
		||||
                            $save_settings[] = array('keyword' => 'tzoffset', 'data' => $value,
 | 
			
		||||
                                'seq' => '98',
 | 
			
		||||
                                'type' => '2');
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                    break;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        if (!empty($save_settings)) {
 | 
			
		||||
            $this->saveSccpSettings($save_settings);
 | 
			
		||||
            $this->sccpvalues = $this->dbinterface->get_db_SccpSetting();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        foreach ($dbSaveArray as $rowToSave) {
 | 
			
		||||
            $this->dbinterface->updateTableDefaults($rowToSave['table'], $rowToSave['field'], $rowToSave['Default']);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $this->createDefaultSccpConfig(); // Rewrite Config.
 | 
			
		||||
        $save_settings[] = array('status' => true);
 | 
			
		||||
        return $save_settings;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue