Correct getExtensionGrid method and optimise

Was dropping last line
Logic was overly complicated; optimise as called frequently
This commit is contained in:
steve-lad 2021-08-01 13:58:11 +02:00
parent 74ddfcd413
commit 4ffcfaf6b7
2 changed files with 15 additions and 26 deletions

View file

@ -56,7 +56,7 @@ class dbinterface
switch ($dataid) { switch ($dataid) {
case 'extGrid': case 'extGrid':
// only called by getExtensionGrid from hardware.extension.php view // only called by getExtensionGrid from hardware.extension.php view
$stmts = $this->db->prepare("SELECT sccpline.name, sccpline.label, sccpbuttonconfig.ref as mac $stmts = $this->db->prepare("SELECT sccpline.name, sccpline.label, sccpbuttonconfig.ref AS mac, '-|-' AS line_status
FROM sccpline LEFT JOIN sccpbuttonconfig FROM sccpline LEFT JOIN sccpbuttonconfig
ON sccpline.name = TRIM(TRAILING '!silent' FROM sccpbuttonconfig.name) ORDER BY sccpline.name"); ON sccpline.name = TRIM(TRAILING '!silent' FROM sccpbuttonconfig.name) ORDER BY sccpline.name");
break; break;

View file

@ -295,33 +295,21 @@ trait ajaxHelper {
return array(); return array();
} }
$activeDevices = $this->aminterface->sccp_get_active_device(); $activeDevices = $this->aminterface->sccp_get_active_device();
foreach ($lineList as $key => $lineArr) { $uniqueLineList = array();
if (!empty($outLineList[$lineList[$key]['name']])) { foreach ($lineList as $key => &$lineArr) {
$outLineList[$lineList[$key]['name']]['mac'] .= "<br>".$lineList[$key]['mac']; if (array_key_exists($lineArr['mac'], $activeDevices)) {
if (array_key_exists($lineArr['mac'], $activeDevices)) { $lineArr['line_status'] = "{$activeDevices[$lineArr['mac']]['status']} | {$activeDevices[$lineArr['mac']]['act']}";
$actDevStat = $activeDevices[$lineArr['mac']];
$outLineList[$lineList[$key]['name']]['line_status'] .= "<br>" . "{$actDevStat['status']} | {$actDevStat['act']}";
} else {
$outLineList[$lineList[$key]['name']]['line_status'] .= "<br>" . '|';
}
} else {
$outLineList[$lineList[$key]['name']] = $lineList[$key];
if (array_key_exists($lineArr['mac'], $activeDevices)) {
$actDevStat = $activeDevices[$lineArr['mac']];
$outLineList[$lineList[$key]['name']]['line_status'] = "{$actDevStat['status']} | {$actDevStat['act']}";
} else {
// create a new output list
$outLineList[$lineList[$key]['name']] = $lineList[$key];
$outLineList[$lineList[$key]['name']]['line_status'] = '|';
}
} }
if (array_key_exists($lineArr['name'], $uniqueLineList)) {
$lineList[$uniqueLineList[$lineArr['name']]]['mac'] .= '<br>' . $lineArr['mac'];
$lineList[$uniqueLineList[$lineArr['name']]]['line_status'] .= '<br>' . $lineArr['line_status'];
unset($lineList[$key]); // Drop this array as no longer used
continue;
}
$uniqueLineList[$lineArr['name']] = $key;
} }
unset($lineList); unset($lineArr, $uniqueLineList); // unset reference and temp vars.
// Html wants an anonymous array rather than a keyed array, so remove keys. return array_values($lineList); // Reindex array and return
foreach ($outLineList as $valueArray) {
$lineList[] = $valueArray;
}
return $lineList;
break; break;
case 'getPhoneGrid': case 'getPhoneGrid':
$dbDevices = array(); $dbDevices = array();
@ -350,6 +338,7 @@ trait ajaxHelper {
$dev_id['address'] = '- -'; $dev_id['address'] = '- -';
} }
} }
unset($dev_id); // unset reference.
if (!empty($activeDevices)) { if (!empty($activeDevices)) {
// Have a device that is connected but is not currently in the database // Have a device that is connected but is not currently in the database