From 1ac431678105749001ea6c2f2ecae662f027974f Mon Sep 17 00:00:00 2001 From: FusionPBX Date: Wed, 5 Aug 2020 10:50:37 -0600 Subject: [PATCH] Add show all. --- app/calls/calls.php | 90 +++++++++++++++++++++++++++++++++++---------- 1 file changed, 70 insertions(+), 20 deletions(-) diff --git a/app/calls/calls.php b/app/calls/calls.php index 26d6f14102..cbfe56b6df 100644 --- a/app/calls/calls.php +++ b/app/calls/calls.php @@ -81,19 +81,25 @@ $order_by = $_GET["order_by"]; $order = $_GET["order"]; -//handle search term +//get the search $search = strtolower($_GET["search"]); - if (strlen($search) > 0) { - $sql_search = "and ( "; - $sql_search .= "extension like :search "; - $sql_search .= "or lower(description) like :search "; - $sql_search .= ") "; - $parameters['search'] = '%'.$search.'%'; - } //define select count query $sql = "select count(*) from v_extensions "; - $sql .= "where domain_uuid = :domain_uuid "; + if ($_GET['show'] == "all" && permission_exists('call_forward_all')) { + $sql .= "where true "; + } + else { + $sql .= "where domain_uuid = :domain_uuid "; + $parameters['domain_uuid'] = $_SESSION['domain_uuid']; + } + if (strlen($search) > 0) { + $sql .= "and ( "; + $sql .= "extension like :search "; + $sql .= "or lower(description) like :search "; + $sql .= ") "; + $parameters['search'] = '%'.$search.'%'; + } $sql .= "and enabled = 'true' "; if (!permission_exists('extension_edit')) { if (is_array($_SESSION['user']['extension']) && count($_SESSION['user']['extension']) > 0) { @@ -112,18 +118,26 @@ } } $sql .= $sql_search; - $parameters['domain_uuid'] = $_SESSION['domain_uuid']; $database = new database; $num_rows = $database->select($sql, $parameters, 'column'); + unset($parameters); -//prepare to page the results +//prepare the paging if ($is_included) { $rows_per_page = 10; } else { $rows_per_page = ($_SESSION['domain']['paging']['numeric'] != '') ? $_SESSION['domain']['paging']['numeric'] : 50; } - $param = "&search=".$search; + $params[] = "app_uuid=".$app_uuid; + if ($search) { $params[] = "search=".$search; } + if ($order_by) { $params[] = "order_by=".$order_by; } + if ($order) { $params[] = "order=".$order; } + if ($_GET['show'] == "all" && permission_exists('call_forward_all')) { + $params[] .= "show=all"; + } + $param = $params ? implode('&', $params) : null; + unset($params); $page = $_GET['page']; if (strlen($page) == 0) { $page = 0; $_GET['page'] = 0; } list($paging_controls, $rows_per_page) = paging($num_rows, $param, $rows_per_page); @@ -132,7 +146,20 @@ //get the list $sql = "select * from v_extensions "; - $sql .= "where domain_uuid = :domain_uuid "; + if ($_GET['show'] == "all" && permission_exists('call_forward_all')) { + $sql .= "where true "; + } + else { + $sql .= "where domain_uuid = :domain_uuid "; + $parameters['domain_uuid'] = $_SESSION['domain_uuid']; + } + if (strlen($search) > 0) { + $sql .= "and ( "; + $sql .= "extension like :search "; + $sql .= "or lower(description) like :search "; + $sql .= ") "; + $parameters['search'] = '%'.$search.'%'; + } $sql .= "and enabled = 'true' "; if (!permission_exists('extension_edit')) { if (is_array($_SESSION['user']['extension']) && count($_SESSION['user']['extension']) > 0) { @@ -163,7 +190,7 @@ //include header if (!$is_included) { - $document['title'] = $text['title-call_routing']; + $document['title'] = $text['title-call_forward']; } require_once "resources/header.php"; @@ -180,7 +207,7 @@ //show the content if ($is_included) { echo "
\n"; - echo "
".$text['header-call_routing']."
\n"; + echo "
".$text['header-call_forward']."
\n"; echo "
\n"; if ($num_rows > 10) { echo button::create(['type'=>'button','label'=>$text['button-view_all'],'icon'=>'project-diagram','collapse'=>false,'link'=>PROJECT_PATH.'/app/calls/calls.php']); @@ -191,24 +218,31 @@ } else { echo "
\n"; - echo "
".$text['header-call_routing']." (".$num_rows.")
\n"; + echo "
".$text['header-call_forward']." (".$num_rows.")
\n"; echo "
\n"; + if ($extensions) { echo button::create(['type'=>'button','label'=>$text['button-toggle'],'icon'=>$_SESSION['theme']['button_icon_toggle'],'name'=>'btn_toggle','onclick'=>"toggle_select(); this.blur();"]); } echo ""; + if ($_GET['show'] !== 'all' && permission_exists('call_forward_all')) { + echo button::create(['type'=>'button','label'=>$text['button-show_all'],'icon'=>$_SESSION['theme']['button_icon_all'],'link'=>'?show=all'.($params ? '&'.implode('&', $params) : null)]); + } echo "