summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--program/js/app.js5
-rw-r--r--program/js/treelist.js12
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;