From 7e7b18373d72da613ef275dddc022e673e2f6779 Mon Sep 17 00:00:00 2001 From: Michael M Slusarz Date: Wed, 23 Dec 2009 22:03:04 -0700 Subject: [PATCH] Fix setting label of a 'special' container --- imp/js/DimpBase.js | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/imp/js/DimpBase.js b/imp/js/DimpBase.js index abc0e1df2..5ce9b2f53 100644 --- a/imp/js/DimpBase.js +++ b/imp/js/DimpBase.js @@ -1306,9 +1306,11 @@ var DimpBase = { this.updateUnseenStatus(r.view, unseen); }, + // mbox = (string) getUnseenCount: function(mbox) { - return Number($(this.getFolderId(mbox)).retrieve('u')); + var elt = $(this.getFolderId(mbox)); + return elt ? Number(elt.retrieve('u')) : 0; }, updateUnseenStatus: function(mbox, unseen) @@ -1337,17 +1339,25 @@ var DimpBase = { } }, + // f = (string|Element) setFolderLabel: function(f, unseen) { - var fid = this.getFolderId(f), - elt = $(fid); + var elt, fid; + + if (Object.isElement(f)) { + fid = f.identify(); + elt = f; + } else { + fid = f; + elt = $(this.getFolderId(f)); + } if (!elt) { return; } if (Object.isUndefined(unseen)) { - unseen = this.getUnseenCount(f); + unseen = this.getUnseenCount(fid); } else { if (Object.isUndefined(elt.retrieve('u')) || elt.retrieve('u') == unseen) { @@ -1358,7 +1368,7 @@ var DimpBase = { elt.store('u', unseen); } - if (f == 'INBOX' && window.fluid) { + if (fid == 'INBOX' && window.fluid) { window.fluid.setDockBadge(unseen ? unseen : ''); } @@ -2340,7 +2350,9 @@ var DimpBase = { }); return; } else if (mode == 'tog') { - this.setFolderLabel(base.retrieve('mbox')); + // Need to pass element here, since we might be working + // with 'special' folders. + this.setFolderLabel(base); } } -- 2.11.0