diff --git a/include/staff/tickets.inc.php b/include/staff/tickets.inc.php index 341867b3ea2c9829d9c4a0e8e1f489c369a4d7f8..e42075e4c385129823323b0aff82568b5bd8df9f 100644 --- a/include/staff/tickets.inc.php +++ b/include/staff/tickets.inc.php @@ -190,37 +190,40 @@ $sortOptions=array('date'=>'ticket.created','ID'=>'ticketID','pri'=>'priority_ur $orderWays=array('DESC'=>'DESC','ASC'=>'ASC'); //Sorting options... +$queue = isset($_REQUEST['status'])?strtolower($_REQUEST['status']):$status; $order_by=$order=null; if($_REQUEST['sort'] && $sortOptions[$_REQUEST['sort']]) $order_by =$sortOptions[$_REQUEST['sort']]; -elseif(!strcasecmp($status, 'open') && !$showanswered && $sortOptions[$_SESSION['tickets']['sort']]) { - $_REQUEST['sort'] = $_SESSION['tickets']['sort']; - $_REQUEST['order'] = $_SESSION['tickets']['order']; +elseif($sortOptions[$_SESSION[$queue.'_tickets']['sort']]) { + $_REQUEST['sort'] = $_SESSION[$queue.'_tickets']['sort']; + $_REQUEST['order'] = $_SESSION[$queue.'_tickets']['order']; - $order_by = $sortOptions[$_SESSION['tickets']['sort']]; - $order = $_SESSION['tickets']['order']; + $order_by = $sortOptions[$_SESSION[$queue.'_tickets']['sort']]; + $order = $_SESSION[$queue.'_tickets']['order']; } if($_REQUEST['order'] && $orderWays[strtoupper($_REQUEST['order'])]) $order=$orderWays[strtoupper($_REQUEST['order'])]; //Save sort order for sticky sorting. -if(!strcasecmp($status, 'open') && $_REQUEST['sort']) { - $_SESSION['tickets']['sort'] = $_REQUEST['sort']; - $_SESSION['tickets']['order'] = $_REQUEST['order']; +if($_REQUEST['sort'] && $queue) { + $_SESSION[$queue.'_tickets']['sort'] = $_REQUEST['sort']; + $_SESSION[$queue.'_tickets']['order'] = $_REQUEST['order']; } -if(!$order_by && $showanswered) { - $order_by='ticket.lastresponse, ticket.created'; //No priority sorting for answered tickets. -}elseif(!$order_by && !strcasecmp($status,'closed')){ - $order_by='ticket.closed, ticket.created'; //No priority sorting for closed tickets. +//Set default sort by columns. +if(!$order_by ) { + if($showanswered) + $order_by='ticket.lastresponse, ticket.created'; //No priority sorting for answered tickets. + elseif(!strcasecmp($status,'closed')) + $order_by='ticket.closed, ticket.created'; //No priority sorting for closed tickets. + else + $order_by='priority_urgency ASC, effective_date, ticket.created'; } -$order_by =$order_by?$order_by:'priority_urgency, effective_date, ticket.created'; -$order=$order?$order:'ASC'; - -if($order_by && strpos($order_by,',')) - $order_by=str_replace(','," $order,",$order_by); +$order=$order?$order:'DESC'; +if($order_by && strpos($order_by,',') && $order) + $order_by=preg_replace('/(?<!ASC|DESC),/', " $order,", $order_by); $sort=$_REQUEST['sort']?strtolower($_REQUEST['sort']):'urgency'; //Urgency is not on display table. $x=$sort.'_sort';