acute ocd attack

v1.18.x
psychobunny 10 years ago
parent bfaeee2531
commit 458ee7cca8

@ -2,9 +2,9 @@
/*global define, app, templates*/ /*global define, app, templates*/
define('taskbar', function() { define('taskbar', function() {
var taskbar = { var taskbar = {};
initialized: false,
init: function() { taskbar.init = function() {
var self = this; var self = this;
templates.parse('modules/taskbar', {}, function(html) { templates.parse('modules/taskbar', {}, function(html) {
@ -12,7 +12,6 @@ define('taskbar', function() {
self.tasklist = self.taskbar.find('ul'); self.tasklist = self.taskbar.find('ul');
$(document.body).append(self.taskbar); $(document.body).append(self.taskbar);
// Posts bar events
self.taskbar.on('click', 'li', function() { self.taskbar.on('click', 'li', function() {
var $btn = $(this), var $btn = $(this),
module = $btn.attr('data-module'), module = $btn.attr('data-module'),
@ -20,46 +19,36 @@ define('taskbar', function() {
require([module], function(module) { require([module], function(module) {
if (!$btn.hasClass('active')) { if (!$btn.hasClass('active')) {
taskbar.minimizeAll(); minimizeAll();
module.load(uuid); module.load(uuid);
taskbar.toggleNew(uuid, false); taskbar.toggleNew(uuid, false);
app.alternatingTitle(''); app.alternatingTitle('');
// Highlight the button
taskbar.tasklist.removeClass('active'); taskbar.tasklist.removeClass('active');
$btn.addClass('active'); $btn.addClass('active');
} else { } else {
module.minimize(uuid); module.minimize(uuid);
} }
}); });
return false; return false;
}); });
taskbar.initialized = true;
}); });
}, };
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) { taskbar.discard = function(module, uuid) {
var btnEl = taskbar.tasklist.find('[data-module="' + module + '"][data-uuid="' + uuid + '"]'); var btnEl = taskbar.tasklist.find('[data-module="' + module + '"][data-uuid="' + uuid + '"]');
btnEl.remove(); btnEl.remove();
taskbar.update(); taskbar.update();
}, };
push: function(module, uuid, options) { taskbar.push = function(module, uuid, options) {
var element = taskbar.tasklist.find('li[data-uuid="'+uuid+'"]'); var element = taskbar.tasklist.find('li[data-uuid="' + uuid + '"]');
if(element.length) {
if (element.length) {
return; return;
} }
var title = $('<div></div>').text(options.title || 'NodeBB Task').html(); var title = $('<div></div>').text(options.title || 'NodeBB Task').html();
var btnEl = $('<li />') var btnEl = $('<li />')
@ -75,46 +64,45 @@ define('taskbar', function() {
.addClass(options.state !== undefined ? options.state : 'active'); .addClass(options.state !== undefined ? options.state : 'active');
if (!options.state || options.state === 'active') { if (!options.state || options.state === 'active') {
taskbar.minimizeAll(); minimizeAll();
} }
taskbar.tasklist.append(btnEl); taskbar.tasklist.append(btnEl);
taskbar.update(); taskbar.update();
}, };
minimize: function(module, uuid) { taskbar.minimize = function(module, uuid) {
var btnEl = taskbar.tasklist.find('[data-module="' + module + '"][data-uuid="' + uuid + '"]'); var btnEl = taskbar.tasklist.find('[data-module="' + module + '"][data-uuid="' + uuid + '"]');
btnEl.removeClass('active'); btnEl.removeClass('active');
}, };
minimizeAll: function() {
taskbar.tasklist.find('.active').removeClass('active');
},
toggleNew: function(uuid, state) { taskbar.toggleNew = function(uuid, state) {
var btnEl = taskbar.tasklist.find('[data-uuid="' + uuid + '"]'); var btnEl = taskbar.tasklist.find('[data-uuid="' + uuid + '"]');
btnEl.toggleClass('new', state); btnEl.toggleClass('new', state);
}, };
updateActive: function(uuid) { taskbar.updateActive = function(uuid) {
var tasks = taskbar.tasklist.find('li'); var tasks = taskbar.tasklist.find('li');
tasks.removeClass('active'); tasks.removeClass('active');
tasks.filter('[data-uuid="' + uuid + '"]').addClass('active'); tasks.filter('[data-uuid="' + uuid + '"]').addClass('active');
}, };
isActive: function(uuid) { taskbar.isActive = function(uuid) {
var taskBtn = taskbar.tasklist.find('li[data-uuid="' + uuid + '"]'); var taskBtn = taskbar.tasklist.find('li[data-uuid="' + uuid + '"]');
return taskBtn.hasClass('active'); return taskBtn.hasClass('active');
}
}; };
return { function update() {
push: taskbar.push, var tasks = taskbar.tasklist.find('li');
discard: taskbar.discard,
minimize: taskbar.minimize, if (tasks.length > 0) {
toggleNew: taskbar.toggleNew, taskbar.taskbar.attr('data-active', '1');
updateActive: taskbar.updateActive, } else {
isActive: taskbar.isActive, taskbar.taskbar.removeAttr('data-active');
init: taskbar.init }
}; }
function minimizeAll() {
taskbar.tasklist.find('.active').removeClass('active');
}
}); });

Loading…
Cancel
Save