|
@@ -17,7 +17,7 @@
|
|
|
|
|
|
The Initial Developer of the Original Code is
|
|
The Initial Developer of the Original Code is
|
|
Mark J Crane <[email protected]>
|
|
Mark J Crane <[email protected]>
|
|
- Portions created by the Initial Developer are Copyright (C) 2008-2016
|
|
|
|
|
|
+ Portions created by the Initial Developer are Copyright (C) 2008-2025
|
|
the Initial Developer. All Rights Reserved.
|
|
the Initial Developer. All Rights Reserved.
|
|
|
|
|
|
Contributor(s):
|
|
Contributor(s):
|
|
@@ -30,7 +30,6 @@
|
|
require_once "resources/pdo.php";
|
|
require_once "resources/pdo.php";
|
|
require_once "resources/check_auth.php";
|
|
require_once "resources/check_auth.php";
|
|
require_once "resources/paging.php";
|
|
require_once "resources/paging.php";
|
|
- require_once "resources/header.php";
|
|
|
|
|
|
|
|
//check permissions
|
|
//check permissions
|
|
if (permission_exists('mobile_twinning_view')) {
|
|
if (permission_exists('mobile_twinning_view')) {
|
|
@@ -41,40 +40,46 @@
|
|
exit;
|
|
exit;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+//initialize the database object
|
|
|
|
+ $database = new database;
|
|
|
|
+
|
|
//add multi-lingual support
|
|
//add multi-lingual support
|
|
$language = new text;
|
|
$language = new text;
|
|
$text = $language->get();
|
|
$text = $language->get();
|
|
|
|
|
|
-//get the https values and set as variables
|
|
|
|
- $order_by = check_str($_GET["order_by"]);
|
|
|
|
- $order = check_str($_GET["order"]);
|
|
|
|
-
|
|
|
|
-//handle search term
|
|
|
|
- $search = check_str($_GET["search"]);
|
|
|
|
- if (strlen($search) > 0) {
|
|
|
|
- $sql_mod = "and ( ";
|
|
|
|
- $sql_mod .= "e.extension ILIKE '%".$search."%' ";
|
|
|
|
- $sql_mod .= "or e.description ILIKE '%".$search."%' ";
|
|
|
|
- $sql_mod .= "or m.mobile_twinning_number ILIKE '%".$search."%' ";
|
|
|
|
- $sql_mod .= ") ";
|
|
|
|
- }
|
|
|
|
- if (strlen($order_by) < 1) {
|
|
|
|
- $order_by = "e.extension";
|
|
|
|
- $order = "ASC";
|
|
|
|
|
|
+//get order and order by
|
|
|
|
+ $order_by = $_GET["order_by"] ?? 'extension';
|
|
|
|
+ $order = $_GET["order"] ?? 'asc';
|
|
|
|
+ $sort = $order_by == 'extension' ? 'natural' : null;
|
|
|
|
+
|
|
|
|
+//get total extension count for domain
|
|
|
|
+ if (isset($_SESSION['limit']['extensions']['numeric'])) {
|
|
|
|
+ $sql = "select count(*) from v_extensions ";
|
|
|
|
+ $sql .= "where domain_uuid = :domain_uuid ";
|
|
|
|
+ $parameters['domain_uuid'] = $_SESSION['domain_uuid'];
|
|
|
|
+ $total_extensions = $database->select($sql, $parameters, 'column');
|
|
|
|
+ unset($sql, $parameters);
|
|
}
|
|
}
|
|
|
|
|
|
-//get total extension count from the database
|
|
|
|
- $sql = "select count(*) as num_rows from v_extensions where domain_uuid = '".$_SESSION['domain_uuid']."' ".$sql_mod." ";
|
|
|
|
- $prep_statement = $db->prepare($sql);
|
|
|
|
- if ($prep_statement) {
|
|
|
|
- $prep_statement->execute();
|
|
|
|
- $row = $prep_statement->fetch(PDO::FETCH_ASSOC);
|
|
|
|
- $total_extensions = $row['num_rows'];
|
|
|
|
- if (($db_type == "pgsql") or ($db_type == "mysql")) {
|
|
|
|
- $numeric_extensions = $row['num_rows'];
|
|
|
|
- }
|
|
|
|
|
|
+//add the search term
|
|
|
|
+ $search = strtolower($_GET["search"] ?? '');
|
|
|
|
+
|
|
|
|
+//get total extension count
|
|
|
|
+ $sql = "select count(*) from v_extensions ";
|
|
|
|
+ $sql .= "where true ";
|
|
|
|
+ if (!(!empty($_GET['show']) && $_GET['show'] == "all" && permission_exists('extension_all'))) {
|
|
|
|
+ $sql .= "and domain_uuid = :domain_uuid ";
|
|
|
|
+ $parameters['domain_uuid'] = $_SESSION['domain_uuid'];
|
|
|
|
+ }
|
|
|
|
+ if (!empty($search)) {
|
|
|
|
+ $sql .= "and ( ";
|
|
|
|
+ $sql .= " lower(extension) like :search ";
|
|
|
|
+ $sql .= " or lower(mobile_twinning_number) like :search ";
|
|
|
|
+ $sql .= " or lower(description) like :search ";
|
|
|
|
+ $sql .= ") ";
|
|
|
|
+ $parameters['search'] = '%'.$search.'%';
|
|
}
|
|
}
|
|
- unset($prep_statement, $row);
|
|
|
|
|
|
+ $num_rows = $database->select($sql, $parameters ?? null, 'column');
|
|
|
|
|
|
//prepare to page the results
|
|
//prepare to page the results
|
|
$rows_per_page = ($_SESSION['domain']['paging']['numeric'] != '') ? $_SESSION['domain']['paging']['numeric'] : 50;
|
|
$rows_per_page = ($_SESSION['domain']['paging']['numeric'] != '') ? $_SESSION['domain']['paging']['numeric'] : 50;
|
|
@@ -89,8 +94,19 @@
|
|
$sql = "select e.extension, m.mobile_twinning_number, e.description, m.mobile_twinning_uuid, e.extension_uuid \n";
|
|
$sql = "select e.extension, m.mobile_twinning_number, e.description, m.mobile_twinning_uuid, e.extension_uuid \n";
|
|
$sql .= "FROM v_extensions AS e \n ";
|
|
$sql .= "FROM v_extensions AS e \n ";
|
|
$sql .= "LEFT OUTER JOIN v_mobile_twinnings AS m ON m.extension_uuid = e.extension_uuid ";
|
|
$sql .= "LEFT OUTER JOIN v_mobile_twinnings AS m ON m.extension_uuid = e.extension_uuid ";
|
|
- $sql .= "where e.domain_uuid = '$domain_uuid' ";
|
|
|
|
- $sql .= $sql_mod; //add search mod from above
|
|
|
|
|
|
+ $sql .= "where true ";
|
|
|
|
+ if (!(!empty($_GET['show']) && $_GET['show'] == "all" && permission_exists('extension_all'))) {
|
|
|
|
+ $sql .= "and e.domain_uuid = :domain_uuid ";
|
|
|
|
+ $parameters['domain_uuid'] = $_SESSION['domain_uuid'];
|
|
|
|
+ }
|
|
|
|
+ if (!empty($search)) {
|
|
|
|
+ $sql .= "and ( ";
|
|
|
|
+ $sql .= " lower(extension) like :search ";
|
|
|
|
+ $sql .= " or lower(mobile_twinning_number) like :search ";
|
|
|
|
+ $sql .= " or lower(description) like :search ";
|
|
|
|
+ $sql .= ") ";
|
|
|
|
+ $parameters['search'] = '%'.$search.'%';
|
|
|
|
+ }
|
|
$sql .= "and e.enabled = 'true' ";
|
|
$sql .= "and e.enabled = 'true' ";
|
|
if (strlen($order_by)> 0) {
|
|
if (strlen($order_by)> 0) {
|
|
$sql .= "order by $order_by $order ";
|
|
$sql .= "order by $order_by $order ";
|
|
@@ -99,11 +115,16 @@
|
|
$sql .= "order by extension asc ";
|
|
$sql .= "order by extension asc ";
|
|
}
|
|
}
|
|
$sql .= " limit $rows_per_page offset $offset ";
|
|
$sql .= " limit $rows_per_page offset $offset ";
|
|
- $prep_statement = $db->prepare(check_sql($sql));
|
|
|
|
- $prep_statement->execute();
|
|
|
|
- $result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
|
|
|
|
|
|
+ $result = $database->select($sql, $parameters ?? null, 'all');
|
|
$result_count = count($result);
|
|
$result_count = count($result);
|
|
- unset ($prep_statement, $sql);
|
|
|
|
|
|
+ unset($parameters, $sql);
|
|
|
|
+
|
|
|
|
+//create token
|
|
|
|
+ $object = new token;
|
|
|
|
+ $token = $object->create($_SERVER['PHP_SELF']);
|
|
|
|
+
|
|
|
|
+//include the header
|
|
|
|
+ require_once "resources/header.php";
|
|
|
|
|
|
//set the alternating styles
|
|
//set the alternating styles
|
|
$c = 0;
|
|
$c = 0;
|
|
@@ -112,7 +133,7 @@
|
|
|
|
|
|
//begin the content
|
|
//begin the content
|
|
echo "<div class='action_bar' id='action_bar'>\n";
|
|
echo "<div class='action_bar' id='action_bar'>\n";
|
|
- echo " <div class='heading'><b>".$text['header-mobile_twinning']."</b><div class='count'>".number_format($numeric_extensions)."</div></div>\n";
|
|
|
|
|
|
+ echo " <div class='heading'><b>".$text['header-mobile_twinning']."</b><div class='count'>".number_format($result_count)."</div></div>\n";
|
|
echo " <div class='actions'>\n";
|
|
echo " <div class='actions'>\n";
|
|
if ((if_group("admin") || if_group("superadmin"))) {
|
|
if ((if_group("admin") || if_group("superadmin"))) {
|
|
echo " <form method='get' action=''>\n";
|
|
echo " <form method='get' action=''>\n";
|
|
@@ -143,9 +164,9 @@
|
|
foreach($result as $row) {
|
|
foreach($result as $row) {
|
|
$tr_link = (permission_exists('mobile_twinning_edit')) ? " href='mobile_twinning_edit.php?id=".$row['mobile_twinning_uuid']."&extid=".$row['extension_uuid']."'" : null;
|
|
$tr_link = (permission_exists('mobile_twinning_edit')) ? " href='mobile_twinning_edit.php?id=".$row['mobile_twinning_uuid']."&extid=".$row['extension_uuid']."'" : null;
|
|
echo "<tr ".$tr_link.">\n";
|
|
echo "<tr ".$tr_link.">\n";
|
|
- echo " <td valign='top' class='".$row_style[$c]."'>".$row['extension']."</td>\n";
|
|
|
|
- echo " <td valign='top' class='".$row_style[$c]."'>".format_phone(substr($row['mobile_twinning_number'],-10))."</td>\n";
|
|
|
|
- echo " <td valign='top' class='row_stylebg' width='40%'>".$row['description']." </td>\n";
|
|
|
|
|
|
+ echo " <td valign='top' class='".$row_style[$c]."'>".escape($row['extension'])."</td>\n";
|
|
|
|
+ echo " <td valign='top' class='".$row_style[$c]."'>".escape(format_phone(substr($row['mobile_twinning_number'],-10)))."</td>\n";
|
|
|
|
+ echo " <td valign='top' class='row_stylebg' width='40%'>".escape($row['description'])." </td>\n";
|
|
echo " <td class='list_control_icons'>";
|
|
echo " <td class='list_control_icons'>";
|
|
echo " <a href='mobile_twinning_edit.php?id=".$row['mobile_twinning_uuid']."&extid=".$row['extension_uuid']."'>$v_link_label_edit</a>";
|
|
echo " <a href='mobile_twinning_edit.php?id=".$row['mobile_twinning_uuid']."&extid=".$row['extension_uuid']."'>$v_link_label_edit</a>";
|
|
echo " </td>\n";
|
|
echo " </td>\n";
|