Set defaults for Add Device

Get default values from db for add new device
Tidy up AjaxHelper get phone grid removing unnecessary tests and using clearer variable names
Correct typos in sccpgeneral
This commit is contained in:
steve-lad 2021-06-17 09:40:24 +02:00
parent b420f35ad2
commit a146cd2354
3 changed files with 76 additions and 54 deletions

View file

@ -1119,7 +1119,7 @@ and open the template in the editor. Base Version before all crash :-)
<default>off</default>
<button value="on">Enabled</button>
<button value="off">Disabled</button>
<help>Enable/Disable conferencing via meetme (on/off), make sure you have one of the meetme apps mentioned below activated in module.conf</help>
<help>Enable/Disable conferencing via meetme (on/off), make sure you have one of the meetme apps mentioned below is activated in module.conf</help>
</item>
<item type="IS-disabled" id="9" seq="0">
<label>Meetme Options</label>
@ -1534,7 +1534,7 @@ and open the template in the editor. Base Version before all crash :-)
<label>Conference</label>
<item type="IS" id="2" seq="99">
<name>conf_play_general_announce</name>
<label>Playback Conference Anncouncements</label>
<label>Playback Conference Announcements</label>
<default>on</default>
<button value="on">Yes</button>
<button value="off">No</button>
@ -1542,7 +1542,7 @@ and open the template in the editor. Base Version before all crash :-)
</item>
<item type="IS" id="3" seq="99">
<name>conf_play_part_announce</name>
<label>Playback Participant Anncouncements</label>
<label>Playback Participant Announcements</label>
<default>on</default>
<button value="on">Yes</button>
<button value="off">No</button>

View file

