From 044d6647e060adb88fc56dd687f2ea810d73fdb1 Mon Sep 17 00:00:00 2001 From: thomascube <thomas@roundcube.net> Date: Tue, 01 Mar 2011 17:33:12 -0500 Subject: [PATCH] Make it easier to add code to $(document).ready() --- program/include/main.inc | 3 +-- program/include/rcube_template.php | 11 ++++------- program/include/rcube_html_page.php | 9 +++++++-- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/program/include/main.inc b/program/include/main.inc index a930aeb..64fea70 100644 --- a/program/include/main.inc +++ b/program/include/main.inc @@ -1661,8 +1661,7 @@ $quota = rcmail_quota_content($attrib); - $OUTPUT->add_script('$(document).ready(function(){ - rcmail.set_quota('.json_serialize($quota).')});', 'foot'); + $OUTPUT->add_script('rcmail.set_quota('.json_serialize($quota).');', 'docready'); return html::span($attrib, ''); } diff --git a/program/include/rcube_html_page.php b/program/include/rcube_html_page.php index 5b56ccc..0cceb89 100644 --- a/program/include/rcube_html_page.php +++ b/program/include/rcube_html_page.php @@ -5,7 +5,7 @@ | program/include/rcube_html_page.php | | | | This file is part of the Roundcube PHP suite | - | Copyright (C) 2005-2009, The Roundcube Dev Team | + | Copyright (C) 2005-2011 The Roundcube Dev Team | | Licensed under the GNU GPL | | | | CONTENTS: | @@ -33,7 +33,7 @@ protected $charset = RCMAIL_CHARSET; protected $script_tag_file = "<script type=\"text/javascript\" src=\"%s\"></script>\n"; - protected $script_tag = "<script type=\"text/javascript\">\n/* <![CDATA[ */\n%s\n/* ]]> */\n</script>"; + protected $script_tag = "<script type=\"text/javascript\">\n/* <![CDATA[ */\n%s\n/* ]]> */\n</script>\n"; protected $link_css_file = "<link rel=\"stylesheet\" type=\"text/css\" href=\"%s\" />\n"; protected $default_template = "<html>\n<head><title></title></head>\n<body></body>\n</html>"; @@ -208,6 +208,11 @@ $page_header .= $this->header; } + // put docready commands into page footer + if (!empty($this->scripts['docready'])) { + $this->add_script('$(document).ready(function(){ ' . $this->scripts['docready'] . "\n});", 'foot'); + } + if (is_array($this->script_files['foot'])) { foreach ($this->script_files['foot'] as $file) { $page_footer .= sprintf($this->script_tag_file, $file); diff --git a/program/include/rcube_template.php b/program/include/rcube_template.php index c4b7a44..a686ec8 100755 --- a/program/include/rcube_template.php +++ b/program/include/rcube_template.php @@ -5,7 +5,7 @@ | program/include/rcube_template.php | | | | This file is part of the Roundcube Webmail client | - | Copyright (C) 2006-2010, The Roundcube Dev Team | + | Copyright (C) 2006-2011, The Roundcube Dev Team | | Licensed under the GNU GPL | | | | PURPOSE: | @@ -57,7 +57,6 @@ /** * Constructor * - * @todo Use jQuery's $(document).ready() here. * @todo Replace $this->config with the real rcube_config object */ public function __construct($task, $framed = false) @@ -79,10 +78,9 @@ $javascript = 'var '.JS_OBJECT_NAME.' = new rcube_webmail();'; // don't wait for page onload. Call init at the bottom of the page (delayed) - $javascript_foot = '$(document).ready(function(){ '.JS_OBJECT_NAME.'.init(); });'; + $this->add_script(JS_OBJECT_NAME.'.init();', 'docready'); $this->add_script($javascript, 'head_top'); - $this->add_script($javascript_foot, 'foot'); $this->scripts_path = 'program/js/'; $this->include_script('jquery-1.5.min.js'); $this->include_script('common.js'); @@ -1152,12 +1150,11 @@ if (empty($images) || $this->app->task == 'logout') return; - $this->add_script('$(document).ready(function(){ - var images = ' . json_serialize($images) .'; + $this->add_script('var images = ' . json_serialize($images) .'; for (var i=0; i<images.length; i++) { img = new Image(); img.src = images[i]; - }});', 'foot'); + }', 'docready'); } -- Gitblit v1.9.1