From 397e184d236d05445e9261b14e0ac86b143500c5 Mon Sep 17 00:00:00 2001
From: Peter Rotich <peter@osticket.com>
Date: Fri, 16 Jan 2015 04:33:08 +0000
Subject: [PATCH] installer: bug fixes

---
 include/class.canned.php                                   | 5 ++---
 include/class.topic.php                                    | 1 +
 include/upgrader/streams/core.sig                          | 2 +-
 ...-a22c2b4f.cleanup.sql => 5cd0a25a-2d590ffa.cleanup.sql} | 2 +-
 ...a25a-a22c2b4f.patch.sql => 5cd0a25a-2d590ffa.patch.sql} | 7 ++++---
 ...d0a25a-a22c2b4f.task.php => 5cd0a25a-2d590ffa.task.php} | 0
 setup/inc/streams/core/install-mysql.sql                   | 4 +++-
 7 files changed, 12 insertions(+), 9 deletions(-)
 rename include/upgrader/streams/core/{5cd0a25a-a22c2b4f.cleanup.sql => 5cd0a25a-2d590ffa.cleanup.sql} (90%)
 rename include/upgrader/streams/core/{5cd0a25a-a22c2b4f.patch.sql => 5cd0a25a-2d590ffa.patch.sql} (96%)
 rename include/upgrader/streams/core/{5cd0a25a-a22c2b4f.task.php => 5cd0a25a-2d590ffa.task.php} (100%)

