Thomas Bruederli
2014-05-12 a2f8fa236143b44f90e53c19806cfd0efa014857
program/js/treelist.js
@@ -323,7 +323,7 @@
   */
  function update_data()
  {
    data = walk_list(container);
    data = walk_list(container, 0);
  }
  /**
@@ -332,6 +332,7 @@
  function update_dom(node)
  {
    var li = id2dom(node.id);
    li.attr('aria-expanded', node.collapsed ? 'false' : 'true');
    li.children('ul').first()[(node.collapsed ? 'hide' : 'show')]();
    li.children('div.treetoggle').removeClass('collapsed expanded').addClass(node.collapsed ? 'collapsed' : 'expanded');
    me.triggerEvent('toggle', node);
@@ -400,8 +401,9 @@
    // add child list and toggle icon
    if (node.children && node.children.length) {
      li.attr('aria-expanded', node.collapsed ? 'false' : 'true');
      $('<div class="treetoggle '+(node.collapsed ? 'collapsed' : 'expanded') + '">&nbsp;</div>').appendTo(li);
      var ul = $('<ul>').appendTo(li).attr('class', node.childlistclass).attr('role', 'tree');
      var ul = $('<ul>').appendTo(li).attr('class', node.childlistclass).attr('role', 'group');
      if (node.collapsed)
        ul.hide();
@@ -417,7 +419,7 @@
   * Recursively walk the DOM tree and build an internal data structure
   * representing the skeleton of this tree list.
   */
  function walk_list(ul)
  function walk_list(ul, level)
  {
    var result = [];
    ul.children('li').each(function(i,e){
@@ -427,7 +429,7 @@
        classes: li.attr('class').split(' '),
        virtual: li.hasClass('virtual'),
        html: li.children().first().get(0).outerHTML,
        children: walk_list(sublist)
        children: walk_list(sublist, level+1)
      }
      if (sublist.length) {
@@ -435,6 +437,7 @@
      }
      if (node.children.length) {
        node.collapsed = sublist.css('display') == 'none';
        li.attr('aria-expanded', node.collapsed ? 'false' : 'true');
      }
      if (li.hasClass('selected')) {
        li.attr('aria-selected', 'true');
@@ -453,7 +456,7 @@
      indexbyid[node.id] = node;
    });
    ul.attr('role', 'tree');
    ul.attr('role', level == 0 ? 'tree' : 'group');
    return result;
  }