From 2355045dedc96274ca6b1c29612006e736b6f540 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Mon, 20 May 2013 10:32:52 +0200 Subject: Change Reply-All button label/title when mailing list is detected (#1488938) --- CHANGELOG | 1 + program/js/app.js | 1 + program/js/common.js | 3 +-- program/steps/mail/func.inc | 2 +- program/steps/mail/show.inc | 2 +- skins/classic/functions.js | 11 ++++++++++- skins/larry/ui.js | 14 ++++++++++++++ 7 files changed, 29 insertions(+), 5 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 83b8b3db4..f671629bc 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,7 @@ CHANGELOG Roundcube Webmail =========================== +- Change Reply-All button label/title when mailing list is detected (#1488938) - Fix SMTP connection using IPv6 address in smtp_server option (#1489024) - Added attachment_reminder plugin - Make PHP code eval() free, use create_function() diff --git a/program/js/app.js b/program/js/app.js index b98272493..1f0b95410 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -1179,6 +1179,7 @@ function rcube_webmail() if (typeof cmd === 'string') { this.commands[cmd] = enable; this.set_button(cmd, (enable ? 'act' : 'pas')); + this.triggerEvent('enable-command', {command: cmd, status: enable}); } // push array elements into commands array else { diff --git a/program/js/common.js b/program/js/common.js index f7c0a7536..53dce8cc2 100644 --- a/program/js/common.js +++ b/program/js/common.js @@ -298,8 +298,7 @@ addEventListener: function(evt, func, obj) if (!this._events[evt]) this._events[evt] = []; - var e = {func:func, obj:obj ? obj : window}; - this._events[evt][this._events[evt].length] = e; + this._events[evt].push({func:func, obj:obj ? obj : window}); }, /** diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc index fc22366c0..661d3fbbb 100644 --- a/program/steps/mail/func.inc +++ b/program/steps/mail/func.inc @@ -120,7 +120,7 @@ if (empty($RCMAIL->action) || $RCMAIL->action == 'list') { if (!$OUTPUT->ajax_call) $OUTPUT->add_label('checkingmail', 'deletemessage', 'movemessagetotrash', 'movingmessage', 'copyingmessage', 'deletingmessage', 'markingmessage', - 'copy', 'move', 'quota'); + 'copy', 'move', 'quota', 'replyall', 'replylist'); $pagetitle = $RCMAIL->localize_foldername($RCMAIL->storage->mod_folder($mbox_name), true); $pagetitle = str_replace($delimiter, " \xC2\xBB ", $pagetitle); diff --git a/program/steps/mail/show.inc b/program/steps/mail/show.inc index 2ad1ba9bd..d8d4372f9 100644 --- a/program/steps/mail/show.inc +++ b/program/steps/mail/show.inc @@ -116,7 +116,7 @@ if ($uid) { if (!$OUTPUT->ajax_call) $OUTPUT->add_label('checkingmail', 'deletemessage', 'movemessagetotrash', - 'movingmessage', 'deletingmessage', 'markingmessage'); + 'movingmessage', 'deletingmessage', 'markingmessage', 'replyall', 'replylist'); $prefer_html = $RCMAIL->config->get('prefer_html'); if ($MESSAGE->has_html_part()) { diff --git a/skins/classic/functions.js b/skins/classic/functions.js index 0d2f2231a..d980627aa 100644 --- a/skins/classic/functions.js +++ b/skins/classic/functions.js @@ -617,6 +617,14 @@ prev_sibling: function(elm) while (ps && ps.nodeType == 3) ps = ps.previousSibling; return ps; +}, + +enable_command: function(p) +{ + if (p.command == 'reply-list') { + var label = rcmail.gettext(p.status ? 'replylist' : 'replyall'); + $('a.button.replyAll').attr('title', label); + } } }; @@ -792,7 +800,7 @@ function percent_indicator(obj, data) var bar2 = $('
'); bar2.css({position: 'absolute', top: pos.top + 1, left: pos.left + 1, width: width + 'px', height: height + 'px', zIndex: 98}) - .addClass('quota_bg'); + .addClass('quota_bg'); if (quota >= limit_high) { main.addClass(' quota_text_high'); @@ -835,6 +843,7 @@ function rcube_init_mail_ui() .contents().mouseup(function(e){rcmail_ui.body_mouseup(e)}); if (rcmail.env.task == 'mail') { + rcmail.addEventListener('enable-command', 'enable_command', rcmail_ui); rcmail.addEventListener('menu-open', 'menu_open', rcmail_ui); rcmail.addEventListener('menu-save', 'menu_save', rcmail_ui); rcmail.addEventListener('aftersend-attachment', 'uploadmenu', rcmail_ui); diff --git a/skins/larry/ui.js b/skins/larry/ui.js index a461b64a0..693448097 100644 --- a/skins/larry/ui.js +++ b/skins/larry/ui.js @@ -94,6 +94,7 @@ function rcube_mail_ui() } if (rcmail.env.action == 'show' || rcmail.env.action == 'preview') { + rcmail.addEventListener('enable-command', enable_command); rcmail.addEventListener('aftershow-headers', function() { layout_messageview(); }); rcmail.addEventListener('afterhide-headers', function() { layout_messageview(); }); $('#previewheaderstoggle').click(function(e){ toggle_preview_headers(); return false }); @@ -145,6 +146,7 @@ function rcube_mail_ui() new rcube_scroller('#folderlist-content', '#folderlist-header', '#folderlist-footer'); rcmail.addEventListener('setquota', update_quota); + rcmail.addEventListener('enable-command', enable_command); } if ($('#mailview-left').length) { @@ -435,6 +437,18 @@ function rcube_mail_ui() } + function enable_command(p) + { + if (p.command == 'reply-list') { + var label = rcmail.gettext(p.status ? 'replylist' : 'replyall'); + if (rcmail.env.action == 'preview') + $('a.button.replyall').attr('title', label); + else + $('a.button.reply-all').text(label).attr('title', label); + } + } + + /** * Register a popup menu */ -- cgit v1.2.3