From f94e442469deca30b39f3fa08aade83cbd0ede70 Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Fri, 16 Dec 2011 13:38:59 -0500
Subject: [PATCH] Add more classes and options to HTML elements for better styleability

---
 program/steps/mail/compose.inc |   60 ++++++++++++++++++++++++++++++++++++------------------------
 1 files changed, 36 insertions(+), 24 deletions(-)

diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc
index 4d54db4..76ff31d 100644
--- a/program/steps/mail/compose.inc
+++ b/program/steps/mail/compose.inc
@@ -56,7 +56,7 @@
   $_SESSION['compose_data_'.$COMPOSE_ID] = array(
     'id'      => $COMPOSE_ID,
     'param'   => request2param(RCUBE_INPUT_GET),
-    'mailbox' => $IMAP->get_mailbox_name(),
+    'mailbox' => $RCMAIL->imap->get_mailbox_name(),
   );
   $COMPOSE =& $_SESSION['compose_data_'.$COMPOSE_ID];
 
@@ -124,7 +124,7 @@
 $OUTPUT->add_label('nosubject', 'nosenderwarning', 'norecipientwarning', 'nosubjectwarning', 'cancel',
     'nobodywarning', 'notsentwarning', 'notuploadedwarning', 'savingmessage', 'sendingmessage', 
     'messagesaved', 'converting', 'editorwarning', 'searching', 'uploading', 'uploadingmany',
-    'fileuploaderror');
+    'fileuploaderror', 'sendmessage');
 
 $OUTPUT->set_env('compose_id', $COMPOSE['id']);
 
@@ -134,10 +134,19 @@
   $OUTPUT->set_env('draft_autosave', $CONFIG['draft_autosave']);
 }
 // set current mailbox in client environment
-$OUTPUT->set_env('mailbox', $IMAP->get_mailbox_name());
+$OUTPUT->set_env('mailbox', $RCMAIL->imap->get_mailbox_name());
 $OUTPUT->set_env('sig_above', $RCMAIL->config->get('sig_above', false));
 $OUTPUT->set_env('top_posting', $RCMAIL->config->get('top_posting', false));
 $OUTPUT->set_env('recipients_separator', trim($RCMAIL->config->get('recipients_separator', ',')));
