From 06895c3e947e1b15da3bb2f6f425962949edb9d9 Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Fri, 18 May 2007 08:35:28 -0400
Subject: [PATCH] Better refresh of message list; improved HTML mail display

---
 program/steps/mail/list.inc |    7 ++++---
 program/steps/mail/func.inc |   20 +++++++++++---------
 program/js/app.js           |    4 +++-
 3 files changed, 18 insertions(+), 13 deletions(-)

diff --git a/program/js/app.js b/program/js/app.js
index 3ee54f6..65bbee9 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -1244,13 +1244,15 @@
     if (!page && mbox != this.env.mailbox)
       {
       page = 1;
-      add_url += '&_refresh=1';
       this.env.current_page = page;
       if (this.message_list)
         this.message_list.clear_selection();
       this.show_contentframe(false);
       }
     
+    if (mbox != this.env.mailbox || (mbox == this.env.mailbox && !page && !sort))
+      add_url += '&_refresh=1';
+    
     this.select_folder(mbox, this.env.mailbox);
     this.env.mailbox = mbox;
 
diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc
index fc17417..cc1187b 100644
--- a/program/steps/mail/func.inc
+++ b/program/steps/mail/func.inc
@@ -1207,16 +1207,18 @@
   $body = preg_replace('/<a\s+([^>]+)>/Uie', "rcmail_alter_html_link('\\1');", $body);
 
   // add comments arround html and other tags
-  $out = preg_replace(array('/(<\/?html[^>]*>)/i',
-                            '/(<\/?head[^>]*>)/i',
-                            '/(<title[^>]*>.*<\/title>)/Ui',
-                            '/(<\/?meta[^>]*>)/i'),
-                      '<!--\\1-->',
-                      $body);
+  $out = preg_replace(array(
+      '/(<!DOCTYPE.+)/i',
+      '/(<\/?html[^>]*>)/i',
+      '/(<\/?head[^>]*>)/i',
+      '/(<title[^>]*>.*<\/title>)/Ui',
+      '/(<\/?meta[^>]*>)/i'),
+    '<!--\\1-->',
+    $body);
 
-  $out = preg_replace(array('/(<body[^>]*>)/i',
-                            '/(<\/body>)/i'),
-                      array('<div class="rcmBody">',
+  $out = preg_replace(array('/<body([^>]*)>/i',
+                            '/<\/body>/i'),
+                      array('<div class="rcmBody"\\1>',
                             '</div>'),
                       $out);
 
diff --git a/program/steps/mail/list.inc b/program/steps/mail/list.inc
index a246254..6c72706 100644
--- a/program/steps/mail/list.inc
+++ b/program/steps/mail/list.inc
@@ -37,12 +37,13 @@
   $sort_order = isset($_SESSION['sort_order']) ? $_SESSION['sort_order'] : $CONFIG['message_sort_order'];
 }
 
+$mbox_name = $IMAP->get_mailbox_name();
 
 // fetch message headers
-if ($count = $IMAP->messagecount())
+if ($count = $IMAP->messagecount($mbox_name, 'ALL', !empty($_REQUEST['_refresh'])))
   $a_headers = $IMAP->list_headers($mbox_name, NULL, $sort_col, $sort_order);
 
-$unseen = $IMAP->messagecount($mbox_name, 'UNSEEN', !empty($_REQUEST['_refresh']) ? TRUE : FALSE);
+$unseen = $IMAP->messagecount($mbox_name, 'UNSEEN', !empty($_REQUEST['_refresh']));
 
 // update message count display
 $pages = ceil($count/$IMAP->page_size);
@@ -51,7 +52,7 @@
 $OUTPUT->command('set_rowcount', rcmail_get_messagecount_text($count));
 
 // update mailboxlist
-$OUTPUT->command('set_unread_count', $IMAP->get_mailbox_name(), $unseen);
+$OUTPUT->command('set_unread_count', $mbox_name, $unseen);
 
 
 // add message rows

--
Gitblit v1.9.1