From 22409b88c513bc4dc5c87b3dfe0a4f0915229b37 Mon Sep 17 00:00:00 2001
From: Thomas Bruederli <bruederli@kolabsys.com>
Date: Wed, 11 Mar 2015 15:18:39 -0400
Subject: [PATCH] Add sanity check before attempting to add scripts to a non-html output object

---
 plugins/jqueryui/jqueryui.php |   27 +++++++++++++++++++++++++++
 1 files changed, 27 insertions(+), 0 deletions(-)

diff --git a/plugins/jqueryui/jqueryui.php b/plugins/jqueryui/jqueryui.php
index 2dfa8ad..006164c 100644
--- a/plugins/jqueryui/jqueryui.php
+++ b/plugins/jqueryui/jqueryui.php
@@ -21,6 +21,12 @@
     public function init()
     {
         $rcmail = rcmail::get_instance();
+
+        // the plugin might have been force-loaded so do some sanity check first
+        if ($rcmail->output->type != 'html') {
+          return;
+        }
+
         $this->load_config();
 
         // include UI scripts
@@ -108,6 +114,27 @@
         $rcube->output->set_env('mscolors', self::get_color_values());
     }
 
+    public static function tagedit()
+    {
+        if (in_array('tagedit', self::$features)) {
+            return;
+        }
+
+        self::$features[] = 'tagedit';
+
+        $script   = 'plugins/jqueryui/js/jquery.tagedit.js';
+        $rcube    = rcube::get_instance();
+        $ui_theme = self::$ui_theme;
+        $css      = "plugins/jqueryui/themes/$ui_theme/tagedit.css";
+
+        if (!file_exists(INSTALL_PATH . $css)) {
+            $css = "plugins/jqueryui/themes/larry/tagedit.css";
+        }
+
+        $rcube->output->include_css($css);
+        $rcube->output->add_header(html::tag('script', array('type' => "text/javascript", 'src' => $script)));
+    }
+
     /**
      * Return a (limited) list of color values to be used for calendar and category coloring
      *

--
Gitblit v1.9.1