From 2832eb9f913c39e3e6e18aacf98d2760a309ef97 Mon Sep 17 00:00:00 2001
From: Jared Hancock <jared@osticket.com>
Date: Wed, 2 Oct 2013 21:16:58 +0000
Subject: [PATCH] Fix attachment data on new install

---
 include/class.canned.php |  2 +-
 include/class.i18n.php   | 22 ++++++++--------------
 2 files changed, 9 insertions(+), 15 deletions(-)

diff --git a/include/class.canned.php b/include/class.canned.php
index b8aa297d7..96fb71299 100644
--- a/include/class.canned.php
+++ b/include/class.canned.php
@@ -204,7 +204,7 @@ class Canned {
 
         $sql=' updated=NOW() '.
              ',dept_id='.db_input($vars['dept_id']?$vars['dept_id']:0).
-             ',isenabled='.db_input($vars['isenabled']).
+             ',isenabled='.db_input($vars['isenabled']?$vars['isenabled']:1).
              ',title='.db_input($vars['title']).
              ',response='.db_input(Format::sanitize($vars['response'])).
              ',notes='.db_input(Format::sanitize($vars['notes']));
diff --git a/include/class.i18n.php b/include/class.i18n.php
index 984037b67..0f8bc8443 100644
--- a/include/class.i18n.php
+++ b/include/class.i18n.php
@@ -103,20 +103,11 @@ class Internationalization {
         if (($tpl = $this->getTemplate('templates/premade.yaml'))
                 && ($canned = $tpl->getData())) {
             foreach ($canned as $c) {
-                $sql = 'INSERT INTO '.CANNED_TABLE
-                    .' SET title='.db_input($c['title'])
-                    .', lang='.db_input($tpl->getLang())
-                    .', response='.db_input($c['response'])
-                    .', notes='.db_input($c['notes'])
-                    .', created=NOW(), updated=NOW(), isenabled=1';
-                if (db_query($sql) && ($id = db_insert_id())
+                if (($id = Canned::create($c, $errors))
                         && isset($c['attachments'])) {
-                    foreach ($c['attachments'] as $att) {
-                        if ($fileId = AttachmentFile::save($att))
-                            $sql ='INSERT INTO '.CANNED_ATTACHMENT_TABLE
-                                 .' SET canned_id='.db_input($id)
-                                 .', file_id='.db_input($fileId);
-                            db_query($sql);
+                    $premade = Canned::lookup($id);
+                    foreach ($c['attachments'] as $a) {
+                        $premade->attachments->save($a, false);
                     }
                 }
             }
@@ -130,7 +121,10 @@ class Internationalization {
                     && ($t = $tp->getData())) {
                 $t['tpl_id'] = $tpl->getId();
                 $t['code_name'] = $name;
-                EmailTemplate::create($t, $errors);
+                $id = EmailTemplate::create($t, $errors);
+                if ($id && ($template = EmailTemplate::lookup($id))
+                        && ($ids = Draft::getAttachmentIds($t['body'])))
+                    $template->attachments->upload($ids, true);
             }
         }
     }
-- 
GitLab