From 4ee30460b8940d09526701cbf10cb8b99ab31375 Mon Sep 17 00:00:00 2001 From: markjcrane Date: Thu, 8 Jun 2023 00:34:16 -0600 Subject: [PATCH] Improved logic elminated 2 queries and update show all --- app/fax/fax.php | 182 +++++++++++++++++++++--------------------------- 1 file changed, 78 insertions(+), 104 deletions(-) diff --git a/app/fax/fax.php b/app/fax/fax.php index 426d3b21f3..0ace610c06 100644 --- a/app/fax/fax.php +++ b/app/fax/fax.php @@ -78,17 +78,23 @@ $order_by = $_GET["order_by"] ?? null; $order = $_GET["order"] ?? null; -//add the search - if (isset($_GET["search"])) { - $search = strtolower($_GET["search"]); - } +//add the search and show variables + $search = $_GET["search"] ?? ''; + $show = $_GET["show"] ?? ''; //get record counts - if (permission_exists('fax_extension_view_all') && !empty($_GET['show']) && $_GET['show'] == 'all') { + if (permission_exists('fax_extension_view_all') && permission_exists('fax_extension_view_domain')) { //count the fax extensions $sql = "select count(f.fax_uuid) from v_fax as f "; - if (isset($search)) { - $sql .= "where lower(fax_name) like :search "; + if ($show == "all" && permission_exists('fax_extension_view_all')) { + $sql .= "where true "; + } + else { + $sql .= "where (f.domain_uuid = :domain_uuid or f.domain_uuid is null) "; + $parameters['domain_uuid'] = $_SESSION['domain_uuid']; + } + if (!empty($search)) { + $sql .= "and lower(fax_name) like :search "; $sql .= "or lower(fax_email) like :search "; $sql .= "or lower(fax_extension) like :search "; $sql .= "or lower(fax_destination_number) like :search "; @@ -96,72 +102,60 @@ $sql .= "or lower(fax_caller_id_number) like :search "; $sql .= "or lower(fax_forward_number) like :search "; $sql .= "or lower(fax_description) like :search "; - $parameters['search'] = '%'.$search.'%'; + $parameters['search'] = '%'.strtolower($search).'%'; } } else { - if (permission_exists('fax_extension_view_domain')) { - //count the fax extensions - $sql = "select count(f.fax_uuid) from v_fax as f "; - $sql .= "where f.domain_uuid = :domain_uuid "; - if (isset($search)) { - $sql .= "and ("; - $sql .= " lower(fax_name) like :search "; - $sql .= " or lower(fax_email) like :search "; - $sql .= " or lower(fax_extension) like :search "; - $sql .= " or lower(fax_destination_number) like :search "; - $sql .= " or lower(fax_caller_id_name) like :search "; - $sql .= " or lower(fax_caller_id_number) like :search "; - $sql .= " or lower(fax_forward_number) like :search "; - $sql .= " or lower(fax_description) like :search "; - $sql .= ") "; - $parameters['search'] = '%'.$search.'%'; - } - $parameters['domain_uuid'] = $_SESSION['domain_uuid']; - } - else { - //count the assigned fax extensions - $sql = "select count(f.fax_uuid) "; - $sql .= "from v_fax as f, v_fax_users as u "; - $sql .= "where f.fax_uuid = u.fax_uuid "; - $sql .= "and f.domain_uuid = :domain_uuid "; - $sql .= "and u.user_uuid = :user_uuid "; - if (isset($search)) { - $sql .= "and ("; - $sql .= " lower(fax_name) like :search "; - $sql .= " or lower(fax_email) like :search "; - $sql .= " or lower(fax_extension) like :search "; - $sql .= " or lower(fax_destination_number) like :search "; - $sql .= " or lower(fax_caller_id_name) like :search "; - $sql .= " or lower(fax_caller_id_number) like :search "; - $sql .= " or lower(fax_forward_number) like :search "; - $sql .= " or lower(fax_description) like :search "; - $sql .= ") "; - $parameters['search'] = '%'.$search.'%'; - } - $parameters['domain_uuid'] = $_SESSION['domain_uuid']; - $parameters['user_uuid'] = $_SESSION['user_uuid']; + //count the assigned fax extensions + $sql = "select count(f.fax_uuid) "; + $sql .= "from v_fax as f, v_fax_users as u "; + $sql .= "where f.fax_uuid = u.fax_uuid "; + $sql .= "and f.domain_uuid = :domain_uuid "; + $sql .= "and u.user_uuid = :user_uuid "; + if (!empty($search)) { + $sql .= "and ("; + $sql .= " lower(fax_name) like :search "; + $sql .= " or lower(fax_email) like :search "; + $sql .= " or lower(fax_extension) like :search "; + $sql .= " or lower(fax_destination_number) like :search "; + $sql .= " or lower(fax_caller_id_name) like :search "; + $sql .= " or lower(fax_caller_id_number) like :search "; + $sql .= " or lower(fax_forward_number) like :search "; + $sql .= " or lower(fax_description) like :search "; + $sql .= ") "; + $parameters['search'] = '%'.strtolower($search).'%'; } + $parameters['domain_uuid'] = $_SESSION['domain_uuid']; + $parameters['user_uuid'] = $_SESSION['user_uuid']; } $database = new database; $num_rows = $database->select($sql, $parameters, 'column'); //prepare paging - $rows_per_page = ($_SESSION['domain']['paging']['numeric'] != '') ? $_SESSION['domain']['paging']['numeric'] : 50; - $param = !empty($search) ? "search=".$search : null; - $param .= permission_exists('fax_extension_view_all') && !empty($_GET['show']) && $_GET['show'] == 'all' ? (!empty($search) ? '&' : '?')."show=all" : null; - $page = !empty($_GET['page']) && is_numeric($_GET['page']) ? $_GET['page'] : 0; + $rows_per_page = (!empty($_SESSION['domain']['paging']['numeric'])) ? $_SESSION['domain']['paging']['numeric'] : 50; + $param = "&search=".urlencode($search); + if ($show == "all" && permission_exists('fax_extension_view_all')) { + $param .= "&show=all"; + } + $page = !empty($_GET['page']) ? $_GET['page'] : 0; list($paging_controls, $rows_per_page) = paging($num_rows, $param, $rows_per_page); list($paging_controls_mini, $rows_per_page) = paging($num_rows, $param, $rows_per_page, true); $offset = $rows_per_page * $page; //get fax extensions - if (permission_exists('fax_extension_view_all') && !empty($_GET['show']) && $_GET['show'] == 'all') { + if (permission_exists('fax_extension_view_all') || permission_exists('fax_extension_view_domain')) { //show all fax extensions $sql = "select f.fax_uuid, f.domain_uuid, fax_extension, fax_prefix, fax_name, fax_email, fax_description "; $sql .= "from v_fax as f "; - if (isset($search)) { - $sql .= "where lower(fax_name) like :search "; + if ($show == "all" && permission_exists('fax_extension_view_all')) { + $sql .= "where true "; + } + else { + $sql .= "where (f.domain_uuid = :domain_uuid or f.domain_uuid is null) "; + $parameters['domain_uuid'] = $_SESSION['domain_uuid']; + } + if (!empty($search)) { + $sql .= "and lower(fax_name) like :search "; $sql .= "or lower(fax_email) like :search "; $sql .= "or lower(fax_extension) like :search "; $sql .= "or lower(fax_destination_number) like :search "; @@ -169,53 +163,31 @@ $sql .= "or lower(fax_caller_id_number) like :search "; $sql .= "or lower(fax_forward_number) like :search "; $sql .= "or lower(fax_description) like :search "; - $parameters['search'] = '%'.$search.'%'; + $parameters['search'] = '%'.strtolower($search).'%'; } } else { - if (permission_exists('fax_extension_view_domain')) { - //show all fax extensions - $sql = "select f.fax_uuid, fax_extension, fax_prefix, fax_name, fax_email, fax_description "; - $sql .= "from v_fax as f "; - $sql .= "where f.domain_uuid = :domain_uuid "; - if (isset($search)) { - $sql .= "and ("; - $sql .= " lower(fax_name) like :search "; - $sql .= " or lower(fax_email) like :search "; - $sql .= " or lower(fax_extension) like :search "; - $sql .= " or lower(fax_destination_number) like :search "; - $sql .= " or lower(fax_caller_id_name) like :search "; - $sql .= " or lower(fax_caller_id_number) like :search "; - $sql .= " or lower(fax_forward_number) like :search "; - $sql .= " or lower(fax_description) like :search "; - $sql .= ") "; - $parameters['search'] = '%'.$search.'%'; - } - $parameters['domain_uuid'] = $_SESSION['domain_uuid']; - } - else { - //show only assigned fax extensions - $sql = "select f.fax_uuid, fax_extension, fax_prefix, fax_name, fax_email, fax_description "; - $sql .= "from v_fax as f, v_fax_users as u "; - $sql .= "where f.fax_uuid = u.fax_uuid "; - $sql .= "and f.domain_uuid = :domain_uuid "; - $sql .= "and u.user_uuid = :user_uuid "; - if (isset($search)) { - $sql .= "and ("; - $sql .= " lower(fax_name) like :search "; - $sql .= " or lower(fax_email) like :search "; - $sql .= " or lower(fax_extension) like :search "; - $sql .= " or lower(fax_destination_number) like :search "; - $sql .= " or lower(fax_caller_id_name) like :search "; - $sql .= " or lower(fax_caller_id_number) like :search "; - $sql .= " or lower(fax_forward_number) like :search "; - $sql .= " or lower(fax_description) like :search "; - $sql .= ") "; - $parameters['search'] = '%'.$search.'%'; - } - $parameters['domain_uuid'] = $_SESSION['domain_uuid']; - $parameters['user_uuid'] = $_SESSION['user_uuid']; + //show only assigned fax extensions + $sql = "select f.fax_uuid, fax_extension, fax_prefix, fax_name, fax_email, fax_description "; + $sql .= "from v_fax as f, v_fax_users as u "; + $sql .= "where f.fax_uuid = u.fax_uuid "; + $sql .= "and f.domain_uuid = :domain_uuid "; + $sql .= "and u.user_uuid = :user_uuid "; + if (isset($search)) { + $sql .= "and ("; + $sql .= " lower(fax_name) like :search "; + $sql .= " or lower(fax_email) like :search "; + $sql .= " or lower(fax_extension) like :search "; + $sql .= " or lower(fax_destination_number) like :search "; + $sql .= " or lower(fax_caller_id_name) like :search "; + $sql .= " or lower(fax_caller_id_number) like :search "; + $sql .= " or lower(fax_forward_number) like :search "; + $sql .= " or lower(fax_description) like :search "; + $sql .= ") "; + $parameters['search'] = '%'.strtolower($search).'%'; } + $parameters['domain_uuid'] = $_SESSION['domain_uuid']; + $parameters['user_uuid'] = $_SESSION['user_uuid']; } $sql .= order_by($order_by, $order, 'f.fax_name', 'asc'); $sql .= limit_offset($rows_per_page, $offset); @@ -244,13 +216,15 @@ if (permission_exists('fax_extension_delete') && $result) { echo button::create(['type'=>'button','label'=>$text['button-delete'],'icon'=>$_SESSION['theme']['button_icon_delete'],'id'=>'btn_delete','name'=>'btn_delete','style'=>'display: none;','onclick'=>"modal_open('modal-delete','btn_delete');"]); } - if (permission_exists('fax_extension_view_all') && !empty($_GET['show']) && $_GET['show'] != 'all') { - echo button::create(['type'=>'button','label'=>$text['button-show_all'],'icon'=>$_SESSION['theme']['button_icon_all'],'link'=>'?show=all'.(!empty($search) ? '&search='.urlencode($search) : null)]); + if (permission_exists('fax_extension_view_all')) { + if ($show == 'all') { + echo " "; + } + else { + echo button::create(['type'=>'button','label'=>$text['button-show_all'],'icon'=>$_SESSION['theme']['button_icon_all'],'link'=>'?type=&show=all'.(!empty($search) ? "&search=".urlencode($search) : null)]); + } } echo "