diff --git a/Core.class.php b/Core.class.php index acd6438ae..015cbf1a1 100644 --- a/Core.class.php +++ b/Core.class.php @@ -700,7 +700,8 @@ public function ajaxHandler() { return array_values($dids); break; case 'allTrunks': - return array_values($this->listTrunks()); + $displayOnly = (isset($request['jdisplay']) && $request['jdisplay']=='onlyVisible') ? true : false; + return array_values($this->listTrunks($displayOnly)); break; case 'routingrnav': return array_values($this->getAllRoutes()); @@ -1897,9 +1898,10 @@ public function deleteTrunk($trunknum, $tech = null, $edit = false){ /** * List All Trunks + * if$displayOnly is true, will get only the trunks with routedisplay field set to on * @return array Array of Trunks */ - public function listTrunks() { + public function listTrunks($displayOnly = false) { $sql = 'SELECT * from `trunks` ORDER BY `trunkid`'; $stmt = $this->database->prepare($sql); $ret = $stmt->execute(); @@ -1917,8 +1919,12 @@ public function listTrunks() { break; } } - $trunk['dialopts'] = $this->freepbx->astman->database_get("TRUNK",$trunk['trunkid'] . "/dialopts"); - $trunk_list[$trunk['trunkid']] = $trunk; + if (!$displayOnly || ($displayOnly && (!isset($trunk['routedisplay']) || $trunk['routedisplay'] == 'on'))) { + // if displayOnly is set let's return only the trunks with routedisplay set to 'off' + $trunk['dialopts'] = $this->freepbx->astman->database_get("TRUNK",$trunk['trunkid'] . "/dialopts"); + $trunk_list[$trunk['trunkid']] = $trunk; + } + } return $trunk_list; } diff --git a/functions.inc.php b/functions.inc.php index c5abe9f4c..c612a56f0 100644 --- a/functions.inc.php +++ b/functions.inc.php @@ -893,7 +893,7 @@ function core_destinations() { } } - $trunklist = core_trunks_listbyid(); + $trunklist = core_trunks_listbyid(true); if (is_array($trunklist)) foreach ($trunklist as $trunk) { switch($trunk['tech']) { case 'enum': @@ -4947,15 +4947,17 @@ function core_trunks_addSipOrIax($config,$table,$channelid,$trunknum,$disable_fl } //get unique trunks -function core_trunks_getDetails($trunkid='') { +function core_trunks_getDetails($trunkid='', $displayOnly = false) { if ($trunkid != '') { return \FreePBX::Core()->getTrunkByID($trunkid); } - return \FreePBX::Core()->listTrunks(); + return \FreePBX::Core()->listTrunks($displayOnly); } -function core_trunks_listbyid() { - return \FreePBX::Core()->listTrunks(); +// get list of trunks, if $displayOnly is true, will get only the trunks +// with routedisplay field set to on +function core_trunks_listbyid($displayOnly = false) { + return \FreePBX::Core()->listTrunks($displayOnly); } function core_trunks_list($assoc = false) { diff --git a/page.trunks.php b/page.trunks.php index 9fb002166..a563be9d1 100644 --- a/page.trunks.php +++ b/page.trunks.php @@ -340,7 +340,7 @@ } //get existing trunk info -$tresults = core_trunks_getDetails(); +$tresults = core_trunks_getDetails('', true); $trunks = array(); foreach ($tresults as $tresult) { diff --git a/views/routing/form.php b/views/routing/form.php index d0a6e9cf5..a855e04f7 100644 --- a/views/routing/form.php +++ b/views/routing/form.php @@ -200,7 +200,7 @@ } //trunk html $trunks = array(); -foreach (core_trunks_listbyid() as $temp) { +foreach (core_trunks_listbyid(true) as $temp) { $trunks[$temp['trunkid']] = $temp['name']; $trunkstate[$temp['trunkid']] = $temp['disabled']; $trunkdisplay[$temp['trunkid']] = isset($temp['routedisplay']) ? $temp['routedisplay'] : 'on'; diff --git a/views/trunks/bootnav.php b/views/trunks/bootnav.php index f70153165..1430db523 100644 --- a/views/trunks/bootnav.php +++ b/views/trunks/bootnav.php @@ -14,7 +14,7 @@   - +
diff --git a/views/trunks/sip.php b/views/trunks/sip.php index 3ce591f35..343c3904a 100644 --- a/views/trunks/sip.php +++ b/views/trunks/sip.php @@ -1,5 +1,5 @@ listTrunks(); +$trunk_list = \FreePBX::Core()->listTrunks(true); if($trunk_list){ $trunk_names = array(); $trunk_channelids = array();