From 85360dc8df13c9641301f0b40b1ecf00d3c1e966 Mon Sep 17 00:00:00 2001 From: thomascube <thomas@roundcube.net> Date: Fri, 29 Aug 2008 10:10:18 -0400 Subject: [PATCH] Fix unread count display: save counts in list, use the right vars --- program/js/app.js | 28 +++++++++++++--------------- 1 files changed, 13 insertions(+), 15 deletions(-) diff --git a/program/js/app.js b/program/js/app.js index 4ed67cb..6b475ce 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -230,6 +230,7 @@ // get unread count for each mailbox if (this.gui_objects.mailboxlist) { + this.env.unread_counts = {}; this.gui_objects.folderlist = this.gui_objects.mailboxlist; this.http_request('getunread', ''); } @@ -3484,22 +3485,18 @@ if (!this.gui_objects.mailboxlist) return false; - var reg, text_obj, item; - if (item = this.get_folder_li(mbox)) - { - item.setAttribute('count', count); - this.set_unread_count_display(mbox, set_title); - } + this.env.unread_counts[mbox] = count; + this.set_unread_count_display(mbox, set_title); } // update the mailbox count display this.set_unread_count_display = function(mbox, set_title) { - var reg, text_obj, item, mycount, childcount, div, children; + var reg, text_obj, item, mycount, childcount, div; if (item = this.get_folder_li(mbox)) { - mycount = parseInt(item.getAttribute('count') ? item.getAttribute('count') : 0); + mycount = this.env.unread_counts[mbox]; text_obj = item.getElementsByTagName('a')[0]; reg = /\s+\([0-9]+\)$/i; @@ -3508,9 +3505,10 @@ div.className.match(/collapsed/)) { // add children's counters - children = item.getElementsByTagName('li'); - for (var i=0; i<children.length; i++) - childcount = childcount+parseInt(children[i].getAttribute('count') ? children[i].getAttribute('count') : 0); + for (var k in this.env.unread_counts) + if (k.indexOf(mbox) == 0) { + childcount += this.env.unread_counts[k]; + } } if (mycount && text_obj.innerHTML.match(reg)) @@ -3536,10 +3534,10 @@ var doc_title = String(document.title); var new_title = ""; - if (count && doc_title.match(reg)) - new_title = doc_title.replace(reg, '('+count+') '); - else if (count) - new_title = '('+count+') '+doc_title; + if (mycount && doc_title.match(reg)) + new_title = doc_title.replace(reg, '('+mycount+') '); + else if (mycount) + new_title = '('+mycount+') '+doc_title; else new_title = doc_title.replace(reg, ''); -- Gitblit v1.9.1