From 4f0e8bf3a329981f73cee33492e0fee48d71b384 Mon Sep 17 00:00:00 2001
From: Jared Hancock <jared@osticket.com>
Date: Tue, 6 Oct 2015 20:05:35 -0400
Subject: [PATCH] queue: Implement inheritance for quick filter

---
 include/class.queue.php     | 7 ++++++-
 include/class.search.php    | 4 ++--
 include/staff/queue.inc.php | 8 +++++++-
 3 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/include/class.queue.php b/include/class.queue.php
index 8bf73879a..510b4c466 100644
--- a/include/class.queue.php
+++ b/include/class.queue.php
@@ -194,7 +194,12 @@ class CustomQueue extends SavedSearch {
     }
 
     function getQuickFilterField($value=null) {
-        if ($this->filter
+        if ($this->filter == '::') {
+            if ($this->parent) {
+                return $this->parent->getQuickFilterField($value);
+            }
+        }
+        elseif ($this->filter
             && ($fields = SavedSearch::getSearchableFields($this->getRoot()))
             && (list(,$f) = @$fields[$this->filter])
             && $f->supportsQuickFilter()
diff --git a/include/class.search.php b/include/class.search.php
index 06a728424..6626f1225 100644
--- a/include/class.search.php
+++ b/include/class.search.php
@@ -1107,11 +1107,11 @@ class SavedSearch extends VerySimpleModel {
     }
 
     protected function hasFlag($flag) {
-        return $this->get('flags') & $flag !== 0;
+        return $this->flags & $flag !== 0;
     }
 
     protected function clearFlag($flag) {
-        return $this->set('flags', $this->get('flag') & ~$flag);
+        return $this->flags &= ~$flag;
     }
 
     protected function setFlag($flag, $value=true) {
diff --git a/include/staff/queue.inc.php b/include/staff/queue.inc.php
index 47df03bfb..3cc19582d 100644
--- a/include/staff/queue.inc.php
+++ b/include/staff/queue.inc.php
@@ -89,7 +89,13 @@ else {
         <div><strong><?php echo __("Quick Filter"); ?></strong></div>
         <hr/>
         <select name="filter">
-          <option value="::">— <?php echo __('Inherit from parent'); ?> —</option>
+          <option value="" <?php if ($queue->filter == "")
+              echo 'selected="selected"'; ?>>— <?php echo __('None'); ?> —</option>
+          <option value="::" <?php if ($queue->filter == "::")
+              echo 'selected="selected"'; ?>>— <?php echo __('Inherit from parent');
+            if ($queue->parent 
+                && ($qf = $queue->parent->getQuickFilterField()))
+                echo sprintf(' (%s)', $qf->getLabel()); ?> —</option>
 <?php foreach (SavedSearch::getSearchableFields('Ticket') as $path=>$f) {
         list($label, $field) = $f;
         if (!$field->supportsQuickFilter())
-- 
GitLab