Destinations/Extensions/Voicemails: Better sorting ability.

This commit is contained in:
reliberate 2016-03-28 15:21:05 -06:00
parent 6fe526a22b
commit 5793de2851
4 changed files with 29 additions and 15 deletions

View File

@ -102,7 +102,7 @@ else {
//rework select data query //rework select data query
$sql = str_replace('count(extension_uuid) as count', '*', $sql); $sql = str_replace('count(extension_uuid) as count', '*', $sql);
$sql .= ' order by cast(extension as int)'; $sql .= ' order by cast(extension as int) asc';
$sql .= " limit ".$rows_per_page." offset ".$offset." "; $sql .= " limit ".$rows_per_page." offset ".$offset." ";
//execute select data query //execute select data query

View File

@ -40,10 +40,8 @@ else {
//get the http values and set them as variables //get the http values and set them as variables
$search = check_str($_GET["search"]); $search = check_str($_GET["search"]);
if (isset($_GET["order_by"])) { $order_by = check_str($_GET["order_by"]);
$order_by = check_str($_GET["order_by"]); $order = check_str($_GET["order"]);
$order = check_str($_GET["order"]);
}
//includes and title //includes and title
require_once "resources/header.php"; require_once "resources/header.php";
@ -113,7 +111,17 @@ else {
$sql .= " or destination_description like '%".$search."%' "; $sql .= " or destination_description like '%".$search."%' ";
$sql .= ") "; $sql .= ") ";
} }
if (strlen($order_by) > 0) { $sql .= "order by $order_by $order "; } if (strlen($order_by) > 0) {
if ($order_by == 'destination_type') {
$sql .= "order by destination_type ".$order.", destination_number asc ";
}
else {
$sql .= "order by ".$order_by." ".$order." ";
}
}
else {
$sql .= "order by destination_type asc, destination_number asc ";
}
$sql .= "limit $rows_per_page offset $offset "; $sql .= "limit $rows_per_page offset $offset ";
$prep_statement = $db->prepare(check_sql($sql)); $prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute(); $prep_statement->execute();

View File

@ -40,10 +40,8 @@ else {
//get the http values and set them as variables //get the http values and set them as variables
$search = check_str($_GET["search"]); $search = check_str($_GET["search"]);
if (isset($_GET["order_by"])) { $order_by = check_str($_GET["order_by"]);
$order_by = check_str($_GET["order_by"]); $order = check_str($_GET["order"]);
$order = check_str($_GET["order"]);
}
//handle search term //handle search term
$search = check_str($_GET["search"]); $search = check_str($_GET["search"]);
@ -100,11 +98,11 @@ require_once "resources/paging.php";
$sql = "select * from v_extensions "; $sql = "select * from v_extensions ";
$sql .= "where domain_uuid = '$domain_uuid' "; $sql .= "where domain_uuid = '$domain_uuid' ";
$sql .= $sql_mod; //add search mod from above $sql .= $sql_mod; //add search mod from above
if (isset($order_by)) { if (strlen($order_by) > 0) {
$sql .= "order by $order_by $order "; $sql .= ($order_by == 'extension') ? "order by cast(extension as int) ".$order." " : "order by ".$order_by." ".$order." ";
} }
else { else {
$sql .= "order by extension asc "; $sql .= "order by cast(extension as int) asc ";
} }
$sql .= " limit $rows_per_page offset $offset "; $sql .= " limit $rows_per_page offset $offset ";
$prep_statement = $db->prepare(check_sql($sql)); $prep_statement = $db->prepare(check_sql($sql));

View File

@ -38,6 +38,10 @@ else {
$language = new text; $language = new text;
$text = $language->get(); $text = $language->get();
//retrieve order by
$order_by = check_str($_GET["order_by"]);
$order = check_str($_GET["order"]);
//set the voicemail id and voicemail uuid arrays //set the voicemail id and voicemail uuid arrays
foreach ($_SESSION['user']['extension'] as $index => $row) { foreach ($_SESSION['user']['extension'] as $index => $row) {
if (strlen($row['number_alias']) > 0) { if (strlen($row['number_alias']) > 0) {
@ -104,7 +108,6 @@ else {
$rows_per_page = 150; $rows_per_page = 150;
$param = ""; $param = "";
if ($search != '') { $param .= "&search=".$search; } if ($search != '') { $param .= "&search=".$search; }
if ($order_by != '') { $param .= "&order_by=".$order_by."&order=".$order; }
$page = $_GET['page']; $page = $_GET['page'];
if (strlen($page) == 0) { $page = 0; $_GET['page'] = 0; } if (strlen($page) == 0) { $page = 0; $_GET['page'] = 0; }
list($paging_controls, $rows_per_page, $var3) = paging($num_rows, $param, $rows_per_page); list($paging_controls, $rows_per_page, $var3) = paging($num_rows, $param, $rows_per_page);
@ -112,7 +115,12 @@ else {
//get the list //get the list
$sql = str_replace('count(*) as num_rows', '*', $sql); $sql = str_replace('count(*) as num_rows', '*', $sql);
$sql .= ($order_by != '') ? "order by ".$order_by." ".$order." " : "order by voicemail_id asc "; if (strlen($order_by) > 0) {
$sql .= ($order_by == 'voicemail_id') ? "order by cast(voicemail_id as int) ".$order." " : "order by ".$order_by." ".$order." ";
}
else {
$sql .= "order by cast(voicemail_id as int) asc ";
}
$sql .= "limit ".$rows_per_page." offset ".$offset." "; $sql .= "limit ".$rows_per_page." offset ".$offset." ";
$prep_statement = $db->prepare(check_sql($sql)); $prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute(); $prep_statement->execute();