From e71a36bacd1db76bdd6d80f630c7a9782bcd68c9 Mon Sep 17 00:00:00 2001
From: Peter Rotich <peter@osticket.com>
Date: Wed, 8 Aug 2012 13:15:28 -0400
Subject: [PATCH] Add sticky sort to open tickets

---
 include/staff/tickets.inc.php | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/include/staff/tickets.inc.php b/include/staff/tickets.inc.php
index cbe8a6a98..470c69fe0 100644
--- a/include/staff/tickets.inc.php
+++ b/include/staff/tickets.inc.php
@@ -193,15 +193,27 @@ $orderWays=array('DESC'=>'DESC','ASC'=>'ASC');
 $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'];
+    $order_by = $sortOptions[$_SESSION['tickets']['sort']];
+    $order = $_SESSION['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(!$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.
 }
+
 $order_by =$order_by?$order_by:'priority_urgency, effective_date, ticket.created';
 $order=$order?$order:'ASC';
 
-- 
GitLab