From 677e1f26fe47cc0c3e0819cb99a9024af49a619c Mon Sep 17 00:00:00 2001 From: alecpl <alec@alec.pl> Date: Tue, 18 May 2010 06:25:29 -0400 Subject: [PATCH] - Some files from /bin + spellchecking actions moved to the new 'utils' task --- program/js/list.js | 2 CHANGELOG | 1 program/steps/mail/compose.inc | 3 program/steps/utils/spell.inc | 2 program/steps/utils/modcss.inc | 18 +---- program/steps/utils/spell_googie.inc | 4 /dev/null | 38 ------------ program/steps/utils/spell_pspell.inc | 4 program/include/rcube_imap.php | 4 program/steps/utils/html2text.inc | 16 ++-- program/include/rcmail.php | 23 ++++--- program/steps/mail/func.inc | 5 + program/js/googiespell.js | 4 program/steps/utils/killcache.inc | 27 ++------ program/js/app.js | 6 - 15 files changed, 48 insertions(+), 109 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 7f3adce..b29c6f0 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,7 @@ CHANGELOG RoundCube Webmail =========================== +- Some files from /bin + spellchecking actions moved to the new 'utils' task - Added thread tree icons - Extend contact groups support (#1486682) - Fix check-recent action issues and performance (#1486526) diff --git a/bin/html2text.php b/bin/html2text.php deleted file mode 100644 index 0074b60..0000000 --- a/bin/html2text.php +++ /dev/null @@ -1,38 +0,0 @@ -<?php -/* - - +-----------------------------------------------------------------------+ - | bin/html2text.php | - | | - | This file is part of the RoundCube Webmail client | - | Copyright (C) 2005-2009, RoundCube Dev. - Switzerland | - | Licensed under the GNU GPL | - | | - | PURPOSE: | - | Convert HTML message to plain text | - | | - +-----------------------------------------------------------------------+ - | Author: Thomas Bruederli <roundcube@gmail.com> | - +-----------------------------------------------------------------------+ - - $Id$ - -*/ - -define('INSTALL_PATH', realpath(dirname(__FILE__) . '/..') . '/'); -require INSTALL_PATH . 'program/include/iniset.php'; - -$RCMAIL = rcmail::get_instance(); - -if (!empty($RCMAIL->user->ID)) { - $converter = new html2text($HTTP_RAW_POST_DATA); - - header('Content-Type: text/plain; charset=UTF-8'); - print trim($converter->get_text()); -} -else { - header("HTTP/1.0 403 Forbidden"); - echo "Requires a valid user session"; -} - -?> diff --git a/program/include/rcmail.php b/program/include/rcmail.php index d9ee00a..864ee8d 100644 --- a/program/include/rcmail.php +++ b/program/include/rcmail.php @@ -28,10 +28,10 @@ */ class rcmail { - static public $main_tasks = array('mail','settings','addressbook','login','logout','dummy'); - + static public $main_tasks = array('mail','settings','addressbook','login','logout','utils','dummy'); + static private $instance; - + public $config; public $user; public $db; @@ -43,10 +43,10 @@ public $task; public $action = ''; public $comm_path = './'; - + private $texts; - - + + /** * This implements the 'singleton' design pattern * @@ -107,11 +107,12 @@ $this->action = asciiwords(get_input_value('_action', RCUBE_INPUT_GPC)); // reset some session parameters when changing task - if ($this->session && $_SESSION['task'] != $this->task) - $this->session->remove('page'); - - // set current task to session - $_SESSION['task'] = $this->task; + if ($this->task != 'utils') { + if ($this->session && $_SESSION['task'] != $this->task) + $this->session->remove('page'); + // set current task to session + $_SESSION['task'] = $this->task; + } // init output class if (!empty($_REQUEST['_remote'])) diff --git a/program/include/rcube_imap.php b/program/include/rcube_imap.php index 1a66576..7b7a3cf 100644 --- a/program/include/rcube_imap.php +++ b/program/include/rcube_imap.php @@ -2716,7 +2716,7 @@ if ($result) { $delm = $this->get_hierarchy_delimiter(); - + // check if mailbox children are subscribed foreach ($a_subscribed as $c_subscribed) if (preg_match('/^'.preg_quote($mailbox.$delm, '/').'/', $c_subscribed)) { @@ -2727,7 +2727,7 @@ // clear cache $this->clear_message_cache($mailbox.'.msg'); - $this->clear_cache('mailboxes'); + $this->clear_cache('mailboxes'); } // try to subscribe it diff --git a/program/js/app.js b/program/js/app.js index 253d859..dfd7c9f 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -50,7 +50,6 @@ this.env.request_timeout = 180; // seconds this.env.draft_autosave = 0; // seconds this.env.comm_path = './'; - this.env.bin_path = './bin/'; this.env.blankpage = 'program/blank.gif'; // set jQuery ajax options @@ -4825,8 +4824,7 @@ } // replace quota image - obj.innerHTML = ''; - $(obj).append(bar1).append(bar2).append(main); + $(obj).html('').append(bar1).append(bar2).append(main); }; /********************************************************/ @@ -4836,7 +4834,7 @@ this.html2plain = function(htmlText, id) { var rcmail = this, - url = this.env.bin_path + 'html2text.php'; + url = '?_task=utils&_action=html2text'; this.set_busy(true, 'converting'); console.log('HTTP POST: ' + url); diff --git a/program/js/googiespell.js b/program/js/googiespell.js index 5f201b7..c7be29e 100644 --- a/program/js/googiespell.js +++ b/program/js/googiespell.js @@ -855,9 +855,9 @@ no_spell_errors = function () { ref.checkSpellingState() }; var rsm = $('<span>').text(this.lang_no_error_found); - + $(this.switch_lan_pic).hide(); - $(this.spell_span).empty().append(rsm) + $(this.spell_span).empty().append(rsm) .removeClass().addClass('googie_check_spelling_ok'); window.setTimeout(no_spell_errors, 1000); diff --git a/program/js/list.js b/program/js/list.js index 42149d6..8cfd05e 100644 --- a/program/js/list.js +++ b/program/js/list.js @@ -1315,7 +1315,7 @@ }) .css($(this).offset()) .appendTo(document.body); - }); + }); }, diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc index bc7cd89..97541da 100644 --- a/program/steps/mail/compose.inc +++ b/program/steps/mail/compose.inc @@ -555,7 +555,7 @@ $OUTPUT->include_script('googiespell.js'); $OUTPUT->add_script(sprintf( - "var googie = new GoogieSpell('\$__skin_path/images/googiespell/','%s&_action=spell&lang=');\n". + "var googie = new GoogieSpell('\$__skin_path/images/googiespell/','?_task=utils&_action=spell&lang=');\n". "googie.lang_chck_spell = \"%s\";\n". "googie.lang_rsm_edt = \"%s\";\n". "googie.lang_close = \"%s\";\n". @@ -566,7 +566,6 @@ "googie.setSpellContainer('spellcheck-control');\n". "googie.decorateTextarea('%s');\n". "%s.set_env('spellcheck', googie);", - $RCMAIL->comm_path, JQ(Q(rcube_label('checkspelling'))), JQ(Q(rcube_label('resumeediting'))), JQ(Q(rcube_label('close'))), diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc index 00a8edf..951e777 100644 --- a/program/steps/mail/func.inc +++ b/program/steps/mail/func.inc @@ -27,7 +27,7 @@ $EMAIL_ADDRESS_PATTERN = '([a-z0-9][a-z0-9\-\.\+\_]*@[a-z0-9][a-z0-9\-\.]*\\.[a-z]{2,5})'; // actions that do not require imap connection -$NOIMAP_ACTIONS = array('spell', 'addcontact', 'autocomplete', 'upload', 'display-attachment', 'remove-attachment'); +$NOIMAP_ACTIONS = array('addcontact', 'autocomplete', 'upload', 'display-attachment', 'remove-attachment'); // always instantiate imap object (but not yet connect to server) $RCMAIL->imap_init(); @@ -1068,7 +1068,8 @@ $end = '>'; if ($tag == 'link' && preg_match('/^https?:\/\//i', $attrib['href'])) { - $attrib['href'] = "./bin/modcss.php?u=" . urlencode($attrib['href']) . "&c=" . urlencode($GLOBALS['rcmail_html_container_id']); + $attrib['href'] = "?_task=utils&_action=modcss&u=" . urlencode($attrib['href']) + . "&c=" . urlencode($GLOBALS['rcmail_html_container_id']); $end = ' />'; } else if (preg_match('/^mailto:'.$EMAIL_ADDRESS_PATTERN.'(\?[^"\'>]+)?/i', $attrib['href'], $mailto)) { diff --git a/program/steps/mail/spell.inc b/program/steps/utils/html2text.inc similarity index 64% copy from program/steps/mail/spell.inc copy to program/steps/utils/html2text.inc index a567c7b..ff2b40e 100644 --- a/program/steps/mail/spell.inc +++ b/program/steps/utils/html2text.inc @@ -1,28 +1,28 @@ <?php - /* + +-----------------------------------------------------------------------+ - | program/steps/mail/spell.inc | + | program/steps/utils/html2text.inc | | | | This file is part of the RoundCube Webmail client | + | Copyright (C) 2005-2010, RoundCube Dev. - Switzerland | | Licensed under the GNU GPL | | | | PURPOSE: | - | Invoke the configured or default spell checking engine. | + | Convert HTML message to plain text | | | +-----------------------------------------------------------------------+ - | Author: Kris Steinhoff <steinhof@umich.edu> | + | Author: Thomas Bruederli <roundcube@gmail.com> | +-----------------------------------------------------------------------+ $Id$ */ -if ($spell_engine = $RCMAIL->config->get('spellcheck_engine', 'googie')) { - include('spell_'.$spell_engine.'.inc'); -} +$converter = new html2text($HTTP_RAW_POST_DATA); -header('HTTP/1.1 404 Not Found'); +header('Content-Type: text/plain; charset=UTF-8'); +print trim($converter->get_text()); exit; ?> diff --git a/bin/killcache.php b/program/steps/utils/killcache.inc similarity index 66% rename from bin/killcache.php rename to program/steps/utils/killcache.inc index 7bce676..a2e7b3e 100644 --- a/bin/killcache.php +++ b/program/steps/utils/killcache.inc @@ -2,10 +2,10 @@ /* +-----------------------------------------------------------------------+ - | bin/killcache.php | + | program/steps/utils/killcache.inc | | | | This file is part of the RoundCube Webmail client | - | Copyright (C) 2005-2009, RoundCube Dev. - Switzerland | + | Copyright (C) 2005-2010, RoundCube Dev. - Switzerland | | Licensed under the GNU GPL | | | | PURPOSE: | @@ -19,13 +19,8 @@ */ -define('INSTALL_PATH', realpath(dirname(__FILE__).'/..') . '/'); -require INSTALL_PATH . 'program/include/iniset.php'; - -$config = new rcube_config(); - // don't allow public access if not in devel_mode -if (!$config->get('devel_mode') && $_SERVER['REMOTE_ADDR']) { +if (!$RCMAIL->config->get('devel_mode')) { header("HTTP/1.0 401 Access denied"); die("Access denied!"); } @@ -40,26 +35,18 @@ 'portability' => true ); -$dbh = MDB2::factory($config->get('db_dsnw'), $options); -if (PEAR::isError($dbh)) { - exit($mdb2->getMessage()); -} - -//TODO: transaction here (if supported by DB) would be a good thing -$res =& $dbh->exec("DELETE FROM cache"); +// @TODO: transaction here (if supported by DB) would be a good thing +$res = $RCMAIL->db->query("DELETE FROM cache"); if (PEAR::isError($res)) { - $dbh->disconnect(); exit($res->getMessage()); } -$res =& $dbh->exec("DELETE FROM messages"); +$res = $RCMAIL->db->query("DELETE FROM messages"); if (PEAR::isError($res)) { - $dbh->disconnect(); exit($res->getMessage()); } echo "Cache cleared\n"; - -$dbh->disconnect(); +exit; ?> diff --git a/bin/modcss.php b/program/steps/utils/modcss.inc similarity index 85% rename from bin/modcss.php rename to program/steps/utils/modcss.inc index 7e02e46..2224901 100644 --- a/bin/modcss.php +++ b/program/steps/utils/modcss.inc @@ -2,10 +2,10 @@ /* +-----------------------------------------------------------------------+ - | bin/modcss.php | + | program/steps/utils/modcss.inc | | | | This file is part of the RoundCube Webmail client | - | Copyright (C) 2007-2009, RoundCube Dev. - Switzerland | + | Copyright (C) 2007-2010, RoundCube Dev. - Switzerland | | Licensed under the GNU GPL | | | | PURPOSE: | @@ -19,19 +19,7 @@ */ -define('INSTALL_PATH', realpath(dirname(__FILE__) . '/..') . '/'); -require INSTALL_PATH . 'program/include/iniset.php'; - -$RCMAIL = rcmail::get_instance(); - $source = ''; -$error = 'Requires a valid user session and source url'; - -if (empty($RCMAIL->user->ID)) { - header('HTTP/1.1 403 Forbidden'); - echo $error; - exit; -} $url = preg_replace('![^a-z0-9:./\-_?$&=%]!i', '', $_GET['u']); if ($url === null) { @@ -106,3 +94,5 @@ header('HTTP/1.0 404 Not Found'); echo $error; exit; + +?> diff --git a/program/steps/mail/spell.inc b/program/steps/utils/spell.inc similarity index 93% rename from program/steps/mail/spell.inc rename to program/steps/utils/spell.inc index a567c7b..dab5695 100644 --- a/program/steps/mail/spell.inc +++ b/program/steps/utils/spell.inc @@ -2,7 +2,7 @@ /* +-----------------------------------------------------------------------+ - | program/steps/mail/spell.inc | + | program/steps/utils/spell.inc | | | | This file is part of the RoundCube Webmail client | | Licensed under the GNU GPL | diff --git a/program/steps/mail/spell_googie.inc b/program/steps/utils/spell_googie.inc similarity index 96% rename from program/steps/mail/spell_googie.inc rename to program/steps/utils/spell_googie.inc index f3b1c68..ec60f48 100644 --- a/program/steps/mail/spell_googie.inc +++ b/program/steps/utils/spell_googie.inc @@ -2,7 +2,7 @@ /* +-----------------------------------------------------------------------+ - | program/steps/mail/spell.inc | + | program/steps/utils/spell.inc | | | | This file is part of the RoundCube Webmail client | | Copyright (C) 2005-2007, RoundCube Dev. - Switzerland | @@ -67,7 +67,7 @@ // Don't use server's default Content-Type charset (#1486406) header("Content-Type: text/xml; charset=".RCMAIL_CHARSET); -print $store; +print $store; exit; ?> diff --git a/program/steps/mail/spell_pspell.inc b/program/steps/utils/spell_pspell.inc similarity index 97% rename from program/steps/mail/spell_pspell.inc rename to program/steps/utils/spell_pspell.inc index b443ed5..f892f89 100644 --- a/program/steps/mail/spell_pspell.inc +++ b/program/steps/utils/spell_pspell.inc @@ -2,7 +2,7 @@ /* +-----------------------------------------------------------------------+ - | program/steps/mail/spell_pspell.inc | + | program/steps/utils/spell_pspell.inc | | | | This file is part of the RoundCube Webmail client | | Licensed under the GNU GPL | @@ -25,7 +25,7 @@ 'type' => 'php', 'file' => __FILE__, 'line' => __LINE__, 'message' => "Pspell extension not available"), true, false); - + header('HTTP/1.1 404 Not Found'); exit; } -- Gitblit v1.9.1