Added reply-to-all function (submitted by Julien Brette)

release-0.6
thomascube 19 years ago
parent b595c9fcf6
commit 583f1c8d80

@ -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

@ -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')

@ -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';

@ -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';

@ -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';

@ -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';

@ -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';

@ -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';

@ -91,6 +91,7 @@ $labels['today'] = 'T
// 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';

@ -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';

@ -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';

@ -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';

@ -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';

@ -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';

@ -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';

@ -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';

@ -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';

@ -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)
{

@ -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);

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

@ -26,7 +26,7 @@
#messagetoolbar select.mboxlist
{
position: absolute;
left: 300px;
left: 335px;
top: 10px;
}

@ -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 />

@ -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" />

@ -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" />

Loading…
Cancel
Save