From 7dd1aa08a3baafe7b59a87a717508a6221e9b9fe Mon Sep 17 00:00:00 2001 From: FusionPBX Date: Fri, 25 Oct 2019 12:53:13 -0600 Subject: [PATCH 1/2] Update app_config.php --- app/ring_groups/app_config.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/ring_groups/app_config.php b/app/ring_groups/app_config.php index d3bd15b819..55005c45ab 100644 --- a/app/ring_groups/app_config.php +++ b/app/ring_groups/app_config.php @@ -122,6 +122,9 @@ $y++; $apps[$x]['permissions'][$y]['name'] = "ring_group_context"; $apps[$x]['permissions'][$y]['groups'][] = "superadmin"; + $y++; + $apps[$x]['permissions'][$y]['name'] = "ring_group_all"; + $apps[$x]['permissions'][$y]['groups'][] = "superadmin"; //default settings $y=0; From cf059999b8b3072713557204dab631ddeb43d348 Mon Sep 17 00:00:00 2001 From: FusionPBX Date: Fri, 25 Oct 2019 18:19:28 -0600 Subject: [PATCH 2/2] Update ring_groups.php --- app/ring_groups/ring_groups.php | 80 ++++++++++++++++++++++++++------- 1 file changed, 63 insertions(+), 17 deletions(-) diff --git a/app/ring_groups/ring_groups.php b/app/ring_groups/ring_groups.php index 6b80302f23..a86d4ac13f 100644 --- a/app/ring_groups/ring_groups.php +++ b/app/ring_groups/ring_groups.php @@ -43,19 +43,6 @@ $language = new text; $text = $language->get(); -//add the search term - $search = strtolower($_GET["search"]); - if (strlen($search) > 0) { - $sql_search = "and ("; - $sql_search .= "lower(ring_group_name) like :search "; - $sql_search .= "or lower(ring_group_extension) like :search "; - $sql_search .= "or lower(ring_group_description) like :search "; - $sql_search .= "or lower(ring_group_enabled) like :search "; - $sql_search .= "or lower(ring_group_strategy) like :search "; - $sql_search .= ")"; - $parameters['search'] = '%'.$search.'%'; - } - //additional includes require_once "resources/header.php"; require_once "resources/paging.php"; @@ -64,12 +51,23 @@ $order_by = $_GET["order_by"]; $order = $_GET["order"]; +//add the search term + $search = strtolower($_GET["search"]); + //show the content echo "\n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; @@ -85,25 +83,66 @@ //get total ring group count $sql = "select count(*) from v_ring_groups "; $sql .= "where domain_uuid = :domain_uuid "; - $parameters['domain_uuid'] = $_SESSION['domain_uuid']; + $parameters['domain_uuid'] = $domain_uuid; $database = new database; $total_ring_groups = $database->select($sql, $parameters, 'column'); + unset($sql, $parameters); //get filtered ring group count - $sql .= $search; + $sql = "select count(*) from v_ring_groups "; + if ($_GET['show'] == "all" && permission_exists('ring_group_all')) { + //$sql .= "where true "; + } + else { + $sql .= "where domain_uuid = :domain_uuid "; + $parameters['domain_uuid'] = $domain_uuid; + } + if (strlen($search) > 0) { + $sql .= "and ("; + $sql .= "lower(ring_group_name) like :search "; + $sql .= "or lower(ring_group_extension) like :search "; + $sql .= "or lower(ring_group_description) like :search "; + $sql .= "or lower(ring_group_enabled) like :search "; + $sql .= "or lower(ring_group_strategy) like :search "; + $sql .= ") "; + $parameters['search'] = '%'.$search.'%'; + } $database = new database; $num_rows = $database->select($sql, $parameters, 'column'); + unset($sql, $parameters); //prepare to page the results $rows_per_page = ($_SESSION['domain']['paging']['numeric'] != '') ? $_SESSION['domain']['paging']['numeric'] : 50; - $param = ""; $page = $_GET['page']; + $param = "&search=".escape($search); + if ($_GET['show'] == "all" && permission_exists('ring_group_all')) { + $param .= "&show=all"; + } if (strlen($page) == 0) { $page = 0; $_GET['page'] = 0; } list($paging_controls, $rows_per_page, $var3) = paging($num_rows, $param, $rows_per_page); $offset = $rows_per_page * $page; //get the list - $sql = str_replace('count(*)', '*', $sql); + $sql = "select * from v_ring_groups as r, v_domains as d "; + $sql .= "where r.domain_uuid = d.domain_uuid "; + if ($_GET['show'] == "all" && permission_exists('ring_group_all')) { + $sql .= "and true "; + } + else { + $sql .= "and r.domain_uuid = :domain_uuid "; + $parameters['domain_uuid'] = $_SESSION['domain_uuid']; + } + if (strlen($search) > 0) { + $sql .= "and ("; + $sql .= "lower(ring_group_name) like :search "; + $sql .= "or lower(ring_group_extension) like :search "; + $sql .= "or lower(ring_group_description) like :search "; + $sql .= "or lower(ring_group_enabled) like :search "; + $sql .= "or lower(ring_group_strategy) like :search "; + $sql .= ") "; + $parameters['search'] = '%'.$search.'%'; + } + if (strlen($order_by) == 0) { $sql .= "order by ring_group_name asc, ring_group_extension asc "; } @@ -122,6 +161,9 @@ //show the content echo "
".$text['title-ring_groups']."
\n"; + if (permission_exists('ring_group_all')) { + if ($_GET['show'] == 'all') { + echo " "; + } + else { + echo " \n"; + } + } echo " \n"; echo " \n"; echo "
\n"; echo "\n"; + if ($_GET['show'] == "all" && permission_exists('ring_group_all')) { + echo th_order_by('domain_name', $text['label-domain'], $order_by, $order); + } echo th_order_by('ring_group_name', $text['label-name'], $order_by, $order); echo th_order_by('ring_group_extension', $text['label-extension'], $order_by, $order); echo th_order_by('ring_group_strategy', $text['label-strategy'], $order_by, $order); @@ -141,6 +183,9 @@ foreach($ring_groups as $row) { $tr_link = (permission_exists('ring_group_edit')) ? "href='ring_group_edit.php?id=".$row['ring_group_uuid']."'" : null; echo "\n"; + if ($_GET['show'] == "all" && permission_exists('ring_group_all')) { + echo " \n"; + } echo " \n"; + echo " \n"; echo " \n"; echo " \n";
".escape($row['domain_name'])." "; if (permission_exists('ring_group_edit')) { echo "".escape($row['ring_group_name']).""; @@ -149,6 +194,7 @@ echo $row['ring_group_name']; } echo " ".escape($row['ring_group_extension'])." ".$text['option-'.escape($row['ring_group_strategy'])]." ".(($row['ring_group_forward_enabled'] == 'true') ? format_phone(escape($row['ring_group_forward_destination'])) : null)."