summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorthomascube <thomas@roundcube.net>2005-11-08 20:18:56 +0000
committerthomascube <thomas@roundcube.net>2005-11-08 20:18:56 +0000
commit583f1c8d80c42195d0ee41f30a885e13d777b79f (patch)
treea9069c3d540940c7d0855cd07698d786f30f3792
parentb595c9fcf6940ae25c1e58ef2b8d340405083906 (diff)
Added reply-to-all function (submitted by Julien Brette)
-rw-r--r--CHANGELOG5
-rw-r--r--program/js/app.js9
-rw-r--r--program/localization/ca/labels.inc1
-rw-r--r--program/localization/da/labels.inc1
-rw-r--r--program/localization/de/labels.inc1
-rw-r--r--program/localization/en/labels.inc1
-rw-r--r--program/localization/en_GB/labels.inc1
-rw-r--r--program/localization/es/labels.inc1
-rw-r--r--program/localization/fi/labels.inc1
-rw-r--r--program/localization/fr/labels.inc1
-rw-r--r--program/localization/it/labels.inc1
-rw-r--r--program/localization/nl/labels.inc1
-rw-r--r--program/localization/pt/labels.inc1
-rw-r--r--program/localization/pt_BR/labels.inc1
-rw-r--r--program/localization/ro/labels.inc1
-rw-r--r--program/localization/se/labels.inc1
-rw-r--r--program/localization/se/messages.inc2
-rw-r--r--program/steps/mail/compose.inc47
-rw-r--r--program/steps/mail/sendmail.inc2
-rw-r--r--skins/default/images/buttons/replyall_act.pngbin0 -> 1989 bytes
-rw-r--r--skins/default/images/buttons/replyall_pas.pngbin0 -> 1987 bytes
-rw-r--r--skins/default/mail.css2
-rw-r--r--skins/default/templates/compose.html10
-rw-r--r--skins/default/templates/mail.html1
-rw-r--r--skins/default/templates/message.html1
25 files changed, 76 insertions, 17 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 4b0d6cf07..618c51f22 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -62,7 +62,7 @@ CHANGELOG RoundCube Webmail
2005/11/06
----------
-- Added Finnish, Romanian, Polish, Czech, British and Chinese translation
+- Added Finnish, Romanian, Polish, Czech, British, Norwegian and Chinese translation
- Get IMAP server capabilities in array
- Check for NAMESPACE capability before sending command
- Set default user language from config 'locale_string'
@@ -76,3 +76,6 @@ CHANGELOG RoundCube Webmail
- Added input check for contacts and identities (Patch #1346523)
- Added messages/warning to compose step (Patch #1323895)
- Added favicon to the default skin
+- Fixed Bug #1334337 as far as possible
+- Added Reply-To-All functionality
+
diff --git a/program/js/app.js b/program/js/app.js
index 7967f793e..9825c18c1 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -6,7 +6,7 @@
| Copyright (C) 2005, RoundCube Dev, - Switzerland |
| Licensed under the GNU GPL |
| |
- | Modified: 2005/11/06 (roundcube) |
+ | Modified: 2005/11/08 (roundcube) |
| |
+-----------------------------------------------------------------------+
| Author: Thomas Bruederli <roundcube@gmail.com> |
@@ -118,7 +118,7 @@ function rcube_webmail()
if (this.env.action=='show')
{
- this.enable_command('show', 'reply', 'forward', 'moveto', 'delete', 'viewsource', 'print', 'load-attachment', true);
+ this.enable_command('show', 'reply', 'reply-all', 'forward', 'moveto', 'delete', 'viewsource', 'print', 'load-attachment', true);
if (this.env.next_uid)
this.enable_command('nextmessage', true);
if (this.env.prev_uid)
@@ -727,12 +727,13 @@ function rcube_webmail()
this.upload_file(props)
break;
+ case 'reply-all':
case 'reply':
var uid;
if (uid = this.get_single_uid())
{
this.set_busy(true);
- location.href = this.env.comm_path+'&_action=compose&_reply_uid='+uid+'&_mbox='+escape(this.env.mailbox);
+ location.href = this.env.comm_path+'&_action=compose&_reply_uid='+uid+'&_mbox='+escape(this.env.mailbox)+(command=='reply-all' ? '&_all=1' : '');
}
break;
@@ -1036,7 +1037,7 @@ function rcube_webmail()
// enable/disable commands for message
if (this.task=='mail')
{
- this.enable_command('show', 'reply', 'forward', 'print', selected);
+ this.enable_command('show', 'reply', 'reply-all', 'forward', 'print', selected);
this.enable_command('delete', 'moveto', this.selection.length>0 ? true : false);
}
else if (this.task=='addressbook')
diff --git a/program/localization/ca/labels.inc b/program/localization/ca/labels.inc
index f6b287769..b4e7aa037 100644
--- a/program/localization/ca/labels.inc
+++ b/program/localization/ca/labels.inc
@@ -91,6 +91,7 @@ $labels['today'] = 'Avui';
// toolbar buttons
$labels['writenewmessage'] = 'Crear nou missatge';
$labels['replytomessage'] = 'Respondre el missatge';
+$labels['replytoallmessage'] = 'Respondre a tots';
$labels['forwardmessage'] = 'Reenviar el missatge';
$labels['deletemessage'] = 'Moure el missatge a la paperera';
$labels['printmessage'] = 'Imprimir aquest missatge';
diff --git a/program/localization/da/labels.inc b/program/localization/da/labels.inc
index bec439d86..4df394cbe 100644
--- a/program/localization/da/labels.inc
+++ b/program/localization/da/labels.inc
@@ -93,6 +93,7 @@ $labels['today'] = 'I dag';
// toolbar buttons
$labels['writenewmessage'] = 'Opret en ny besked';
$labels['replytomessage'] = 'Svar på denne besked';
+$labels['replytoallmessage'] = 'Svar alle';
$labels['forwardmessage'] = 'Videresend denne besked';
$labels['deletemessage'] = 'Flyt beskeden til skrald';
$labels['printmessage'] = 'Udskriv denne besked';
diff --git a/program/localization/de/labels.inc b/program/localization/de/labels.inc
index fe5bd8e25..4bbb14c95 100644
--- a/program/localization/de/labels.inc
+++ b/program/localization/de/labels.inc
@@ -92,6 +92,7 @@ $labels['today'] = 'Heute';
// toolbar buttons // Symbolleisten-Tipps
$labels['writenewmessage'] = 'Neue Nachricht schreiben';
$labels['replytomessage'] = 'Antwort verfassen';
+$labels['replytoallmessage'] = 'Antwort an Absender und alle Empfänger';
$labels['forwardmessage'] = 'Nachricht weiterleiten';
$labels['deletemessage'] = 'In den Papierkorb verschieben';
$labels['printmessage'] = 'Diese Nachricht drucken';
diff --git a/program/localization/en/labels.inc b/program/localization/en/labels.inc
index 34d46a3ea..35813cdb0 100644
--- a/program/localization/en/labels.inc
+++ b/program/localization/en/labels.inc
@@ -91,6 +91,7 @@ $labels['today'] = 'Today';
// toolbar buttons
$labels['writenewmessage'] = 'Create a new message';
$labels['replytomessage'] = 'Reply to the message';
+$labels['replytoallmessage'] = 'Reply to sender an all recipients';
$labels['forwardmessage'] = 'Forward the message';
$labels['deletemessage'] = 'Move message to trash';
$labels['printmessage'] = 'Print this message';
diff --git a/program/localization/en_GB/labels.inc b/program/localization/en_GB/labels.inc
index 9efd1ff77..d1a274971 100644
--- a/program/localization/en_GB/labels.inc
+++ b/program/localization/en_GB/labels.inc
@@ -91,6 +91,7 @@ $labels['today'] = 'Today';
// toolbar buttons
$labels['writenewmessage'] = 'Create a new message';
$labels['replytomessage'] = 'Reply to the message';
+$labels['replytoallmessage'] = 'Reply to sender an all recipients';
$labels['forwardmessage'] = 'Forward the message';
$labels['deletemessage'] = 'Move message to trash';
$labels['printmessage'] = 'Print this message';
diff --git a/program/localization/es/labels.inc b/program/localization/es/labels.inc
index bd800361e..19bad2187 100644
--- a/program/localization/es/labels.inc
+++ b/program/localization/es/labels.inc
@@ -90,6 +90,7 @@ $labels['today'] = 'Hoy';
// toolbar buttons
$labels['writenewmessage'] = 'Crear nuevo mensaje';
$labels['replytomessage'] = 'Responder al mensaje';
+$labels['replytoallmessage'] = 'Responder a todos';
$labels['forwardmessage'] = 'Reenviar mensaje';
$labels['deletemessage'] = 'Move message to trash';
$labels['printmessage'] = 'Imprimir este mensaje';
diff --git a/program/localization/fi/labels.inc b/program/localization/fi/labels.inc
index ba610a0f5..b92ef7941 100644
--- a/program/localization/fi/labels.inc
+++ b/program/localization/fi/labels.inc
@@ -91,6 +91,7 @@ $labels['today'] = 'Tänään';
// toolbar buttons
$labels['writenewmessage'] = 'Kirjoita uusi viesti';
$labels['replytomessage'] = 'Vastaa viestiin';
+$labels['replytoallmessage'] = 'Vastaa kaikille';
$labels['forwardmessage'] = 'Välitä viesti';
$labels['deletemessage'] = 'Siirrä viesti roskakoriin';
$labels['printmessage'] = 'Tulosta viesti';
diff --git a/program/localization/fr/labels.inc b/program/localization/fr/labels.inc
index 5b9251820..c429d5b03 100644
--- a/program/localization/fr/labels.inc
+++ b/program/localization/fr/labels.inc
@@ -90,6 +90,7 @@ $labels['today'] = 'Aujourd\'hui';
// toolbar buttons
$labels['writenewmessage'] = 'Créer un nouveau message';
$labels['replytomessage'] = 'Répondre au message';
+$labels['replytoallmessage'] = 'Répondre ā tous';
$labels['forwardmessage'] = 'Transmettre le message';
$labels['deletemessage'] = 'Déplacer le message dans la corbeille';
$labels['printmessage'] = 'Imprimer ce message';
diff --git a/program/localization/it/labels.inc b/program/localization/it/labels.inc
index 3eba8b6be..111a1ac43 100644
--- a/program/localization/it/labels.inc
+++ b/program/localization/it/labels.inc
@@ -90,6 +90,7 @@ $labels['today'] = 'Oggi';
// toolbar buttons
$labels['writenewmessage'] = 'Crea un nuovo messaggio';
$labels['replytomessage'] = 'Rispondi al messaggio';
+$labels['replytoallmessage'] = 'Rispondi a tutti';
$labels['forwardmessage'] = 'Inoltra il messaggio';
$labels['deletemessage'] = 'Sposta il messaggio nel cestino';
$labels['printmessage'] = 'Stampa questo messaggio';
diff --git a/program/localization/nl/labels.inc b/program/localization/nl/labels.inc
index 464d93937..b8158bde3 100644
--- a/program/localization/nl/labels.inc
+++ b/program/localization/nl/labels.inc
@@ -91,6 +91,7 @@ $labels['today'] = 'Vandaag';
// toolbar buttons
$labels['writenewmessage'] = 'Schrijf een nieuw bericht';
$labels['replytomessage'] = 'Beantwoord het bericht';
+$labels['replytoallmessage'] = 'Beantwoord allen';
$labels['forwardmessage'] = 'Stuur bericht door';
$labels['deletemessage'] = 'Verplaats bericht naar prullenbak';
$labels['printmessage'] = 'Print dit bericht';
diff --git a/program/localization/pt/labels.inc b/program/localization/pt/labels.inc
index 30710ba39..6ca4dfa01 100644
--- a/program/localization/pt/labels.inc
+++ b/program/localization/pt/labels.inc
@@ -91,6 +91,7 @@ $labels['today'] = 'Hoje';
// toolbar buttons
$labels['writenewmessage'] = 'Criar nova mensagem';
$labels['replytomessage'] = 'Responder a mensagem';
+$labels['replytoallmessage'] = 'Responder a todos';
$labels['forwardmessage'] = 'Reencaminhar a mensagem';
$labels['deletemessage'] = 'Mover a mensagem para a reciclagem';
$labels['printmessage'] = 'Imprimir esta mensagem';
diff --git a/program/localization/pt_BR/labels.inc b/program/localization/pt_BR/labels.inc
index 00867462c..e0c325684 100644
--- a/program/localization/pt_BR/labels.inc
+++ b/program/localization/pt_BR/labels.inc
@@ -94,6 +94,7 @@ $labels['today'] = 'Hoje';
// toolbar buttons
$labels['writenewmessage'] = 'Criar nova mensagem';
$labels['replytomessage'] = 'Responder';
+$labels['replytoallmessage'] = 'Responder a todos';
$labels['forwardmessage'] = 'Encaminhar';
$labels['deletemessage'] = 'Mover para a lixeira';
$labels['printmessage'] = 'Imprimir';
diff --git a/program/localization/ro/labels.inc b/program/localization/ro/labels.inc
index 3d5f9dcf9..b7cab4d62 100644
--- a/program/localization/ro/labels.inc
+++ b/program/localization/ro/labels.inc
@@ -90,6 +90,7 @@ $labels['today'] = 'Astazi';
// toolbar buttons
$labels['writenewmessage'] = 'Creaza mesaj nou';
$labels['replytomessage'] = 'Raspunde la mesaj';
+$labels['replytoallmessage'] = 'Raspunde la toti';
$labels['forwardmessage'] = 'Trimite mesaj mai departe';
$labels['deletemessage'] = 'Muta mesaj la gunoi';
$labels['printmessage'] = 'Printeaza mesaj';
diff --git a/program/localization/se/labels.inc b/program/localization/se/labels.inc
index 13930bb3f..7e06e459a 100644
--- a/program/localization/se/labels.inc
+++ b/program/localization/se/labels.inc
@@ -91,6 +91,7 @@ $labels['today'] = 'Idag';
// toolbar buttons
$labels['writenewmessage'] = 'Skapa nytt meddelande';
$labels['replytomessage'] = 'Svar på meddelande';
+$labels['replytoallmessage'] = 'Svara alla';
$labels['forwardmessage'] = 'Skicka vidare meddelande';
$labels['deletemessage'] = 'Flytta till papperskorgen';
$labels['printmessage'] = 'Skriv ut';
diff --git a/program/localization/se/messages.inc b/program/localization/se/messages.inc
index 7ec1e9861..a5f9f73be 100644
--- a/program/localization/se/messages.inc
+++ b/program/localization/se/messages.inc
@@ -32,6 +32,8 @@ $messages['loggedout'] = 'Du har avslutat sessionen. Hej då!';
$messages['mailboxempty'] = 'Mappen är tom';
+$messages['loading'] = 'Laddar....';
+
$messages['loadingdata'] = 'Laddar data...';
$messages['messagesent'] = 'Meddelande skickades';
diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc
index d01e399e6..93fae66ef 100644
--- a/program/steps/mail/compose.inc
+++ b/program/steps/mail/compose.inc
@@ -50,15 +50,18 @@ if ($_GET['_reply_uid'] || $_GET['_forward_uid'])
$MESSAGE['structure'] = $mmd->decode(array('include_bodies' => TRUE,
'decode_headers' => TRUE,
'decode_bodies' => FALSE));
-
+
$MESSAGE['subject'] = $IMAP->decode_header($MESSAGE['headers']->subject);
$MESSAGE['parts'] = $mmd->getMimeNumbers($MESSAGE['structure']);
if ($_GET['_reply_uid'])
{
- $REPLY_MESSAGE = $MESSAGE;
+ $REPLY_MESSAGE = &$MESSAGE;
$_SESSION['compose']['reply_uid'] = $_GET['_reply_uid'];
$_SESSION['compose']['reply_msgid'] = $REPLY_MESSAGE['headers']->messageID;
+
+ if ($_GET['_all'])
+ $REPLY_MESSAGE['reply_all'] = 1;
}
else
{
@@ -75,6 +78,7 @@ if ($_GET['_reply_uid'] || $_GET['_forward_uid'])
function rcmail_compose_headers($attrib)
{
global $IMAP, $REPLY_MESSAGE, $DB;
+ static $sa_recipients = array();
list($form_start, $form_end) = get_form_tags($attrib);
@@ -144,7 +148,7 @@ function rcmail_compose_headers($attrib)
if (!$fname)
{
$fname = '_cc';
- //$header = 'cc';
+ $header = 'cc';
}
case 'bcc':
if (!$fname)
@@ -162,7 +166,7 @@ function rcmail_compose_headers($attrib)
break;
}
-
+
if ($fname && !empty($_POST[$fname]))
$fvalue = $_POST[$fname];
@@ -173,14 +177,37 @@ function rcmail_compose_headers($attrib)
$fvalue = $IMAP->decode_header($REPLY_MESSAGE['headers']->replyto);
else if ($header=='to' && $REPLY_MESSAGE['headers']->from)
$fvalue = $IMAP->decode_header($REPLY_MESSAGE['headers']->from);
-
+ // add recipent of original message if reply to all
+ else if ($header=='cc' && $REPLY_MESSAGE['reply_all'])
+ {
+ if ($IMAP->decode_header($REPLY_MESSAGE['headers']->to))
+ $fvalue .= $IMAP->decode_header($REPLY_MESSAGE['headers']->to);
+
+ if ($IMAP->decode_header($REPLY_MESSAGE['headers']->cc))
+ {
+ if($fvalue)
+ $fvalue .= ', ';
+
+ $fvalue .= $IMAP->decode_header($REPLY_MESSAGE['headers']->cc);
+ }
+ }
+
// split recipients and put them back together in a unique way
- $to_addresses = $IMAP->decode_address_list($fvalue);
- $fvalue = '';
- foreach ($to_addresses as $addr_part)
- $fvalue .= (strlen($fvalue) ? ', ':'').$addr_part['string'];
+ if (!empty($fvalue))
+ {
+ $to_addresses = $IMAP->decode_address_list($fvalue);
+ $fvalue = '';
+ foreach ($to_addresses as $addr_part)
+ {
+ if (!in_array($addr_part['mailto'], $sa_recipients))
+ {
+ $fvalue .= (strlen($fvalue) ? ', ':'').$addr_part['string'];
+ $sa_recipients[] = $addr_part['mailto'];
+ }
+ }
+ }
}
-
+
if ($fname && $field_type)
{
diff --git a/program/steps/mail/sendmail.inc b/program/steps/mail/sendmail.inc
index 2bafaebc1..c5505c948 100644
--- a/program/steps/mail/sendmail.inc
+++ b/program/steps/mail/sendmail.inc
@@ -138,7 +138,7 @@ if ($CONFIG['useragent'])
// create PEAR::Mail_mime instance
-$MAIL_MIME = new Mail_mime();
+$MAIL_MIME = new Mail_mime("\n");
$MAIL_MIME->setTXTBody(stripslashes($_POST['_message']), FALSE, TRUE);
//$MAIL_MIME->setTXTBody(wordwrap(stripslashes($_POST['_message'])), FALSE, TRUE);
diff --git a/skins/default/images/buttons/replyall_act.png b/skins/default/images/buttons/replyall_act.png
new file mode 100644
index 000000000..b6ad3fb18
--- /dev/null
+++ b/skins/default/images/buttons/replyall_act.png
Binary files differ
diff --git a/skins/default/images/buttons/replyall_pas.png b/skins/default/images/buttons/replyall_pas.png
new file mode 100644
index 000000000..948072d9b
--- /dev/null
+++ b/skins/default/images/buttons/replyall_pas.png
Binary files differ
diff --git a/skins/default/mail.css b/skins/default/mail.css
index 739bfed10..5a362c197 100644
--- a/skins/default/mail.css
+++ b/skins/default/mail.css
@@ -26,7 +26,7 @@
#messagetoolbar select.mboxlist
{
position: absolute;
- left: 300px;
+ left: 335px;
top: 10px;
}
diff --git a/skins/default/templates/compose.html b/skins/default/templates/compose.html
index dd392bdda..aa28098c8 100644
--- a/skins/default/templates/compose.html
+++ b/skins/default/templates/compose.html
@@ -105,6 +105,16 @@ function rcmail_toggle_display(id)
<roundcube:object name="composeAttachmentForm" id="attachment-form" />
+<script type="text/javascript">
+<!--
+
+var cc_field = document.form._cc;
+if (cc_field && cc_field.value!='')
+ rcmail_toggle_display('compose-cc');
+
+//-->
+</script>
+
<!--
<div id="attachment-form">
<roundcube:object name="composeAttachment" size="20" /><br />
diff --git a/skins/default/templates/mail.html b/skins/default/templates/mail.html
index 3eafad581..61d0e6d52 100644
--- a/skins/default/templates/mail.html
+++ b/skins/default/templates/mail.html
@@ -13,6 +13,7 @@
<div id="messagetoolbar">
<roundcube:button command="compose" imageAct="/images/buttons/compose_act.png" imagePas="/images/buttons/compose_pas.png" width="32" height="32" title="writenewmessage" />
<roundcube:button command="reply" imageAct="/images/buttons/reply_act.png" imagePas="/images/buttons/reply_pas.png" width="32" height="32" title="replytomessage" />
+<roundcube:button command="reply-all" imageAct="/images/buttons/replyall_act.png" imagePas="/images/buttons/replyall_pas.png" width="32" height="32" title="replytoallmessage" />
<roundcube:button command="forward" imageAct="/images/buttons/forward_act.png" imagePas="/images/buttons/forward_pas.png" width="32" height="32" title="forwardmessage" />
<roundcube:button command="delete" imageAct="/images/buttons/delete_act.png" imagePas="/images/buttons/delete_pas.png" width="32" height="32" title="deletemessage" />
<roundcube:button command="print" imageAct="/images/buttons/print_act.png" imagePas="/images/buttons/print_pas.png" width="32" height="32" title="printmessage" />
diff --git a/skins/default/templates/message.html b/skins/default/templates/message.html
index 4a4702afd..0ef9ef0bf 100644
--- a/skins/default/templates/message.html
+++ b/skins/default/templates/message.html
@@ -19,6 +19,7 @@
<div id="messagetoolbar">
<roundcube:button command="list" image="/images/buttons/back_act.png" width="32" height="32" title="backtolist" />
<roundcube:button command="reply" imageAct="/images/buttons/reply_act.png" imagePas="/images/buttons/reply_pas.png" width="32" height="32" title="replytomessage" />
+<roundcube:button command="reply-all" imageAct="/images/buttons/replyall_act.png" imagePas="/images/buttons/replyall_pas.png" width="32" height="32" title="replytoallmessage" />
<roundcube:button command="forward" imageAct="/images/buttons/forward_act.png" imagePas="/images/buttons/forward_pas.png" width="32" height="32" title="forwardmessage" />
<roundcube:button command="delete" imageAct="/images/buttons/delete_act.png" imagePas="/images/buttons/delete_pas.png" width="32" height="32" title="deletemessage" />
<roundcube:button command="print" imageAct="/images/buttons/print_act.png" imagePas="/images/buttons/print_pas.png" width="32" height="32" title="printmessage" />