From 458ee7cca8ca0c6d48c7ba8137d5e6278d163349 Mon Sep 17 00:00:00 2001 From: psychobunny Date: Sat, 15 Nov 2014 14:56:04 -0500 Subject: [PATCH] acute ocd attack --- public/src/modules/taskbar.js | 206 ++++++++++++++++------------------ 1 file changed, 97 insertions(+), 109 deletions(-) diff --git a/public/src/modules/taskbar.js b/public/src/modules/taskbar.js index 991c28a223..090da7e277 100644 --- a/public/src/modules/taskbar.js +++ b/public/src/modules/taskbar.js @@ -2,119 +2,107 @@ /*global define, app, templates*/ define('taskbar', function() { - var taskbar = { - initialized: false, - 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); - - // Posts bar events - 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')) { - taskbar.minimizeAll(); - module.load(uuid); - taskbar.toggleNew(uuid, false); - app.alternatingTitle(''); - - // Highlight the button - taskbar.tasklist.removeClass('active'); - $btn.addClass('active'); - } else { - module.minimize(uuid); - } - }); - return false; + 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); + } }); - - taskbar.initialized = true; + + return false; }); - }, - - update: function() { - var tasks = taskbar.tasklist.find('li'); - - if (tasks.length > 0) { - taskbar.taskbar.attr('data-active', '1'); - } else { - taskbar.taskbar.removeAttr('data-active'); - } - }, - - discard: function(module, uuid) { - var btnEl = taskbar.tasklist.find('[data-module="' + module + '"][data-uuid="' + uuid + '"]'); - btnEl.remove(); - taskbar.update(); - }, - - push: function(module, uuid, options) { - var element = taskbar.tasklist.find('li[data-uuid="'+uuid+'"]'); - if(element.length) { - return; - } - var title = $('
').text(options.title || 'NodeBB Task').html(); - - var btnEl = $('
  • ') - .html('' + - (options.icon ? ' ' : '') + - (options.image ? ' ': '') + - '' + title + '' + - '') - .attr({ - 'data-module': module, - 'data-uuid': uuid - }) - .addClass(options.state !== undefined ? options.state : 'active'); - - if (!options.state || options.state === 'active') { - taskbar.minimizeAll(); - } - - taskbar.tasklist.append(btnEl); - taskbar.update(); - }, - - minimize: function(module, uuid) { - var btnEl = taskbar.tasklist.find('[data-module="' + module + '"][data-uuid="' + uuid + '"]'); - btnEl.removeClass('active'); - }, - - minimizeAll: function() { - taskbar.tasklist.find('.active').removeClass('active'); - }, - - toggleNew: function(uuid, state) { - var btnEl = taskbar.tasklist.find('[data-uuid="' + uuid + '"]'); - btnEl.toggleClass('new', state); - }, - - updateActive: function(uuid) { - var tasks = taskbar.tasklist.find('li'); - tasks.removeClass('active'); - tasks.filter('[data-uuid="' + uuid + '"]').addClass('active'); - }, - - isActive: function(uuid) { - var taskBtn = taskbar.tasklist.find('li[data-uuid="' + uuid + '"]'); - return taskBtn.hasClass('active'); + }); + }; + + taskbar.discard = function(module, uuid) { + var btnEl = taskbar.tasklist.find('[data-module="' + module + '"][data-uuid="' + uuid + '"]'); + btnEl.remove(); + taskbar.update(); + }; + + taskbar.push = function(module, uuid, options) { + var element = taskbar.tasklist.find('li[data-uuid="' + uuid + '"]'); + + if (element.length) { + return; + } + + var title = $('
    ').text(options.title || 'NodeBB Task').html(); + + var btnEl = $('
  • ') + .html('' + + (options.icon ? ' ' : '') + + (options.image ? ' ': '') + + '' + title + '' + + '') + .attr({ + 'data-module': module, + 'data-uuid': uuid + }) + .addClass(options.state !== undefined ? options.state : 'active'); + + if (!options.state || options.state === 'active') { + minimizeAll(); } + + taskbar.tasklist.append(btnEl); + taskbar.update(); }; - return { - push: taskbar.push, - discard: taskbar.discard, - minimize: taskbar.minimize, - toggleNew: taskbar.toggleNew, - updateActive: taskbar.updateActive, - isActive: taskbar.isActive, - init: taskbar.init + taskbar.minimize = function(module, uuid) { + var btnEl = taskbar.tasklist.find('[data-module="' + module + '"][data-uuid="' + uuid + '"]'); + btnEl.removeClass('active'); }; + + taskbar.toggleNew = function(uuid, state) { + var btnEl = taskbar.tasklist.find('[data-uuid="' + uuid + '"]'); + btnEl.toggleClass('new', state); + }; + + taskbar.updateActive = function(uuid) { + var tasks = taskbar.tasklist.find('li'); + tasks.removeClass('active'); + tasks.filter('[data-uuid="' + uuid + '"]').addClass('active'); + }; + + taskbar.isActive = function(uuid) { + var taskBtn = taskbar.tasklist.find('li[data-uuid="' + uuid + '"]'); + return taskBtn.hasClass('active'); + }; + + function update() { + var tasks = taskbar.tasklist.find('li'); + + if (tasks.length > 0) { + taskbar.taskbar.attr('data-active', '1'); + } else { + taskbar.taskbar.removeAttr('data-active'); + } + } + + function minimizeAll() { + taskbar.tasklist.find('.active').removeClass('active'); + } });