From 43c5562bba1fe2b57b53e87e283472ca2f0365f0 Mon Sep 17 00:00:00 2001
From: Peter Rotich <peter@enhancesoft.com>
Date: Mon, 29 Oct 2018 19:28:04 +0000
Subject: [PATCH] Status Column: Fix display and sorting

This commit addresses where wrong "primary" field was used to indicate
Ticket Status column. It also fixes an issue where sorting was done via `id`
instead of `name`.
---
 include/class.queue.php              | 2 +-
 include/class.search.php             | 5 +++++
 include/i18n/en_US/queue_column.yaml | 4 ++--
 3 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/include/class.queue.php b/include/class.queue.php
index 6397d34d7..e434661d2 100644
--- a/include/class.queue.php
+++ b/include/class.queue.php
@@ -2377,7 +2377,7 @@ extends VerySimpleModel {
 
             $reverse = $reverse ? '-' : '';
             $query = $query->order_by("{$reverse}{$alias}");
-        } else {
+        } elseif($keys[0]) {
             list($path, $field) = $keys[0];
             $query = $field->applyOrderBy($query, $reverse, $path);
         }
diff --git a/include/class.search.php b/include/class.search.php
index 7248c2519..2db2766ed 100644
--- a/include/class.search.php
+++ b/include/class.search.php
@@ -1565,6 +1565,11 @@ class TicketStatusChoiceField extends SelectionField {
             return parent::getSearchQ($method, $value, $name);
         }
     }
+
+    function applyOrderBy($query, $reverse=false, $name=false) {
+        $reverse = $reverse ? '-' : '';
+        return $query->order_by("{$reverse}status__name");
+    }
 }
 
 class TicketThreadCountField extends NumericField {
diff --git a/include/i18n/en_US/queue_column.yaml b/include/i18n/en_US/queue_column.yaml
index 03250da19..87b3c09c1 100644
--- a/include/i18n/en_US/queue_column.yaml
+++ b/include/i18n/en_US/queue_column.yaml
@@ -69,8 +69,8 @@
   conditions: "[]"
 
 - id: 6
-  name: "Status Name"
-  primary: "status__name"
+  name: "Status"
+  primary: "status__id"
   truncate: "wrap"
   annotations: "[]"
   conditions: "[]"
-- 
GitLab