Inline script handling moved to Horde:: for now
authorMichael M Slusarz <slusarz@curecanti.org>
Thu, 16 Jul 2009 20:05:27 +0000 (14:05 -0600)
committerMichael M Slusarz <slusarz@curecanti.org>
Thu, 16 Jul 2009 20:05:27 +0000 (14:05 -0600)
24 files changed:
imp/compose-dimp.php
imp/compose.php
imp/contacts.php
imp/fetchmailprefs.php
imp/folders.php
imp/index-dimp.php
imp/lib/Ajax/Imple/ContactAutoCompleter.php
imp/lib/IMP.php
imp/lib/UI/Compose.php
imp/lib/prefs.php
imp/login.php
imp/mailbox.php
imp/message-dimp.php
imp/message.php
imp/search.php
imp/templates/common-header.inc
imp/templates/javascript_defs.php
imp/templates/javascript_defs_dimp.php
kronolith/index.php
kronolith/lib/Ajax/Imple/ContactAutoCompleter.php
kronolith/lib/Ajax/Imple/TagActions.php
kronolith/lib/Ajax/Imple/TagAutoCompleter.php
kronolith/lib/Kronolith.php
kronolith/templates/common-header.inc

index e028375..a645b80 100644 (file)
@@ -322,15 +322,15 @@ if ($show_editor) {
 if (Horde_Util::getFormData('popup')) {
     $compose_result['js'][] = 'DIMP.conf_compose.popup = 1';
 }
-IMP::addInlineScript($compose_result['js']);
+Horde::addInlineScript($compose_result['js']);
 
 /* Some actions, like adding forwards, may return error messages so explicitly
  * display those messages now. */
-IMP::addInlineScript(array(DIMP::notify()), 'dom');
+Horde::addInlineScript(array(DIMP::notify()), 'dom');
 
 /* Javascript to be run on window load. */
 $compose_result['js_onload'][] = 'DimpCompose.fillForm(' . Horde_Serialize::serialize($msg, Horde_Serialize::JSON) . ', ' . Horde_Serialize::serialize($header, Horde_Serialize::JSON) . ', "' . (($type == 'new' || $type == 'forward') ? 'to' : 'message') . '", true)';
-IMP::addInlineScript($compose_result['js_onload'], 'load');
+Horde::addInlineScript($compose_result['js_onload'], 'load');
 
 $scripts = array(
     array('compose-dimp.js', 'imp', true)
@@ -339,6 +339,6 @@ $scripts = array(
 DIMP::header(_("Message Composition"), $scripts);
 echo $t->fetch('compose.html');
 IMP::includeScriptFiles();
-IMP::outputInlineScript();
+Horde::outputInlineScript();
 echo $compose_result['jsappend'];
 echo "</body>\n</html>";
index 13e22cb..4e01364 100644 (file)
@@ -1224,7 +1224,7 @@ if ($redirect) {
 Horde::addScriptFile('prototype.js', 'horde', true);
 Horde::addScriptFile('compose.js', 'imp', true);
 require IMP_TEMPLATES . '/common-header.inc';
-IMP::addInlineScript($js_code);
+Horde::addInlineScript($js_code);
 if ($showmenu) {
     IMP::menu();
 }
index e0e5f39..55e40ab 100644 (file)
@@ -102,7 +102,7 @@ $title = _("Address Book");
 Horde::addScriptFile('prototype.js', 'horde', true);
 Horde::addScriptFile('contacts.js', 'imp', true);
 require IMP_TEMPLATES . '/common-header.inc';
-IMP::addInlineScript(array(
+Horde::addInlineScript(array(
     'ImpContacts.formname = \'' . $formname . '\'',
     'ImpContacts.to_only = ' . intval($to_only),
 ));
index c57b0c6..7c3573d 100644 (file)
@@ -189,7 +189,7 @@ Horde::addScriptFile('prototype.js', 'horde', true);
 Horde::addScriptFile('fetchmailprefs.js', 'imp', true);
 
 $charset = Horde_Nls::getCharset();
-IMP::addInlineScript(array(
+Horde::addInlineScript(array(
     'ImpFetchmailprefs.fetchurl = ' . Horde_Serialize($fetch_url, Horde_Serialize::JSON, $charset),
     'ImpFetchmailprefs.prefsurl = ' . Horde_Serialize($prefs_url, Horde_Serialize::JSON, $charset)
 ));
index b76e7f7..067a9c6 100644 (file)
@@ -55,7 +55,7 @@ $charset = Horde_Nls::getCharset();
 $folders_url = Horde::selfUrl();
 
 /* This JS define is required by all folder pages. */
-IMP::addInlineScript(array(
+Horde::addInlineScript(array(
     'ImpFolders.folders_url = ' . Horde_Serialize::serialize($folders_url, Horde_Serialize::JSON, $charset)
 ));
 
@@ -366,7 +366,7 @@ reset($raw_rows);
 while (list(,$r) = each($raw_rows)) {
     $displayNames[] = $r['display'];
 }
-IMP::addInlineScript(array(
+Horde::addInlineScript(array(
     'ImpFolders.displayNames = ' . Horde_Serialize::serialize($displayNames, Horde_Serialize::JSON, $charset)
 ));
 
@@ -531,7 +531,7 @@ if ($open_compose_window === false) {
         $options = array();
     }
     Horde::addScriptFile('imp.js', 'imp', true);
-    IMP::addInlineScript(IMP::popupIMPString('compose.php', array_merge(array('popup' => 1), $options, IMP::getComposeArgs())));
+    Horde::addInlineScript(IMP::popupIMPString('compose.php', array_merge(array('popup' => 1), $options, IMP::getComposeArgs())));
 }
 
 $notification->notify(array('listeners' => 'audio'));
index 38d824d..90b55d3 100644 (file)
@@ -44,7 +44,7 @@ if (!empty($site_menu)) {
     }
 }
 
-IMP::addInlineScript($js_code, true);
+Horde::addInlineScript($js_code, true);
 DIMP::header('', $scripts);
 
 /* Get application folders list. */
@@ -63,6 +63,6 @@ foreach (DIMP::menuList() as $app) {
 echo "<body>\n";
 require IMP_TEMPLATES . '/index/index-dimp.inc';
 IMP::includeScriptFiles();
-IMP::outputInlineScript();
+Horde::outputInlineScript();
 $notification->notify(array('listeners' => array('javascript')));
 echo "</body>\n</html>";
index edadd24..ff3cf20 100644 (file)
@@ -99,7 +99,7 @@ class IMP_Ajax_Imple_ContactAutoCompleter extends Horde_Ajax_Imple_Base
                 if (!isset($addrlist)) {
                     $addrlist = IMP_Compose::getAddressList();
                 }
-                IMP::addInlineScript('if (!IMP) { var IMP = {}; } IMP.ac_list = '. Horde_Serialize::serialize(array_map('htmlspecialchars', $addrlist), Horde_Serialize::JSON, Horde_Nls::getCharset()));
+                Horde::addInlineScript('if (!IMP) { var IMP = {}; } IMP.ac_list = '. Horde_Serialize::serialize(array_map('htmlspecialchars', $addrlist), Horde_Serialize::JSON, Horde_Nls::getCharset()));
                 self::$_listOutput = true;
             }
             $func = 'Autocompleter.Local';
@@ -109,7 +109,7 @@ class IMP_Ajax_Imple_ContactAutoCompleter extends Horde_Ajax_Imple_Base
         }
 
         $params[] = '{' . implode(',', $js_params) . '}';
-        IMP::addInlineScript('new ' . $func . '(' . implode(',', $params) . ')', 'dom');
+        Horde::addInlineScript('new ' . $func . '(' . implode(',', $params) . ')', 'dom');
     }
 
     /**
index ae3a532..a49d004 100644 (file)
@@ -55,9 +55,6 @@ class IMP
     /* filesystemGC() cache. */
     static private $_dirlist = array();
 
-    /* Inline script cache. */
-    static private $_inlineScript = array();
-
     /**
      * Makes sure the user has been authenticated to view the page.
      *
@@ -1168,70 +1165,6 @@ class IMP
     }
 
     /**
-     * Add inline javascript to the output buffer.
-     *
-     * @param mixed $script    The script text to add (can be stored in an
-     *                         array also).
-     * @param string $onload   Load the script after the page has loaded?
-     *                         Either 'dom' (on dom:loaded), 'load'.
-     */
-    static public function addInlineScript($script, $onload = false)
-    {
-        if (is_array($script)) {
-            $script = implode(';', $script);
-        }
-
-        $script = trim($script);
-        if (empty($script)) {
-            return;
-        }
-
-        switch ($onload) {
-        case 'dom':
-            $script = 'document.observe("dom:loaded", function() {' . $script . '});';
-            break;
-
-        case 'load':
-            $script = 'Event.observe(window, "load", function() {' . $script . '});';
-            break;
-        }
-
-        self::$_inlineScript[] = $script;
-
-        // If headers have already been sent, we need to output a
-        // <script> tag directly.
-        if (ob_get_length() || headers_sent()) {
-            self::outputInlineScript();
-        }
-    }
-
-    /**
-     * Print pending inline javascript to the output buffer.
-     */
-    static public function outputInlineScript()
-    {
-        if (!empty(self::$_inlineScript)) {
-            echo self::wrapInlineScript(self::$_inlineScript);
-        }
-
-        self::$_inlineScript = array();
-    }
-
-    /**
-     * Print inline javascript to output buffer after wrapping with necessary
-     * javascript tags.
-     *
-     * @param array $script  The script to output.
-     *
-     * @return string  The script with the necessary HTML javascript tags
-     *                 appended.
-     */
-    static public function wrapInlineScript($script)
-    {
-        return '<script type="text/javascript">//<![CDATA[' . "\n" . implode("\n", $script) . "\n//]]></script>\n";
-    }
-
-    /**
      * Is $mbox a 'special' folder (e.g. 'drafts' or 'sent-mail' folder)?
      *
      * @param string $mbox  The mailbox to query.
index e14681f..8d552c1 100644 (file)
@@ -189,7 +189,7 @@ class IMP_UI_Compose
                 $js_onload[] = 'oFCKeditor.Height = $(\'message\').getHeight()';
                 $js_onload[] = 'oFCKeditor.ReplaceTextarea()';
             }
-            IMP::addInlineScript($js_onload, 'load');
+            Horde::addInlineScript($js_onload, 'load');
         }
 
         return $editor->getJS();
index dd4c927..ff61da2 100644 (file)
@@ -261,7 +261,7 @@ case 'flags':
     Horde::addScriptFile('colorpicker.js', 'horde', true);
     Horde::addScriptFile('flagmanagement.js', 'imp', true);
 
-    IMP::addInlineScript(array(
+    Horde::addInlineScript(array(
         'ImpFlagmanagement.new_prompt = ' . Horde_Serialize::serialize(_("Please enter the label for the new flag:"), Horde_Serialize::JSON, Horde_Nls::getCharset())
     ));
     break;
index 00fb3d4..9316ee6 100644 (file)
@@ -342,7 +342,7 @@ $login_params = $autologin
     ? array('autologin' => $autologin, 'server_key' => '')
     : array('server_key' => '');
 
-IMP::addInlineScript(array(
+Horde::addInlineScript(array(
     'ImpLogin.autologin_url = ' . Horde_Serialize::serialize(Horde_Util::addParameter(Horde::selfUrl(), $login_params, null, false), Horde_Serialize::JSON, $charset),
     'ImpLogin.ie_clientcaps = ' . intval($t->get('ie_clientcaps')),
     'ImpLogin.imp_auth = ' . intval($imp_auth),
index f8e6a0a..b7998c9 100644 (file)
@@ -874,7 +874,7 @@ if (($pageOb['end'] - $pageOb['begin']) >= 20) {
     echo $n_template->fetch(IMP_TEMPLATES . '/mailbox/navbar.html');
 }
 
-IMP::addInlineScript(array(
+Horde::addInlineScript(array(
     'ImpMailbox.sortlimit = ' . intval($sortpref['limit']),
     'ImpMailbox.unread = ' . strval($unread)
 ));
index a8d7bbb..978b5a9 100644 (file)
@@ -74,17 +74,17 @@ if (!$disable_compose) {
     $js_out = array_merge($js_out, $compose_result['js']);
     $scripts[] = array('compose-dimp.js', 'imp', true);
 
-    IMP::addInlineScript($compose_result['jsonload'], 'load');
+    Horde::addInlineScript($compose_result['jsonload'], 'load');
 }
 
-IMP::addInlineScript($js_out);
-IMP::addInlineScript(array(DIMP::notify()), 'dom');
+Horde::addInlineScript($js_out);
+Horde::addInlineScript(array(DIMP::notify()), 'dom');
 
 DIMP::header($show_msg_result['subject'], $scripts);
 echo "<body>\n";
 require IMP_TEMPLATES . '/chunks/message.php';
 IMP::includeScriptFiles();
-IMP::outputInlineScript();
+Horde::outputInlineScript();
 if (!$disable_compose) {
     echo $compose_result['jsappend'];
 }
index 8f5772c..24010bc 100644 (file)
@@ -730,7 +730,7 @@ Horde::addScriptFile('imp.js', 'imp', true);
 Horde::addScriptFile('message.js', 'imp', true);
 require IMP_TEMPLATES . '/common-header.inc';
 if (IMP::$printMode) {
-    IMP::addInlineScript('ImpMessage.printmode = true');
+    Horde::addInlineScript('ImpMessage.printmode = true');
 } else {
     if (!empty($conf['maillog']['use_maillog'])) {
         IMP_Maillog::displayLog($envelope['message-id']);
index 64cdfc2..0ae8421 100644 (file)
@@ -343,7 +343,7 @@ require IMP_TEMPLATES . '/common-header.inc';
 IMP::menu();
 IMP::status();
 
-IMP::addInlineScript(array(
+Horde::addInlineScript(array(
     'ImpSearch.search_date = ' . Horde_Serialize::serialize(array('m' => date('m'), 'd' => date('d'), 'y' => date('Y')), Horde_Serialize::JSON, $charset),
     'ImpSearch.not_search = ' . intval(empty($search['mbox'])),
     'ImpSearch.inverse_sub = ' . intval($t->get('inverse_subscribe')),
index 968594f..3a7c6ed 100644 (file)
@@ -43,7 +43,7 @@ IMP::includeStylesheetFiles();
 <link href="<?php echo Horde::applicationUrl('search.php') ?>" rel="search" />
 <?php endif ?>
 <?php if (!empty($ie_clientcaps)): ?><style>IE\:clientcaps {behavior:url(#default#clientcaps)}</style><?php endif; ?>
-<?php IMP::outputInlineScript(); ?>
+<?php Horde::outputInlineScript(); ?>
 </head>
 
 <body<?php if ($bc = Horde_Util::nonInputVar('bodyClass')) echo ' class="' . $bc . '"' ?><?php if ($bi = Horde_Util::nonInputVar('bodyId')) echo ' id="' . $bi . '"'; ?>>
index 810b31d..eb10979 100644 (file)
@@ -73,4 +73,4 @@ $code = array(
     )
 );
 
-echo IMP::wrapInlineScript(array('var IMP = ' . Horde_Serialize::serialize($code, Horde_Serialize::JSON, Horde_Nls::getCharset()) . ';'));
+echo Horde::wrapInlineScript(array('var IMP = ' . Horde_Serialize::serialize($code, Horde_Serialize::JSON, Horde_Nls::getCharset()) . ';'));
index b7893b3..6dbc75f 100644 (file)
@@ -157,4 +157,4 @@ if ($compose_mode) {
     );
 }
 
-echo IMP::wrapInlineScript(array('var DIMP = ' . Horde_Serialize::serialize($code, Horde_Serialize::JSON, Horde_Nls::getCharset())));
+echo Horde::wrapInlineScript(array('var DIMP = ' . Horde_Serialize::serialize($code, Horde_Serialize::JSON, Horde_Nls::getCharset())));
index 89976e1..2b88e9e 100644 (file)
@@ -63,7 +63,7 @@ Kronolith::header('', $scripts);
 echo "<body class=\"kronolithAjax\">\n";
 require KRONOLITH_TEMPLATES . '/index/index.inc';
 Kronolith::includeScriptFiles();
-Kronolith::outputInlineScript();
+Horde::outputInlineScript();
 $notification->notify(array('listeners' => array('javascript')));
 Horde_Ajax_Imple::getInstance(array('kronolith', 'TagAutoCompleter'), array('triggerId' => 'kronolithEventTags', 'pretty' => true));
 echo "</body>\n</html>";
index 2f58934..d979464 100644 (file)
@@ -56,7 +56,7 @@ class Kronolith_Ajax_Imple_ContactAutoCompleter extends Horde_Ajax_Imple_Base
 
         $params[] = '{' . implode(',', $js_params) . '}';
 
-        Kronolith::addInlineScript('new Ajax.Autocompleter(' . implode(',', $params) . ')', 'dom');
+        Horde::addInlineScript('new Ajax.Autocompleter(' . implode(',', $params) . ')', 'dom');
     }
 
     /**
index b4bb3e8..4edeb39 100644 (file)
@@ -27,7 +27,7 @@ class Kronolith_Ajax_Imple_TagActions extends Horde_Ajax_Imple_Base
         } elseif ($action == 'delete') {
             $js = "Event.observe('" . $dom_id . "', 'click', function(event) {removeTag('" . $content_id . "', '" . $content_type . "', " . $tag_id . ", '" . $endpoint . "'); Event.stop(event)});";
         }
-        Kronolith::addInlineScript($js, 'window');
+        Horde::addInlineScript($js, 'window');
     }
 
     /**
index d17fd9b..e51f7b2 100644 (file)
@@ -88,7 +88,7 @@ class Kronolith_Ajax_Imple_TagAutoCompleter extends Horde_Ajax_Imple_Base
             $script = array('new Ajax.Autocompleter(' . implode(',', $params) . ')');
         }
 
-        Kronolith::addInlineScript($script, 'dom');
+        Horde::addInlineScript($script, 'dom');
     }
 
     /**
index 2bdb3a7..1a5846b 100644 (file)
@@ -111,7 +111,7 @@ class Kronolith
              "<head>\n" .
              '<title>' . htmlspecialchars($page_title) . "</title>\n" .
              '<link href="' . $GLOBALS['registry']->getImageDir() . "/favicon.ico\" rel=\"SHORTCUT ICON\" />\n".
-             self::wrapInlineScript(self::includeJSVars());
+             Horde::wrapInlineScript(self::includeJSVars());
 
         self::includeStylesheetFiles(true);
 
@@ -229,81 +229,6 @@ class Kronolith
     }
 
     /**
-     * Add inline javascript to the output buffer.
-     *
-     * @param mixed $script    The script text to add (can be stored in an
-     *                         array also).
-     * @param string $onload   Load the script after the page has loaded?
-     *                         Either 'dom' (on dom:loaded), 'load'.
-     *
-     * @return string  The javascript text to output, or empty if the page
-     *                 headers have not yet been sent.
-     */
-    public static function addInlineScript($script, $onload = false)
-    {
-        if (is_array($script)) {
-            $script = implode(';', $script);
-        }
-
-        $script = trim($script);
-        if (empty($script)) {
-            return;
-        }
-        switch ($onload) {
-        case 'dom':
-            $script = 'document.observe("dom:loaded", function() {' . $script . '});';
-            break;
-
-        case 'load':
-            $script = 'Event.observe(window, "load", function() {' . $script . '});';
-            break;
-        }
-
-        if (!isset($GLOBALS['__kronolith_inline_script'])) {
-            $GLOBALS['__kronolith_inline_script'] = array();
-        }
-        $GLOBALS['__kronolith_inline_script'][] = $script;
-
-        // If headers have already been sent, we need to output a <script> tag
-        // directly.
-        if (ob_get_length() || headers_sent()) {
-            self::outputInlineScript();
-        }
-    }
-
-    /**
-     * Print inline javascript to the output buffer.
-     *
-     * @return string  The javascript text to output.
-     */
-    public static function outputInlineScript()
-    {
-        if (!empty($GLOBALS['__kronolith_inline_script'])) {
-            echo '<script type="text/javascript">//<![CDATA[' . "\n";
-            foreach ($GLOBALS['__kronolith_inline_script'] as $val) {
-                echo $val . "\n";
-            }
-            echo "//]]></script>\n";
-        }
-
-        $GLOBALS['__kronolith_inline_script'] = array();
-    }
-
-    /**
-     * Print inline javascript to output buffer after wrapping with necessary
-     * javascript tags.
-     *
-     * @param array $script  The script to output.
-     *
-     * @return string  The script with the necessary HTML javascript tags
-     *                 appended.
-     */
-    public static function wrapInlineScript($script)
-    {
-        return '<script type="text/javascript">//<![CDATA[' . "\n" . implode("\n", $script) . "\n//]]></script>\n";
-    }
-
-    /**
      * Outputs the necessary script tags, honoring local configuration choices
      * as to script caching.
      */
index b03b78b..93dee4c 100644 (file)
@@ -49,7 +49,7 @@ var kronolithPrintLink = '';
 <?php foreach ($GLOBALS['display_calendars'] as $calendar): ?>
 <link href="<?php echo Kronolith::feedUrl($calendar) ?>" rel="alternate" type="application/atom+xml" />
 <?php endforeach; ?>
-<?php Kronolith::outputInlineScript(); ?>
+<?php Horde::outputInlineScript(); ?>
 </head>
 
 <body<?php if ($bc) echo ' class="' . $bc . '"'; if ($bi = Horde_Util::nonInputVar('bodyId')) echo ' id="' . $bi . '"'; ?>>