From 39bd9b8e298b21bbe652b31b940aa772bed7d8b2 Mon Sep 17 00:00:00 2001 From: Thomas Bruederli Date: Mon, 28 Jul 2014 09:39:37 +0200 Subject: Set 'compose_extwin' env property on every step; accept a list of URL parameters for the 'compose' command --- program/include/rcmail.php | 3 +++ program/js/app.js | 8 ++++++-- program/steps/addressbook/func.inc | 1 - program/steps/addressbook/show.inc | 1 - program/steps/mail/func.inc | 2 +- program/steps/mail/show.inc | 2 +- 6 files changed, 11 insertions(+), 6 deletions(-) diff --git a/program/include/rcmail.php b/program/include/rcmail.php index f0afc6b63..04be841d7 100644 --- a/program/include/rcmail.php +++ b/program/include/rcmail.php @@ -430,6 +430,9 @@ class rcmail extends rcube $this->output->set_env('user_id', $this->user->get_hash()); } + // set compose mode for all tasks (message compose step can be triggered from everywhere) + $this->output->set_env('compose_extwin', $this->config->get('compose_extwin',false)); + // add some basic labels to client $this->output->add_label('loading', 'servererror', 'connerror', 'requesttimedout', 'refreshing'); diff --git a/program/js/app.js b/program/js/app.js index 98c4385a4..1cd09ded6 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -980,7 +980,7 @@ function rcube_webmail() if (this.task == 'mail') { url._mbox = this.env.mailbox; if (props) - url._to = props; + url._to = props; // also send search request so we can go back to search result after message is sent if (this.env.search_request) url._search = this.env.search_request; @@ -1008,8 +1008,12 @@ function rcube_webmail() break; } } - else if (props) + else if (props && typeof props == 'string') { url._to = props; + } + else if (props && typeof props == 'object') { + $.extend(url, props); + } this.open_compose_step(url); break; diff --git a/program/steps/addressbook/func.inc b/program/steps/addressbook/func.inc index be0dd2a33..25dfa9009 100644 --- a/program/steps/addressbook/func.inc +++ b/program/steps/addressbook/func.inc @@ -81,7 +81,6 @@ if (!$RCMAIL->action && !$OUTPUT->ajax_call) { $OUTPUT->set_env('search_mods', $search_mods); $OUTPUT->set_env('address_sources', $js_list); $OUTPUT->set_env('writable_source', $writeable); - $OUTPUT->set_env('compose_extwin', $RCMAIL->config->get('compose_extwin',false)); $OUTPUT->set_pagetitle($RCMAIL->gettext('addressbook')); $_SESSION['addressbooks_count'] = $count; diff --git a/program/steps/addressbook/show.inc b/program/steps/addressbook/show.inc index f4224a3e2..d4bf2a4cc 100644 --- a/program/steps/addressbook/show.inc +++ b/program/steps/addressbook/show.inc @@ -32,7 +32,6 @@ $SOURCE_ID = $source; if ($cid && ($record = $CONTACTS->get_record($cid, true))) { $OUTPUT->set_env('readonly', $CONTACTS->readonly || $record['readonly']); $OUTPUT->set_env('cid', $record['ID']); - $OUTPUT->set_env('compose_extwin', $RCMAIL->config->get('compose_extwin',false)); } // get address book name (for display) diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc index 80c37e3b4..10e0af6af 100644 --- a/program/steps/mail/func.inc +++ b/program/steps/mail/func.inc @@ -87,7 +87,7 @@ if (empty($RCMAIL->action) || $RCMAIL->action == 'list') { // set configuration $RCMAIL->set_env_config(array('delete_junk', 'flag_for_deletion', 'read_when_deleted', - 'skip_deleted', 'display_next', 'message_extwin', 'compose_extwin', 'forward_attachment')); + 'skip_deleted', 'display_next', 'message_extwin', 'forward_attachment')); if (!$OUTPUT->ajax_call) { $OUTPUT->add_label('checkingmail', 'deletemessage', 'movemessagetotrash', diff --git a/program/steps/mail/show.inc b/program/steps/mail/show.inc index 1616eb62c..2740ad386 100644 --- a/program/steps/mail/show.inc +++ b/program/steps/mail/show.inc @@ -80,7 +80,7 @@ if ($uid) { // set configuration $RCMAIL->set_env_config(array('delete_junk', 'flag_for_deletion', 'read_when_deleted', - 'skip_deleted', 'display_next', 'compose_extwin', 'forward_attachment')); + 'skip_deleted', 'display_next', 'forward_attachment')); // set special folders foreach (array('drafts', 'trash', 'junk') as $mbox) { -- cgit v1.2.3