diff --git a/extensions/webmail/lib.py b/extensions/webmail/lib.py index 949d4795d..087e78973 100644 --- a/extensions/webmail/lib.py +++ b/extensions/webmail/lib.py @@ -216,10 +216,16 @@ class IMAPconnector(object): if not len(parts): return False path = "%s%s%s" % (prefix, delimiter, parts[0]) - sdescr = {"name" : parts[0], "path" : path, "sub" : []} + sdescr = None + for d in descr: + if d["path"] == path: + sdescr = d + break + if sdescr is None: + sdescr = {"name" : parts[0], "path" : path, "sub" : []} + descr += [sdescr] if self._parse_folder_name(sdescr["sub"], path, delimiter, parts[1:]): sdescr["class"] = "subfolders" - descr += [sdescr] return True def _listfolders(self, topfolder='INBOX', md_folders=[]): diff --git a/extensions/webmail/templatetags/webextras.py b/extensions/webmail/templatetags/webextras.py index bfd310c9b..06879cf07 100644 --- a/extensions/webmail/templatetags/webextras.py +++ b/extensions/webmail/templatetags/webextras.py @@ -138,7 +138,7 @@ def print_folders(folders, selected=None): cssclass = "unseen" result += "%s\n" \ % (fd.has_key("path") and fd["path"] or fd["name"], cssclass, label) - if fd.has_key("sub"): + if fd.has_key("sub") and len(fd["sub"]): result += "