modulejs.define('ext/tree', ['_', '$', 'core/settings', 'core/resource', 'core/event', 'core/location'], function (_, $, allsettings, resource, event, location) { var settings = _.extend({ enabled: false, slide: true, maxSubfolders: 50 }, allsettings.tree), template = '
' + '' + '' + '' + '' + '' + '' + '' + '', statusHintTemplate = '', magicSequence = '=h5ai=', update = function (item) { var $html = $(template), $indicator = $html.find('.indicator'), $a = $html.find('a'), $img = $html.find('.icon img'), $label = $html.find('.label'); $html .addClass(item.isFolder() ? 'folder' : 'file') .data('item', item) .data('status', item.status); location.setLink($a, item); $img.attr('src', resource.image('folder')); $label.text(item.label); if (item.isFolder()) { var subfolders = item.getSubfolders(); // indicator if (!item.status || (item.status === magicSequence && !item.isContentFetched) || subfolders.length) { $indicator.removeClass('none'); if (!item.status || (item.status === magicSequence && !item.isContentFetched)) { $indicator.addClass('unknown'); } else if (item.isContentVisible) { $indicator.addClass('open'); } else { $indicator.addClass('close'); } } // is it the domain? if (item.isDomain()) { $html.addClass('domain'); $img.attr('src', resource.image('home')); } // is it the root? if (item.isRoot()) { $html.addClass('root'); $img.attr('src', resource.image('home')); } // is it the current folder? if (item.isCurrentFolder()) { $html.addClass('current'); // $img.attr('src', resource.image('folder-open')); } // does it have subfolders? if (subfolders.length) { var $ul = $('