From 6204390af16bcf50f82da61a1aefc2ad0c0adf94 Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Mon, 01 May 2006 10:47:27 -0400
Subject: [PATCH] Applied patch for requesting receipts by Salvatore Ansani

---
 program/localization/de_DE/labels.inc |    1 +
 program/include/main.inc              |    7 ++++---
 program/steps/mail/compose.inc        |   16 ++++++++++++++++
 skins/default/mail.css                |    9 ++++++++-
 program/localization/en_US/labels.inc |    1 +
 program/localization/de_CH/labels.inc |    1 +
 skins/default/templates/compose.html  |    4 ++++
 program/steps/mail/sendmail.inc       |    5 +++++
 8 files changed, 40 insertions(+), 4 deletions(-)

diff --git a/program/include/main.inc b/program/include/main.inc
index c0dd71e..67d596d 100644
--- a/program/include/main.inc
+++ b/program/include/main.inc
@@ -189,12 +189,12 @@
   global $CONFIG, $IMAP;
 
   // set root dir from config
-  if (strlen($CONFIG['imap_root']))
+  if (!empty($CONFIG['imap_root']))
     $IMAP->set_rootdir($CONFIG['imap_root']);
 
-  if (strlen($_SESSION['mbox']))
+  if (!empty($_SESSION['mbox']))
     $IMAP->set_mailbox($_SESSION['mbox']);
-    
+
   if (isset($_SESSION['page']))
     $IMAP->set_page($_SESSION['page']);
   }
@@ -1149,6 +1149,7 @@
         'priorityselector' => 'rcmail_priority_selector',
         'charsetselector' => 'rcmail_charset_selector',
         'searchform' => 'rcmail_search_form',
+        'receiptcheckbox' => 'rcmail_receipt_checkbox',
         
         // ADDRESS BOOK
         'addresslist' => 'rcmail_contacts_list',
diff --git a/program/localization/de_CH/labels.inc b/program/localization/de_CH/labels.inc
index 0271420..72fc878 100644
--- a/program/localization/de_CH/labels.inc
+++ b/program/localization/de_CH/labels.inc
@@ -123,6 +123,7 @@
 $labels['sendmessage']  = 'Nachricht jetzt senden';
 $labels['addattachment']  = 'Datei anfügen';
 $labels['charset']  = 'Zeichensatz';
+$labels['returnreceipt'] = 'Empfangsbestätigung';
 
 $labels['attachments'] = 'Anhänge';
 $labels['upload'] = 'Hochladen';
diff --git a/program/localization/de_DE/labels.inc b/program/localization/de_DE/labels.inc
index 074ad3d..249e6ec 100644
--- a/program/localization/de_DE/labels.inc
+++ b/program/localization/de_DE/labels.inc
@@ -124,6 +124,7 @@
 $labels['sendmessage']  = 'Nachricht jetzt senden';
 $labels['addattachment']  = 'Datei anfügen';
 $labels['charset']  = 'Zeichensatz';
+$labels['returnreceipt'] = 'Empfangsbestätigung';
 
 $labels['attachments'] = 'Anhänge';
 $labels['upload'] = 'Hochladen';
diff --git a/program/localization/en_US/labels.inc b/program/localization/en_US/labels.inc
index 9b27a90..e280dbb 100644
--- a/program/localization/en_US/labels.inc
+++ b/program/localization/en_US/labels.inc
@@ -123,6 +123,7 @@
 $labels['sendmessage']  = 'Send the message now';
 $labels['addattachment']  = 'Attach a file';
 $labels['charset']  = 'Charset';
+$labels['returnreceipt'] = 'Return receipt';
 
 $labels['attachments'] = 'Attachments';
 $labels['upload'] = 'Upload';
diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc
index d278279..b25c369 100644
--- a/program/steps/mail/compose.inc
+++ b/program/steps/mail/compose.inc
@@ -567,6 +567,22 @@
   }
 
 
+function rcmail_receipt_checkbox($attrib)
+  {
+  list($form_start, $form_end) = get_form_tags($attrib);
+  unset($attrib['form']);
+
+  $attrib['name'] = '_receipt';
+  $checkbox = new checkbox(array('name' => '_receipt', 'id' => 'receipt', 'value' => 1));
+
+  $out = $form_start ? "$form_start\n" : '';
+  $out .= $checkbox->show(0);
+  $out .= $form_end ? "\n$form_end" : '';
+
+  return $out;
+  }
+
+
 function get_form_tags($attrib)
   {
   global $CONFIG, $OUTPUT, $JS_OBJECT_NAME, $MESSAGE_FORM, $SESS_HIDDEN_FIELD;  
diff --git a/program/steps/mail/sendmail.inc b/program/steps/mail/sendmail.inc
index 33f023d..f8d3ada 100644
--- a/program/steps/mail/sendmail.inc
+++ b/program/steps/mail/sendmail.inc
@@ -136,6 +136,11 @@
     $headers['X-Priority'] = sprintf("%d (%s)", $priority, ucfirst($str_priority));
   }
 
+if (!empty($_POST['_receipt']))
+  {
+  $headers['Return-Receipt-To'] = $identity_arr['string'];
+  $headers['Disposition-Notification-To'] = $identity_arr['string'];
+  }
 
 // additional headers
 $headers['Message-ID'] = $message_id;
diff --git a/skins/default/mail.css b/skins/default/mail.css
index 3188e65..333aed0 100644
--- a/skins/default/mail.css
+++ b/skins/default/mail.css
@@ -642,7 +642,14 @@
 #priority-selector
 {
   position: absolute;
-  left: 200px;
+  left: 180px;
+  top: 10px;
+}
+
+#receipt-selector
+{
+  position: absolute;
+  left: 350px;
   top: 10px;
 }
 
diff --git a/skins/default/templates/compose.html b/skins/default/templates/compose.html
index d160dd9..07ebf82 100644
--- a/skins/default/templates/compose.html
+++ b/skins/default/templates/compose.html
@@ -39,6 +39,10 @@
 <roundcube:label name="priority" />:&nbsp;<roundcube:object name="prioritySelector" form="form" />
 </div>
 
+<div id="receipt-selector">
+<roundcube:object name="receiptCheckBox" form="form" />&nbsp;<roundcube:label name="returnreceipt" />
+</div>
+
 </div>
 
 <div id="compose-container">

--
Gitblit v1.9.1