summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoralecpl <alec@alec.pl>2011-05-16 13:53:08 +0000
committeralecpl <alec@alec.pl>2011-05-16 13:53:08 +0000
commita509bb677ca626315d71e07afc8342a0690b6859 (patch)
treee55d28844812e713157aeeab2ed378adebd2ab05
parent9b6c82fdc8e0f74a1ca0f838e710c944c5526f65 (diff)
- Add option to set default action of Forward button to "Forward as attachment"
-rw-r--r--config/main.inc.php.dist3
-rw-r--r--program/js/app.js11
-rw-r--r--program/steps/mail/func.inc6
-rw-r--r--program/steps/mail/show.inc2
-rw-r--r--skins/default/common.css5
-rw-r--r--skins/default/functions.js7
-rw-r--r--skins/default/includes/messagetoolbar.html12
7 files changed, 36 insertions, 10 deletions
diff --git a/config/main.inc.php.dist b/config/main.inc.php.dist
index 381795d87..3391d1608 100644
--- a/config/main.inc.php.dist
+++ b/config/main.inc.php.dist
@@ -695,4 +695,7 @@ $rcmail_config['dsn_default'] = 0;
// Place replies in the folder of the message being replied to
$rcmail_config['reply_same_folder'] = false;
+// Sets default mode of Forward feature to "forward as attachment"
+$rcmail_config['forward_attachment'] = false;
+
// end of config file
diff --git a/program/js/app.js b/program/js/app.js
index 3f103de65..c4aa50995 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -931,10 +931,13 @@ function rcube_webmail()
case 'forward-attachment':
case 'forward':
- var uid;
- if (uid = this.get_single_uid())
- this.goto_url('compose', '_forward_uid='+uid+'&_mbox='+urlencode(this.env.mailbox)
- + (command == 'forward-attachment' ? '&_attachment=1' : ''), true);
+ var uid, url;
+ if (uid = this.get_single_uid()) {
+ url = '_forward_uid='+uid+'&_mbox='+urlencode(this.env.mailbox);
+ if (command == 'forward-attachment' || (!props && this.env.forward_attachment))
+ url += '&_attachment=1';
+ this.goto_url('compose', url, true);
+ }
break;
case 'print':
diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc
index 36b4c02a6..e0504e658 100644
--- a/program/steps/mail/func.inc
+++ b/program/steps/mail/func.inc
@@ -106,6 +106,7 @@ if (empty($RCMAIL->action) || $RCMAIL->action == 'list') {
$OUTPUT->set_env('delimiter', $IMAP->get_hierarchy_delimiter());
$OUTPUT->set_env('threading', (bool) $IMAP->threading);
$OUTPUT->set_env('threads', $IMAP->threading || $IMAP->get_capability('THREAD'));
+ $OUTPUT->set_env('preview_pane_mark_read', $RCMAIL->config->get('preview_pane_mark_read', 0));
if ($CONFIG['flag_for_deletion'])
$OUTPUT->set_env('flag_for_deletion', true);
@@ -115,9 +116,8 @@ if (empty($RCMAIL->action) || $RCMAIL->action == 'list') {
$OUTPUT->set_env('skip_deleted', true);
if ($CONFIG['display_next'])
$OUTPUT->set_env('display_next', true);
-
- $OUTPUT->set_env('preview_pane_mark_read', $RCMAIL->config->get('preview_pane_mark_read', 0));
-
+ if ($CONFIG['forward_attachment'])
+ $OUTPUT->set_env('forward_attachment', true);
if ($CONFIG['trash_mbox'])
$OUTPUT->set_env('trash_mailbox', $CONFIG['trash_mbox']);
if ($CONFIG['drafts_mbox'])
diff --git a/program/steps/mail/show.inc b/program/steps/mail/show.inc
index 1d7a32693..8c063e8ea 100644
--- a/program/steps/mail/show.inc
+++ b/program/steps/mail/show.inc
@@ -64,6 +64,8 @@ if ($uid = get_input_value('_uid', RCUBE_INPUT_GET)) {
$OUTPUT->set_env('display_next', true);
if ($MESSAGE->headers->others['list-post'])
$OUTPUT->set_env('list_post', true);
+ if ($CONFIG['forward_attachment'])
+ $OUTPUT->set_env('forward_attachment', true);
if (!$OUTPUT->ajax_call)
$OUTPUT->add_label('checkingmail', 'deletemessage', 'movemessagetotrash',
diff --git a/skins/default/common.css b/skins/default/common.css
index b1696ef85..6f1f264b7 100644
--- a/skins/default/common.css
+++ b/skins/default/common.css
@@ -490,6 +490,11 @@ body.iframe .boxtitle
background-color: #c00;
}
+.popupmenu li input
+{
+ float: left;
+}
+
.darkbg
{
background-color: #F2F2F2 !important;
diff --git a/skins/default/functions.js b/skins/default/functions.js
index c1dd8c2ab..9057d97c4 100644
--- a/skins/default/functions.js
+++ b/skins/default/functions.js
@@ -148,6 +148,13 @@ dragmessagemenu: function(show)
this.popups.dragmessagemenu.obj[show?'show':'hide']();
},
+forwardmenu: function(show)
+{
+ $("input[name='forwardtype'][value="+(rcmail.env.forward_attachment ? 1 : 0)+"]", this.popups.forwardmenu.obj)
+ .prop('checked', true);
+ this.show_popupmenu('forwardmenu', show);
+},
+
uploadmenu: function(show)
{
if (typeof show == 'object') // called as event handler
diff --git a/skins/default/includes/messagetoolbar.html b/skins/default/includes/messagetoolbar.html
index dcc27caea..2ac23a12b 100644
--- a/skins/default/includes/messagetoolbar.html
+++ b/skins/default/includes/messagetoolbar.html
@@ -26,9 +26,15 @@
</div>
<div id="forwardmenu" class="popupmenu">
- <ul>
- <li><roundcube:button command="forward" label="forwardinline" prop="sub" classAct="forwardlink active" class="forwardlink" /></li>
- <li><roundcube:button command="forward-attachment" label="forwardattachment" prop="sub" classAct="forwardattachmentlink active" class="forwardattachmentlink" /></li>
+ <ul class="toolbarmenu">
+ <li>
+ <input type="radio" name="forwardtype" value="0" onchange="rcmail.command('save-pref', {name: 'forward_attachment', value: 0, env: 'forward_attachment'});" />
+ <roundcube:button command="forward" label="forwardinline" prop="sub" classAct="forwardlink active" class="forwardlink" />
+ </li>
+ <li>
+ <input type="radio" name="forwardtype" value="1" onchange="rcmail.command('save-pref', {name: 'forward_attachment', value: 1, env: 'forward_attachment'})" />
+ <roundcube:button command="forward-attachment" label="forwardattachment" prop="sub" classAct="forwardattachmentlink active" class="forwardattachmentlink" />
+ </li>
<roundcube:container name="forwardmenu" id="forwardmenu" />
</ul>
</div>