module.define('ext/statusbar', [jQuery, 'core/settings', 'core/format', 'core/event', 'core/entry'], function ($, allsettings, format, event, entry) { var defaults = { enabled: false }, settings = _.extend({}, defaults, allsettings.statusbar), template = '' + '' + ' folders' + '·' + ' files' + '' + '' + '', sepTemplate = '·', $statusDynamic, $statusDefault, update = function (html) { if (html) { $statusDefault.hide(); $statusDynamic.empty().append(html).show(); } else { $statusDynamic.empty().hide(); $statusDefault.show(); } }, init = function (entry) { if (!settings.enabled) { return; } var $statusbar = $(template), $folderTotal = $statusbar.find('.folderTotal'), $fileTotal = $statusbar.find('.fileTotal'); $statusDefault = $statusbar.find('.status.default'); $statusDynamic = $statusbar.find('.status.dynamic'); var stats = entry.getStats(); $folderTotal.text(stats.folders); $fileTotal.text(stats.files); update(); event.sub('statusbar', update); $('#bottombar > .center').append($statusbar); event.sub('entry.mouseenter', function (entry) { var $span = $('').append(entry.label).append(sepTemplate).append(format.formatDate(entry.time)); if (!entry.isFolder()) { $span.append(sepTemplate).append(format.formatSize(entry.size)); } update($span); }); event.sub('entry.mouseleave', function (entry) { update(); }); }; init(entry); });