@ -299,61 +299,67 @@ trait ajaxHelper {
return $result;
break;
case 'getPhoneGrid':
$dbDevices = array();
$cmd_type = !empty($request['type']) ? $request['type'] : '';
$result = $this->dbinterface->HWextension_db_SccpTableData('SccpDevice', array('type' => $cmd_type));
// Find all devices defined in the database
$dbDevices = $this->dbinterface->HWextension_db_SccpTableData('SccpDevice', array('type' => $cmd_type));
// Return if only interested in SIP devices
if ($cmd_type == 'cisco-sip') {
return $result;
return $dbDevices; //this may be empty
}
$staus = $this->aminterface->sccp_get_active_device();
if (empty($result)) {
$result = array();
} else {
foreach ($result as &$dev_id) {
$id_name = $dev_id['name'];
if (!empty($staus[$id_name])) {
$dev_id['description'] = $staus[$id_name]['descr'];
$dev_id['status'] = $staus[$id_name]['status'];
$dev_id['address'] = $staus[$id_name]['address'];
$dev_id['new_hw'] = 'N';
$staus[$id_name]['news'] = 'N';
} else {
$dev_id['description'] = '- -';
$dev_id['status'] = 'not connected';
$dev_id['address'] = '- -';
}
// Find all devices currently connected
$activeDevices = $this->aminterface->sccp_get_active_device();
foreach ($dbDevices as &$dev_id) {
$id_name = $dev_id['name'];
if (!empty($activeDevices[$id_name])) {
// Device is in db and is connected
$dev_id['description'] = $activeDevices[$id_name]['descr'];
$dev_id['status'] = $activeDevices[$id_name]['status'];
$dev_id['address'] = $activeDevices[$id_name]['address'];
$dev_id['new_hw'] = 'N';
// No further action required on this active device
unset($activeDevices[$id_name]);
} else {
// Device is in db but not connected
$dev_id['description'] = '- -';
$dev_id['status'] = 'not connected';
$dev_id['address'] = '- -';
}
}
if (!empty($staus)) {
foreach ($staus as $dev_ids) {
if (!empty($activeDevices)) {
// Have a device that is connected but is not currently in the database
// This device must have been configured by sccp.conf
// Pass parameters to addDevice so that can be added to db.
foreach ($activeDevices as $dev_ids) {
$id_name = $dev_ids['name'];
if (empty($dev_ids['news'])) {
$dev_data = $this->aminterface->sccp_getdevice_info($id_name);
if (!empty($dev_data['SCCP_Vendor']['model_id'])) {
$dev_addon = $dev_data['SCCP_Vendor']['model_addon'];
if (empty($dev_addon)) {
$dev_addon = null;
}
$dev_schema = $this->getSccpModelInformation('byciscoid', false, "all", array('model' => $dev_data['SCCP_Vendor']['model_id']));
if (empty($dev_schema)) {
$dev_schema[0]['model'] = "ERROR in Model Schema";
}
$result[] = array(
'name' => $id_name,
'mac' => $id_name,
'button' => '---',
'type' => $dev_schema[0]['model'],
'new_hw' => 'Y',
'description' => '*NEW* ' . $dev_ids['descr'],
'status' => '*NEW* ' . $dev_ids['status'],
'address' => $dev_ids['address'],
'addon' => $dev_addon
);
$dev_data = $this->aminterface->sccp_getdevice_info($id_name);
if (!empty($dev_data['SCCP_Vendor']['model_id'])) {
$dev_addon = $dev_data['SCCP_Vendor']['model_addon'];
if (empty($dev_addon)) {
$dev_addon = null;
}
$dev_schema = $this->getSccpModelInformation('byciscoid', false, "all", array('model' => $dev_data['SCCP_Vendor']['model_id']));
if (empty($dev_schema)) {
$dev_schema[0]['model'] = "ERROR in Model Schema";
}
$dbDevices[] = array(
'name' => $id_name,
'mac' => $id_name,
'button' => '---',
'type' => $dev_schema[0]['model'],
'new_hw' => 'Y',
'description' => '*NEW* ' . $dev_ids['descr'],
'status' => '*NEW* ' . $dev_ids['status'],
'address' => $dev_ids['address'],
'addon' => $dev_addon
);
}
}
}
return $result;
return $dbDevices;
break;
case 'getDialTemplate':
// ------------------------------- Old device support - In the development---

View file

@ -4,7 +4,7 @@
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
$def_val = null;
$def_val = array();
$dev_id = null;
$dev_new = null;
$device_warning= null;
@ -15,7 +15,18 @@ $def_val['devlang'] = array("keyword" => 'devlang', "data" => $this->sccpvalues
$def_val['directed_pickup_context'] = array("keyword" => 'directed_pickup_context', "data" => $this->sccpvalues['directed_pickup_context']['data'], "seq" => "99");
if (!empty($_REQUEST['new_id'])) {
// Adding device that is connected but not in database
$dev_id = $_REQUEST['new_id'];
// Get device defaults from db
$sccpDeviceDesc = $this->dbinterface->HWextension_db_SccpTableData('get_columns_sccpdevice');
foreach ($sccpDeviceDesc as $data) {
$key = (string) $data['Field'];
$def_val[$key] = array("keyword" => $key, "data" => $data['Default'], "seq" => "99");
}
// Overwrite some specific defaults based on $_REQUEST
$val = str_replace(array('SEP','ATA','VG'), '', $dev_id);
$val = implode('.', sscanf($val, '%4s%4s%4s')); // Convert to Cisco display Format
$def_val['mac'] = array("keyword" => 'mac', "data" => $val, "seq" => "99");
@ -24,13 +35,17 @@ if (!empty($_REQUEST['new_id'])) {
if (!empty($_REQUEST['addon'])) {
$def_val['addon'] = array("keyword" => 'type', "data" => $_REQUEST['addon'], "seq" => "99");
}
// TODO Default values should be used to populate this device
// Currently these are read from sccpgeneral.xml
// Need to get these from the db as defaults may have changed.
}
if (empty($_REQUEST['id'])) {
// Adding new device to database
$sccpDeviceDesc = $this->dbinterface->HWextension_db_SccpTableData('get_columns_sccpdevice');
// Editing an existing Device
if (!empty($_REQUEST['id'])) {
foreach ($sccpDeviceDesc as $data) {
$key = (string) $data['Field'];
$def_val[$key] = array("keyword" => $key, "data" => $data['Default'], "seq" => "99");
}
} else {
// Editing an existing Device
$dev_id = $_REQUEST['id'];
$dev_new = $dev_id;
$db_res = $this->dbinterface->HWextension_db_SccpTableData('get_sccpdevice_byid', array("id" => $dev_id));
@ -68,8 +83,9 @@ if (!empty($_REQUEST['id'])) {
// $key = $key . '_mask';
// $val = after('/', $val);
// break;
default:
$def_val[$key] = array("keyword" => $key, "data" => $val, "seq" => "99");
}
$def_val[$key] = array("keyword" => $key, "data" => $val, "seq" => "99");
}
}