From ab5a6423859e42f566fc03963dbea02c86c36b5e Mon Sep 17 00:00:00 2001
From: Jared Hancock <jared@osticket.com>
Date: Mon, 20 Jul 2015 15:34:55 -0500
Subject: [PATCH] filters: Restrict ticket statuses to derivatives of open and
 closed

---
 include/class.filter_action.php |  5 ++++-
 include/class.search.php        | 13 ++++++++++++-
 2 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/include/class.filter_action.php b/include/class.filter_action.php
index 577a07d83..62d66cb32 100644
--- a/include/class.filter_action.php
+++ b/include/class.filter_action.php
@@ -437,7 +437,10 @@ class FA_SetStatus extends TriggerAction {
 
     function getConfigurationOptions() {
         $choices = array();
-        foreach (TicketStatusList::getStatuses() as $S) {
+        foreach (TicketStatusList::getStatuses(array(
+            'states' => array('open', 'closed')
+        ))
+        as $S) {
             // TODO: Move this to TicketStatus::getName
             $name = $S->getName();
             if (!($isenabled = $S->isEnabled()))
diff --git a/include/class.search.php b/include/class.search.php
index 35b32e8b2..f1de81937 100644
--- a/include/class.search.php
+++ b/include/class.search.php
@@ -1129,11 +1129,22 @@ class TicketSourceChoiceField extends ChoiceField {
     }
 }
 
+class OpenClosedTicketStatusList extends TicketStatusList {
+    function getItems($criteria=array()) {
+        $rv = array();
+        $base = parent::getItems($criteria);
+        foreach ($base as $idx=>$S) {
+            if (in_array($S->state, array('open', 'closed')))
+                $rv[$idx] = $S;
+        }
+        return $rv;
+    }
+}
 class TicketStatusChoiceField extends SelectionField {
     static $widget = 'ChoicesWidget';
 
     function getList() {
-        return new TicketStatusList(
+        return new OpenClosedTicketStatusList(
             DynamicList::lookup(
                 array('type' => 'ticket-status'))
         );
-- 
GitLab