+
+// use jquery UI for showing prompt() dialogs
+$RCMAIL->plugins->load_plugin('jqueryui');
+
+// default font for HTML editor
+$font = rcube_fontdefs($RCMAIL->config->get('default_font', 'Verdana'));
+if ($font && !is_array($font)) {
+  $OUTPUT->set_env('default_font', $font);
+}
 
 // get reference message and set compose mode
 if ($msg_uid = $COMPOSE['param']['draft_uid']) {
@@ -173,10 +182,10 @@
 
   // make sure message is marked as read
   if ($MESSAGE && $MESSAGE->headers && empty($MESSAGE->headers->flags['SEEN']))
-    $IMAP->set_flag($msg_uid, 'SEEN');
+    $RCMAIL->imap->set_flag($msg_uid, 'SEEN');
 
   if (!empty($MESSAGE->headers->charset))
-    $IMAP->set_charset($MESSAGE->headers->charset);
+    $RCMAIL->imap->set_charset($MESSAGE->headers->charset);
 
   if ($compose_mode == RCUBE_COMPOSE_REPLY)
   {
@@ -236,7 +245,7 @@
 $MESSAGE->compose = array();
 
 // get user's identities
-$MESSAGE->identities = $USER->list_identities();
+$MESSAGE->identities = $RCMAIL->user->list_identities();
 if (count($MESSAGE->identities))
 {
   foreach ($MESSAGE->identities as $idx => $ident) {
@@ -262,7 +271,7 @@
   // extract all recipients of the reply-message
   if (is_object($MESSAGE->headers) && in_array($compose_mode, array(RCUBE_COMPOSE_REPLY, RCUBE_COMPOSE_FORWARD)))
   {
-    $a_to = $IMAP->decode_address_list($MESSAGE->headers->to);
+    $a_to = $RCMAIL->imap->decode_address_list($MESSAGE->headers->to);
     foreach ($a_to as $addr) {
       if (!empty($addr['mailto'])) {
         $a_recipients[] = strtolower($addr['mailto']);
@@ -271,7 +280,7 @@
     }
 
     if (!empty($MESSAGE->headers->cc)) {
-      $a_cc = $IMAP->decode_address_list($MESSAGE->headers->cc);
+      $a_cc = $RCMAIL->imap->decode_address_list($MESSAGE->headers->cc);
       foreach ($a_cc as $addr) {
         if (!empty($addr['mailto'])) {
           $a_recipients[] = strtolower($addr['mailto']);
@@ -350,6 +359,10 @@
   ) {
     $fvalue = urldecode($_SESSION['mailto'][$mailto_id]);
     $decode_header = false;
+
+    // make session to not grow up too much
+    unset($_SESSION['mailto'][$mailto_id]);
+    $COMPOSE['param']['to'] = $fvalue;
   }
   else if (!empty($_POST['_'.$header])) {
     $fvalue = get_input_value('_'.$header, RCUBE_INPUT_POST, TRUE);
@@ -410,7 +423,7 @@
 
   // split recipients and put them back together in a unique way
   if (!empty($fvalue) && in_array($header, array('to', 'cc', 'bcc'))) {
-    $to_addresses = $IMAP->decode_address_list($fvalue, null, $decode_header);
+    $to_addresses = $RCMAIL->imap->decode_address_list($fvalue, null, $decode_header);
     $fvalue = array();
 
     foreach ($to_addresses as $addr_part) {
@@ -1220,16 +1233,16 @@
     else
       $button = Q(rcube_label('delete'));
 
-    foreach ($COMPOSE['attachments'] as $id => $a_prop)
-    {
+    foreach ($COMPOSE['attachments'] as $id => $a_prop) {
       if (empty($a_prop))
         continue;
 
-      $out .= html::tag('li', array('id' => 'rcmfile'.$id),
+      $out .= html::tag('li', array('id' => 'rcmfile'.$id, 'class' => rcmail_filetype2classname($a_prop['mimetype'], $a_prop['name'])),
         html::a(array(
             'href' => "#delete",
             'title' => rcube_label('delete'),
-            'onclick' => sprintf("return %s.command('remove-attachment','rcmfile%s', this)", JS_OBJECT_NAME, $id)),
+            'onclick' => sprintf("return %s.command('remove-attachment','rcmfile%s', this)", JS_OBJECT_NAME, $id),
+            'class' => 'delete'),
           $button) . Q($a_prop['name']));
         
         $jslist['rcmfile'.$id] = array('name' => $a_prop['name'], 'complete' => true, 'mimetype' => $a_prop['mimetype']);
@@ -1254,9 +1267,8 @@
 {
   global $RCMAIL, $OUTPUT;
 
-  // add ID if not given
-  if (!$attrib['id'])
-    $attrib['id'] = 'rcmUploadbox';
+  // set defaults
+  $attrib += array('id' => 'rcmUploadbox', 'buttons' => 'yes');
 
   // Get filesize, enable upload progress bar
   $max_filesize = rcube_upload_init();
@@ -1267,14 +1279,14 @@
     $OUTPUT->form_tag(array('name' => 'uploadform', 'method' => 'post', 'enctype' => 'multipart/form-data'),
       html::div(null, rcmail_compose_attachment_field(array('size' => $attrib['attachmentfieldsize']))) .
       html::div('hint', rcube_label(array('name' => 'maxuploadsize', 'vars' => array('size' => $max_filesize)))) .
-      html::div('buttons',
+      (get_boolean($attrib['buttons']) ? html::div('buttons',
         $button->show(rcube_label('close'), array('class' => 'button', 'onclick' => "$('#$attrib[id]').hide()")) . ' ' .
         $button->show(rcube_label('upload'), array('class' => 'button mainaction', 'onclick' => JS_OBJECT_NAME . ".command('send-attachment', this.form)"))
-      )
+      ) : '')
     )
   );
 
-  $OUTPUT->add_gui_object('uploadbox', $attrib['id']);
+  $OUTPUT->add_gui_object('uploadform', $attrib['id']);
   return $out;
 }
 
@@ -1419,18 +1431,18 @@
 
 function rcmail_check_sent_folder($folder, $create=false)
 {
-  global $IMAP;
+  global $RCMAIL;
 
-  if ($IMAP->mailbox_exists($folder, true)) {
+  if ($RCMAIL->imap->mailbox_exists($folder, true)) {
     return true;
   }
 
   // folder may exist but isn't subscribed (#1485241)
   if ($create) {
-    if (!$IMAP->mailbox_exists($folder))
-      return $IMAP->create_mailbox($folder, true);
+    if (!$RCMAIL->imap->mailbox_exists($folder))
+      return $RCMAIL->imap->create_mailbox($folder, true);
     else
-      return $IMAP->subscribe($folder);
+      return $RCMAIL->imap->subscribe($folder);
   }
 
   return false;

--
Gitblit v1.9.1