From 46cb350a2e54a655c44350e726ca2ab20665288c Mon Sep 17 00:00:00 2001
From: Peter Rotich <peter@osticket.com>
Date: Mon, 2 Jan 2017 18:12:36 +0000
Subject: [PATCH] Ticket Filter Data Custom Forms

Include custom fields data associated with custom forms attached to user or
organization to filter data.
---
 include/class.organization.php | 11 +++++++----
 include/class.user.php         |  7 +++++--
 2 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/include/class.organization.php b/include/class.organization.php
index f41e04225..46b1b1839 100644
--- a/include/class.organization.php
+++ b/include/class.organization.php
@@ -269,13 +269,16 @@ implements TemplateVariable {
     function getFilterData() {
         $vars = array();
         foreach ($this->getDynamicData() as $entry) {
+            $vars += $entry->getFilterData();
+
+            // Add special `name` field in Org form
             if ($entry->getDynamicForm()->get('type') != 'O')
                 continue;
-            $vars += $entry->getFilterData();
-            // Add special `name` field
-            $f = $entry->getField('name');
-            $vars['field.'.$f->get('id')] = $this->getName();
+
+            if ($f = $entry->getField('name'))
+                $vars['field.'.$f->get('id')] = $this->getName();
         }
+
         return $vars;
     }
 
diff --git a/include/class.user.php b/include/class.user.php
index 24cae58b9..a4e955c18 100644
--- a/include/class.user.php
+++ b/include/class.user.php
@@ -383,16 +383,19 @@ implements TemplateVariable {
     function getFilterData() {
         $vars = array();
         foreach ($this->getDynamicData() as $entry) {
-            if ($entry->getDynamicForm()->get('type') != 'U')
-                continue;
             $vars += $entry->getFilterData();
+
             // Add in special `name` and `email` fields
+            if ($entry->getDynamicForm()->get('type') != 'U')
+                continue;
+
             foreach (array('name', 'email') as $name) {
                 if ($f = $entry->getField($name))
                     $vars['field.'.$f->get('id')] =
                         $name == 'name' ? $this->getName() : $this->getEmail();
             }
         }
+
         return $vars;
     }
 
-- 
GitLab