From 7984ece2935cf7e2dc5185ad92f6991ee947a92a Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Wed, 26 Sep 2007 04:13:21 -0400
Subject: [PATCH] Improve message compose screen

---
 CHANGELOG                             |    8 ++
 skins/default/mail.css                |   38 +++---------
 program/localization/en_US/labels.inc |    4 +
 program/localization/de_CH/labels.inc |    4 +
 skins/default/templates/compose.html  |   85 +++++++++++++++++++--------
 program/steps/mail/sendmail.inc       |    4 +
 6 files changed, 88 insertions(+), 55 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 4da2b05..f797b17 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,8 +1,15 @@
 CHANGELOG RoundCube Webmail
 ---------------------------
 
+2007/09/26 (thomasb)
+----------
+- Improve message compose screen (closes #1484383)
+
+
 2007/09/26 (tomekp)
+----------
 - Update polish localization (#1484579)
+
 
 2007/09/25 (robin)
 ----------
@@ -21,6 +28,7 @@
 
 2007/09/19 (thomasb)
 ----------
+- IPv6 Compatability (#1484322), Patch #1484373
 - Unlock interface when message sending fails (#1484570)
 - Eval PHP code in template includes (if configured)
 - Show message when folder is empty. Mo more static text in table (#1484395)
diff --git a/program/localization/de_CH/labels.inc b/program/localization/de_CH/labels.inc
index d5e088e..f300978 100644
--- a/program/localization/de_CH/labels.inc
+++ b/program/localization/de_CH/labels.inc
@@ -157,6 +157,10 @@
 $labels['htmltoggle'] = 'HTML';
 $labels['plaintoggle'] = 'Klartext';
 
+$labels['addcc'] = 'Cc hinzufügen';
+$labels['addbcc'] = 'Bcc hinzufügen';
+$labels['addreplyto'] = 'Antwortadresse hinzufügen';
+
 
 // address book // Adressbuch
 $labels['name']      = 'Anzeigename';
diff --git a/program/localization/en_US/labels.inc b/program/localization/en_US/labels.inc
index c4b7141..4c5e80a 100644
--- a/program/localization/en_US/labels.inc
+++ b/program/localization/en_US/labels.inc
@@ -156,6 +156,10 @@
 $labels['htmltoggle'] = 'HTML';
 $labels['plaintoggle'] = 'Plain text';
 
+$labels['addcc'] = 'Add Cc';
+$labels['addbcc'] = 'Add Bcc';
+$labels['addreplyto'] = 'Add Reply-To';
+
 
 // address boook
 $labels['name']      = 'Display name';
diff --git a/program/steps/mail/sendmail.inc b/program/steps/mail/sendmail.inc
index 7a87d2e..f1fd090 100644
--- a/program/steps/mail/sendmail.inc
+++ b/program/steps/mail/sendmail.inc
@@ -186,7 +186,9 @@
 if (!empty($identity_arr['organization']))
   $headers['Organization'] = $identity_arr['organization'];
 
-if (!empty($identity_arr['reply-to']))
+if (!empty($_POST['_replyto']))
+  $headers['Reply-To'] = preg_replace($mailto_regexp, $mailto_replace, get_input_value('_replyto', RCUBE_INPUT_POST, TRUE, $message_charset));
+else if (!empty($identity_arr['reply-to']))
   $headers['Reply-To'] = $identity_arr['reply-to'];
 
 if (!empty($_SESSION['compose']['reply_msgid']))
diff --git a/skins/default/mail.css b/skins/default/mail.css
index 5849948..b55f294 100644
--- a/skins/default/mail.css
+++ b/skins/default/mail.css
@@ -56,7 +56,9 @@
 #listcontrols a:visited,
 #mailboxcontrols a,
 #mailboxcontrols a:active,
-#mailboxcontrols a:visited
+#mailboxcontrols a:visited,
+td.formlinks a,
+td.formlinks a:visited
 {
   color: #999999;
   font-size: 11px;
@@ -68,7 +70,9 @@
 #listcontrols a.active:visited,
 #mailboxcontrols a.active,
 #mailboxcontrols a.active:active,
-#mailboxcontrols a.active:visited
+#mailboxcontrols a.active:visited,
+td.formlinks a,
+td.formlinks a:visited
 {
   color: #CC0000;
 }
@@ -700,18 +704,10 @@
 
 /** message compose styles */
 
-#priority-selector
-{
-  position: absolute;
-  left: 280px;
-  top: 10px;
-}
-
+#priority-selector,
 #receipt-selector
 {
-  position: absolute;
-  left: 450px;
-  top: 10px;
+  padding-left: 30px;
 }
 
 #compose-container
@@ -776,24 +772,10 @@
   white-space: nowrap;
 }
 
-#compose-headers td.add-button
-{
-  width: 40px !important;
-  text-align: right;
-  vertical-align: bottom;
-}
-
-#compose-headers td.add-button a
-{
-  color: #666666;
-  font-size: 11px;
-  text-decoration: none;
-}
-
 #compose-headers td textarea
 {
   width: 100%;
-  height: 40px;
+  height: 38px;
 }
 
 #compose-headers td input
@@ -812,7 +794,7 @@
 {
   margin-top: 5px;
   margin-bottom: 10px;
-  width: 99%;
+  width: 100%;
   height: 90%;
   min-height: 280px;
   font-size: 9pt;
diff --git a/skins/default/templates/compose.html b/skins/default/templates/compose.html
index 4378c17..f45c63b 100644
--- a/skins/default/templates/compose.html
+++ b/skins/default/templates/compose.html
@@ -8,17 +8,40 @@
 <script type="text/javascript">
 <!--
 
-function rcmail_toggle_display(id)
-  {
-  var row, disp;
+function rcmail_show_header_form(id, link)
+{
+  var row, ns, ps;
   if (row = document.getElementById(id))
-    {
-    disp = (!row.style.display || row.style.display=='none') ? ((document.all && !window.opera) ? 'block' : 'table-row') : 'none';
-    row.style.display = disp;
-    }
+    row.style.display = (document.all && !window.opera) ? 'block' : 'table-row';
+  
+  if (link)
+  {
+    if ((ns = rcmail_next_sibling(link)))
+      link.parentNode.removeChild(ns);
+    else if ((ps = rcmail_prev_sibling(link)))
+      link.parentNode.removeChild(ps);
     
-  return false;
+    link.parentNode.removeChild(link);
   }
+  
+  return false;
+}
+
+function rcmail_next_sibling(elm)
+{
+  var ns = elm.nextSibling;
+  while (ns && ns.nodeType == 3)
+    ns = ns.nextSibling;
+  return ns;
+}
+
+function rcmail_prev_sibling(elm)
+{
+  var ps = elm.previousSibling;
+  while (ps && ps.nodeType == 3)
+    ps = ps.previousSibling;
+  return ps;
+}
 
 //-->
 </script>
@@ -31,20 +54,21 @@
 <form name="form" action="./" method="post">
 
 <div id="messagetoolbar">
-<roundcube:button command="list" image="/images/buttons/back_act.png" imageSel="/images/buttons/back_sel.png" imageAct="/images/buttons/back_act.png" width="32" height="32" title="backtolist" />
-<roundcube:button command="send" imageSel="/images/buttons/send_sel.png" imageAct="/images/buttons/send_act.png" imagePas="/images/buttons/send_pas.png" width="32" height="32" title="sendmessage" />
-<roundcube:button command="spellcheck" imageSel="/images/buttons/spellcheck_sel.png" imageAct="/images/buttons/spellcheck_act.png" imagePas="/images/buttons/spellcheck_pas.png" width="32" height="32" title="checkspelling" />
-<roundcube:button command="add-attachment" imageSel="/images/buttons/attach_sel.png" imageAct="/images/buttons/attach_act.png" imagePas="/images/buttons/attach_pas.png" width="32" height="32" title="addattachment" />
-<roundcube:button command="savedraft" imageSel="/images/buttons/drafts_sel.png" imageAct="/images/buttons/drafts_act.png" imagePas="/images/buttons/drafts_pas.png" width="32" height="32" title="savemessage" />
-
-<div id="priority-selector">
-<label for="rcmcomposepriority"><roundcube:label name="priority" />:</label>&nbsp;<roundcube:object name="prioritySelector" form="form" id="rcmcomposepriority" />
-</div>
-
-<div id="receipt-selector">
-<roundcube:object name="receiptCheckBox" form="form" id="rcmcomposereceipt" />&nbsp;<label for="rcmcomposereceipt"><roundcube:label name="returnreceipt" /></label>
-</div>
-
+<table border="0" cellspacing="0" cellpadding="0"><tr>
+<td>
+  <roundcube:button command="list" image="/images/buttons/back_act.png" imageSel="/images/buttons/back_sel.png" imageAct="/images/buttons/back_act.png" width="32" height="32" title="backtolist" />
+  <roundcube:button command="send" imageSel="/images/buttons/send_sel.png" imageAct="/images/buttons/send_act.png" imagePas="/images/buttons/send_pas.png" width="32" height="32" title="sendmessage" />
+  <roundcube:button command="spellcheck" imageSel="/images/buttons/spellcheck_sel.png" imageAct="/images/buttons/spellcheck_act.png" imagePas="/images/buttons/spellcheck_pas.png" width="32" height="32" title="checkspelling" />
+  <roundcube:button command="add-attachment" imageSel="/images/buttons/attach_sel.png" imageAct="/images/buttons/attach_act.png" imagePas="/images/buttons/attach_pas.png" width="32" height="32" title="addattachment" />
+  <roundcube:button command="savedraft" imageSel="/images/buttons/drafts_sel.png" imageAct="/images/buttons/drafts_act.png" imagePas="/images/buttons/drafts_pas.png" width="32" height="32" title="savemessage" />
+</td>
+<td id="priority-selector">
+  <label for="rcmcomposepriority"><roundcube:label name="priority" />:</label>&nbsp;<roundcube:object name="prioritySelector" form="form" id="rcmcomposepriority" />
+</td>
+<td id="receipt-selector">
+  <roundcube:object name="receiptCheckBox" form="form" id="rcmcomposereceipt" />&nbsp;<label for="rcmcomposereceipt"><roundcube:label name="returnreceipt" /></label>
+</td>
+</tr></table>
 </div>
 
 <div id="compose-container">
@@ -63,8 +87,6 @@
 
 <td class="title top"><label for="rcmcomposeto"><roundcube:label name="to" /></label></td>
 <td><roundcube:object name="composeHeaders" part="to" form="form" id="rcmcomposeto" cols="80" rows="2" tabindex="2" /></td>
-<td class="add-button"><a href="#" onclick="return rcmail_toggle_display('compose-cc')">[Cc]</a><br />
-<a href="#" onclick="return rcmail_toggle_display('compose-bcc')">[Bcc]</a><br /></td>
 
 </tr><tr id="compose-cc">
 
@@ -80,6 +102,17 @@
 
 <td class="title top"><label for="rcmcomposereplyto"><roundcube:label name="replyto" /></label></td>
 <td><roundcube:object name="composeHeaders" part="replyto" form="form" id="rcmcomposereplyto" size="80" tabindex="5" /></td>
+
+</tr><tr>
+  
+<td></td>
+<td class="formlinks">
+  <a href="#cc" onclick="return rcmail_show_header_form('compose-cc', this);" id="addcclink"><roundcube:label name="addcc" /></a>
+  <span class="separator">|</span>
+  <a href="#bcc" onclick="return rcmail_show_header_form('compose-bcc', this);" id="addbcclink"><roundcube:label name="addbcc" /></a>
+  <span class="separator">|</span>
+  <a href="#reply-to" onclick="return rcmail_show_header_form('compose-replyto', this);" id="addreplytolink"><roundcube:label name="addreplyto" /></a>
+</td>
 
 </tr><tr>
 
@@ -133,10 +166,10 @@
 
 var cc_field = document.form._cc;
 if (cc_field && cc_field.value!='')
-  rcmail_toggle_display('compose-cc');
+  rcmail_show_header_form('compose-cc', document.getElementById('addcclink'));
 var bcc_field = document.form._bcc;
 if (bcc_field && bcc_field.value!='')
-  rcmail_toggle_display('compose-bcc');
+  rcmail_show_header_form('compose-bcc', document.getElementById('addbcclink'));
 
 //-->
 </script>

--
Gitblit v1.9.1