summaryrefslogtreecommitdiff
path: root/program
diff options
context:
space:
mode:
authorThomas Bruederli <thomas@roundcube.net>2014-07-28 09:39:37 +0200
committerThomas Bruederli <thomas@roundcube.net>2014-07-28 09:41:18 +0200
commit39bd9b8e298b21bbe652b31b940aa772bed7d8b2 (patch)
tree0035692a52e27158ebf6cbecaa1993d156518ef7 /program
parent835638037a6e11cfdf4fd84c4b362465937a5bba (diff)
Set 'compose_extwin' env property on every step; accept a list of URL parameters for the 'compose' command
Diffstat (limited to 'program')
-rw-r--r--program/include/rcmail.php3
-rw-r--r--program/js/app.js8
-rw-r--r--program/steps/addressbook/func.inc1
-rw-r--r--program/steps/addressbook/show.inc1
-rw-r--r--program/steps/mail/func.inc2
-rw-r--r--program/steps/mail/show.inc2
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) {