From cca626ef7e4859ee84a02a2f09b3d4e8db9584c5 Mon Sep 17 00:00:00 2001
From: svncommit <devs@roundcube.net>
Date: Fri, 29 Aug 2008 09:17:37 -0400
Subject: [PATCH] Show unread counters the way Thunderbird does.

---
 program/js/app.js |   17 +++++++++--------
 1 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/program/js/app.js b/program/js/app.js
index 3fb21bc..3db117f 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -3492,26 +3492,27 @@
   // update the mailbox count display
   this.set_unread_count_display = function(mbox, set_title)
     {
-    var reg, text_obj, item, count, div, children;
+    var reg, text_obj, item, mycount, childcount, div, children;
     if (item = this.get_folder_li(mbox))
       {
-      count = parseInt(item.getAttribute('count') ? item.getAttribute('count') : 0);
+      mycount = parseInt(item.getAttribute('count') ? item.getAttribute('count') : 0);
       text_obj = item.getElementsByTagName('a')[0];
       reg = /\s+\([0-9]+\)$/i;
 
       div = item.getElementsByTagName('div')[0];
+	  childcount = 0;
       if (div.className.match(/collapsed/))
         {
         // add children's counters
         children = item.getElementsByTagName('li');
         for (var i=0; i<children.length; i++)
-          count = count+parseInt(children[i].getAttribute('count') ? children[i].getAttribute('count') : 0);
+          childcount = childcount+parseInt(children[i].getAttribute('count') ? children[i].getAttribute('count') : 0);
         }
 
-      if (count && text_obj.innerHTML.match(reg))
-        text_obj.innerHTML = text_obj.innerHTML.replace(reg, ' ('+count+')');
-      else if (count)
-        text_obj.innerHTML += ' ('+count+')';
+      if (mycount && text_obj.innerHTML.match(reg))
+        text_obj.innerHTML = text_obj.innerHTML.replace(reg, ' ('+mycount+')');
+      else if (mycount)
+        text_obj.innerHTML += ' ('+mycount+')';
       else
         text_obj.innerHTML = text_obj.innerHTML.replace(reg, '');
 
@@ -3521,7 +3522,7 @@
         this.set_unread_count_display(mbox.replace(reg, ''), false);
 
       // set the right classes
-      this.set_classname(item, 'unread', count>0 ? true : false);
+      this.set_classname(item, 'unread', (mycount+childcount)>0 ? true : false);
       }
 
     // set unread count to window title

--
Gitblit v1.9.1