Finished up search filter... I think
This commit is contained in:
parent
601da6de92
commit
93dac37532
@ -54,8 +54,25 @@ define('PAGE_TITLE', 'ADMIN_HOME');
|
|||||||
|
|
||||||
/* Print header */
|
/* Print header */
|
||||||
require_once(HESK_PATH . 'inc/header_new_admin.inc.php');
|
require_once(HESK_PATH . 'inc/header_new_admin.inc.php');
|
||||||
|
|
||||||
require_once(HESK_PATH . 'inc/new_admin_header_and_sidebar.inc.php');
|
require_once(HESK_PATH . 'inc/new_admin_header_and_sidebar.inc.php');
|
||||||
|
require_once(HESK_PATH . 'hesk_settings.inc.php');
|
||||||
|
require_once(HESK_PATH . 'inc/common.inc.php');
|
||||||
|
require_once(HESK_PATH . 'inc/admin_functions.inc.php');
|
||||||
|
require_once(HESK_PATH . 'inc/status_functions.inc.php');
|
||||||
|
require_once(HESK_PATH . 'inc/ticket/get_tickets.inc.php');
|
||||||
|
|
||||||
|
$statuses = mfh_getAllStatuses();
|
||||||
|
$search_filter = get_empty_filter();
|
||||||
|
$search_filter['status'] = array();
|
||||||
|
foreach ($statuses as $status) {
|
||||||
|
if (!$status['IsClosed']) {
|
||||||
|
$search_filter['status'][] = $status['ID'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$search_filter['critical_on_top'] = true;
|
||||||
|
|
||||||
|
get_tickets($search_filter, $hesk_settings);
|
||||||
|
|
||||||
|
|
||||||
hesk_handle_messages();
|
hesk_handle_messages();
|
||||||
?>
|
?>
|
||||||
@ -67,7 +84,7 @@ hesk_handle_messages();
|
|||||||
</h1>
|
</h1>
|
||||||
<div class="box-tools pull-right">
|
<div class="box-tools pull-right">
|
||||||
<button type="button" class="btn btn-box-tool" data-widget="collapse">
|
<button type="button" class="btn btn-box-tool" data-widget="collapse">
|
||||||
<i class="fa fa-minus" data-toggle="tooltip" title="Collapse"></i>
|
<i class="fa fa-minus"></i>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -34,6 +34,64 @@ function get_tickets($search_filter, $hesk_settings) {
|
|||||||
|
|
||||||
// --> TICKET ASSIGNMENT
|
// --> TICKET ASSIGNMENT
|
||||||
$sql = handle_ticket_assignments($search_filter, $sql);
|
$sql = handle_ticket_assignments($search_filter, $sql);
|
||||||
|
|
||||||
|
// --> TICKET STATUS
|
||||||
|
$statuses = $search_filter['status'];
|
||||||
|
if (count($statuses) > 0) {
|
||||||
|
$sql .= " AND `status` IN ('" . implode("','", $statuses) . "') ";
|
||||||
|
}
|
||||||
|
|
||||||
|
// --> TICKET PRIORITY
|
||||||
|
$priorities = $search_filter['priority'];
|
||||||
|
|
||||||
|
if (count($priorities) > 0) {
|
||||||
|
$sql .= " AND `priority` IN ('" . implode("','", array_keys($priority)) . "') ";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sorting
|
||||||
|
$sql .= " ORDER BY ";
|
||||||
|
|
||||||
|
// --> PUSH TO TOP
|
||||||
|
$force_to_top = $search_filter['force_to_top'];
|
||||||
|
$direction = $search_filter['force_direction'];
|
||||||
|
if ($force_to_top != NULL) {
|
||||||
|
if ($force_to_top == 'owner') {
|
||||||
|
$sql .= " CASE WHEN `owner` = '".intval($_SESSION['id'])."' THEN 1 ELSE 0 END DESC, `owner` ASC, ";
|
||||||
|
} else {
|
||||||
|
$sql .= ' `'.hesk_dbEscape($force_to_top).'` ';
|
||||||
|
$sql .= $direction == 'ascending' ? 'ASC, ' : 'DESC, ';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// --> CRITICAL ON TOP
|
||||||
|
$critical_on_top = $search_filter['critical_on_top'];
|
||||||
|
if ($critical_on_top) {
|
||||||
|
$sql .= " CASE WHEN `priority` = '0' THEN 1 ELSE 0 END DESC , ";
|
||||||
|
}
|
||||||
|
|
||||||
|
// --> SORT BY
|
||||||
|
$sort_by = $search_filter['sort_by'];
|
||||||
|
$sort_direction = $search_filter['sort_direction'];
|
||||||
|
|
||||||
|
if ($sort_by) {
|
||||||
|
$sql .= $sort_by == 'lastreplier'
|
||||||
|
? " CASE WHEN `lastreplier` = '0' THEN 0 ELSE 1 END DESC, COALESCE(`replierid`, NULLIF(`lastreplier`, '0'), `name`) "
|
||||||
|
: ' `'.hesk_dbEscape($sort_by).'` ';
|
||||||
|
} else {
|
||||||
|
$sql .= ' `status` ';
|
||||||
|
$sort_by = 'status';
|
||||||
|
}
|
||||||
|
|
||||||
|
$sql .= $sort_direction == 'ascending'
|
||||||
|
? ' ASC '
|
||||||
|
: ' DESC ';
|
||||||
|
|
||||||
|
if ($sort_by != 'priority') {
|
||||||
|
$sql .= ' , `priority` ASC ';
|
||||||
|
}
|
||||||
|
|
||||||
|
//Uncomment for debugging purposes
|
||||||
|
// echo "SQL: $sql";
|
||||||
}
|
}
|
||||||
|
|
||||||
function handle_ticket_assignments($search_filter, $sql) {
|
function handle_ticket_assignments($search_filter, $sql) {
|
||||||
@ -86,4 +144,22 @@ function handle_ticket_assignments($search_filter, $sql) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return $sql;
|
return $sql;
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_empty_filter() {
|
||||||
|
$search_filter['category'] = NULL;
|
||||||
|
$search_filter['tagged'] = NULL;
|
||||||
|
$search_filter['status'] = NULL;
|
||||||
|
$search_filter['priority'] = NULL;
|
||||||
|
$search_filter['force_to_top'] = NULL;
|
||||||
|
$search_filter['force_direction'] = NULL;
|
||||||
|
$search_filter['critical_on_top'] = NULL;
|
||||||
|
$search_filter['sort_by'] = NULL;
|
||||||
|
$search_filter['sort_direction'] = NULL;
|
||||||
|
$search_filter['assignment'] = array();
|
||||||
|
$search_filter['assignment']['self'] = 0;
|
||||||
|
$search_filter['assignment']['others'] = 0;
|
||||||
|
$search_filter['assignment']['no_one'] = 0;
|
||||||
|
|
||||||
|
return $search_filter;
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user