Added reply-to-all function (submitted by Julien Brette)
23 files modified
2 files added
| | |
| | | |
| | | 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' |
| | |
| | | - 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 |
| | | |
| | |
| | | | 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> | |
| | |
| | | |
| | | 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) |
| | |
| | | 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; |
| | | |
| | |
| | | // 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') |
| | |
| | | // 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'; |
| | |
| | | // 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'; |
| | |
| | | // 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'; |
| | |
| | | // 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'; |
| | |
| | | // 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'; |
| | |
| | | // 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'; |
| | |
| | | // 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'; |
| | |
| | | // 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'; |
| | |
| | | // 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'; |
| | |
| | | // 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'; |
| | |
| | | // 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'; |
| | |
| | | // 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'; |
| | |
| | | // 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'; |
| | |
| | | // 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'; |
| | |
| | | |
| | | $messages['mailboxempty'] = 'Mappen är tom'; |
| | | |
| | | $messages['loading'] = 'Laddar....'; |
| | | |
| | | $messages['loadingdata'] = 'Laddar data...'; |
| | | |
| | | $messages['messagesent'] = 'Meddelande skickades'; |
| | |
| | | $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 |
| | | { |
| | |
| | | function rcmail_compose_headers($attrib) |
| | | { |
| | | global $IMAP, $REPLY_MESSAGE, $DB; |
| | | static $sa_recipients = array(); |
| | | |
| | | list($form_start, $form_end) = get_form_tags($attrib); |
| | | |
| | |
| | | if (!$fname) |
| | | { |
| | | $fname = '_cc'; |
| | | //$header = 'cc'; |
| | | $header = 'cc'; |
| | | } |
| | | case 'bcc': |
| | | if (!$fname) |
| | |
| | | break; |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | if ($fname && !empty($_POST[$fname])) |
| | | $fvalue = $_POST[$fname]; |
| | |
| | | $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) |
| | | { |
| | |
| | | |
| | | |
| | | // 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); |
| | | |
| | |
| | | #messagetoolbar select.mboxlist |
| | | { |
| | | position: absolute; |
| | | left: 300px; |
| | | left: 335px; |
| | | top: 10px; |
| | | } |
| | | |
| | |
| | | |
| | | <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 /> |
| | |
| | | <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" /> |
| | |
| | | <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" /> |