diff options
-rw-r--r-- | program/js/app.js | 5 | ||||
-rw-r--r-- | program/js/treelist.js | 12 |
2 files changed, 11 insertions, 6 deletions
diff --git a/program/js/app.js b/program/js/app.js index 7c6dba8c0..57ef903eb 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -4438,7 +4438,10 @@ function rcube_webmail() this.name_input_li = $('<li>').addClass(type).append(this.name_input); var li = type == 'contactsearch' ? $('li:last', this.gui_objects.folderlist) : $('ul.groups li:last', this.get_folder_li(this.env.source,'',true)); - this.name_input_li.insertAfter(li); + if (li.length) + this.name_input_li.insertAfter(li); + else + this.name_input_li.appendTo(type == 'contactsearch' ? this.gui_objects.folderlist : $('ul.groups', this.get_folder_li(this.env.source,'',true))); } this.name_input.select().focus(); diff --git a/program/js/treelist.js b/program/js/treelist.js index 4beaadab9..d6d50e4f7 100644 --- a/program/js/treelist.js +++ b/program/js/treelist.js @@ -263,7 +263,7 @@ function rcube_treelist_widget(node, p) if (sibling) { li.insertAfter(sibling); } - else { + else if (first.id != myid) { li.insertBefore(first); } @@ -380,18 +380,20 @@ function rcube_treelist_widget(node, p) { var result = []; ul.children('li').each(function(i,e){ - var li = $(e); + var li = $(e), sublist = li.children('ul'); var node = { id: dom2id(li), classes: li.attr('class').split(' '), virtual: li.hasClass('virtual'), html: li.children().first().get(0).outerHTML, - children: walk_list(li.children('ul')) + children: walk_list(sublist) } + if (sublist.length) { + node.childlistclass = sublist.attr('class'); + } if (node.children.length) { - node.childlistclass = li.children('ul').attr('class'); - node.collapsed = li.children('ul').css('display') == 'none'; + node.collapsed = sublist.css('display') == 'none'; } if (li.hasClass('selected')) { selection = node.id; |