"use strict"; /*global define, app, templates*/ define('taskbar', function() { var taskbar = {}; taskbar.init = function() { var self = this; templates.parse('modules/taskbar', {}, function(html) { self.taskbar = $(html); self.tasklist = self.taskbar.find('ul'); $(document.body).append(self.taskbar); self.taskbar.on('click', 'li', function() { var $btn = $(this), module = $btn.attr('data-module'), uuid = $btn.attr('data-uuid'); require([module], function(module) { if (!$btn.hasClass('active')) { minimizeAll(); module.load(uuid); taskbar.toggleNew(uuid, false); app.alternatingTitle(''); taskbar.tasklist.removeClass('active'); $btn.addClass('active'); } else { module.minimize(uuid); } }); return false; }); }); }; taskbar.discard = function(module, uuid) { var btnEl = taskbar.tasklist.find('[data-module="' + module + '"][data-uuid="' + uuid + '"]'); btnEl.remove(); update(); }; taskbar.push = function(module, uuid, options) { var data = { module: module, uuid: uuid, options: options }; $(window).trigger('filter:taskbar.push', data); var element = taskbar.tasklist.find('li[data-uuid="' + data.uuid + '"]'); if (element.length) { return; } var title = $('
').text(data.options.title || 'NodeBB Task').html(); var btnEl = $('') .addClass(data.options.className) .html('' + (data.options.icon ? ' ' : '') + (data.options.image ? '