diff --git a/include/class.canned.php b/include/class.canned.php
index ca1354332..f3c6bb363 100644
--- a/include/class.canned.php
+++ b/include/class.canned.php
@@ -50,12 +50,10 @@ class Canned {
         if(!$id && !($id=$this->getId()))
             return false;
 
-        $sql='SELECT canned.*, count(attach.file_id) as attachments, '
-            .' count(filter.id) as filters '
+        $sql='SELECT canned.*, count(attach.file_id) as attachments '
             .' FROM '.CANNED_TABLE.' canned '
             .' LEFT JOIN '.ATTACHMENT_TABLE.' attach
                     ON (attach.object_id=canned.canned_id AND attach.`type`=\'C\' AND NOT attach.inline) '
-            .' LEFT JOIN '.FILTER_TABLE.' filter ON (canned.canned_id = filter.canned_response_id) '
             .' WHERE canned.canned_id='.db_input($id)
             .' GROUP BY canned.canned_id';
 
@@ -87,6 +85,7 @@ class Canned {
     }
 
     function getNumFilters() {
+        //XXX : Query the filter action table and cache the results
         return $this->ht['filters'];
     }
 
diff --git a/include/class.topic.php b/include/class.topic.php
index eda6a2a69..9daeb7f07 100644
--- a/include/class.topic.php
+++ b/include/class.topic.php
@@ -135,6 +135,7 @@ class Topic extends VerySimpleModel {
 
     function getForms() {
         if (!isset($this->_forms)) {
+            $this->_forms = array();
             foreach ($this->forms->select_related('form') as $F) {
                 $extra = JsonDataParser::decode($F->extra) ?: array();
                 $F->form->disableFields($extra['disable'] ?: array());
diff --git a/include/upgrader/streams/core.sig b/include/upgrader/streams/core.sig
index 3cbda6fa0..eabf53b3d 100644
--- a/include/upgrader/streams/core.sig
+++ b/include/upgrader/streams/core.sig
@@ -1 +1 @@
-a22c2b4ff54ce5aa61e94124a73e6eac
+2d590ffab4a6a928f08cc97aace1399e
diff --git a/include/upgrader/streams/core/5cd0a25a-a22c2b4f.cleanup.sql b/include/upgrader/streams/core/5cd0a25a-2d590ffa.cleanup.sql
similarity index 90%
rename from include/upgrader/streams/core/5cd0a25a-a22c2b4f.cleanup.sql
rename to include/upgrader/streams/core/5cd0a25a-2d590ffa.cleanup.sql
index dd4a3f887..7d56ebf53 100644
--- a/include/upgrader/streams/core/5cd0a25a-a22c2b4f.cleanup.sql
+++ b/include/upgrader/streams/core/5cd0a25a-2d590ffa.cleanup.sql
@@ -1,5 +1,5 @@
 /**
- * @signature 0e47d678f50874fa0d33e1e3759f657e
+ * @signature 2d590ffab4a6a928f08cc97aace1399e
  * @version v1.9.6
  * @title Make fields disable-able per help topic
  */
diff --git a/include/upgrader/streams/core/5cd0a25a-a22c2b4f.patch.sql b/include/upgrader/streams/core/5cd0a25a-2d590ffa.patch.sql
similarity index 96%
rename from include/upgrader/streams/core/5cd0a25a-a22c2b4f.patch.sql
rename to include/upgrader/streams/core/5cd0a25a-2d590ffa.patch.sql
index 509c83519..01ec999ab 100644
--- a/include/upgrader/streams/core/5cd0a25a-a22c2b4f.patch.sql
+++ b/include/upgrader/streams/core/5cd0a25a-2d590ffa.patch.sql
@@ -1,5 +1,5 @@
 /**
- * @signature a22c2b4ff54ce5aa61e94124a73e6eac
+ * @signature 2d590ffab4a6a928f08cc97aace1399e
  * @version v1.9.6
  * @title Make fields disable-able per help topic
  *
@@ -104,7 +104,8 @@ CREATE TABLE `%TABLE_PREFIX%help_topic_form` (
   `form_id` int(10) unsigned NOT NULL default 0,
   `sort` int(10) unsigned NOT NULL default 1,
   `extra` text,
-  PRIMARY KEY  (`topic_id`, `form_id`)
+  PRIMARY KEY (`id`),
+  KEY `topic-form` (`topic_id`, `form_id`)
 ) DEFAULT CHARSET=utf8;
 
 -- Handle A4 / A3 / A2 / A1 help topics. For these, consider the forms
@@ -134,5 +135,5 @@ ALTER TABLE `%TABLE_PREFIX%help_topic`
 
 -- Finished with patch
 UPDATE `%TABLE_PREFIX%config`
-    SET `value` = 'a22c2b4ff54ce5aa61e94124a73e6eac'
+    SET `value` = '2d590ffab4a6a928f08cc97aace1399e'
     WHERE `key` = 'schema_signature' AND `namespace` = 'core';
diff --git a/include/upgrader/streams/core/5cd0a25a-a22c2b4f.task.php b/include/upgrader/streams/core/5cd0a25a-2d590ffa.task.php
similarity index 100%
rename from include/upgrader/streams/core/5cd0a25a-a22c2b4f.task.php
rename to include/upgrader/streams/core/5cd0a25a-2d590ffa.task.php
diff --git a/setup/inc/streams/core/install-mysql.sql b/setup/inc/streams/core/install-mysql.sql
index d988d02b0..371d33b8b 100644
--- a/setup/inc/streams/core/install-mysql.sql
+++ b/setup/inc/streams/core/install-mysql.sql
@@ -303,6 +303,7 @@ CREATE TABLE `%TABLE_PREFIX%filter` (
   `match_all_rules` tinyint(1) unsigned NOT NULL default '0',
   `stop_onmatch` tinyint(1) unsigned NOT NULL default '0',
   `target` ENUM(  'Any',  'Web',  'Email',  'API' ) NOT NULL DEFAULT  'Any',
+  `email_id` int(10) unsigned NOT NULL default '0',
   `name` varchar(32) NOT NULL default '',
   `notes` text,
   `created` datetime NOT NULL,
@@ -468,7 +469,8 @@ CREATE TABLE `%TABLE_PREFIX%help_topic_form` (
   `form_id` int(10) unsigned NOT NULL default 0,
   `sort` int(10) unsigned NOT NULL default 1,
   `extra` text,
-  PRIMARY KEY  (`topic_id`, `form_id`)
+  PRIMARY KEY (`id`),
+  KEY `topic-form` (`topic_id`, `form_id`)
 ) DEFAULT CHARSET=utf8;
 
 DROP TABLE IF EXISTS `%TABLE_PREFIX%organization`;
-- 
GitLab