From 09681e6ccf2d472abb20ba8dc3aafbd1bd11771e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Thu, 25 Apr 2019 21:43:21 -0400 Subject: [PATCH] fix: #7562 --- public/src/app.js | 1 + public/src/modules/chat.js | 19 +++++++++++-------- public/src/modules/taskbar.js | 10 +++++++--- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/public/src/app.js b/public/src/app.js index 1a8e1a65e5..9ca5678f4f 100644 --- a/public/src/app.js +++ b/public/src/app.js @@ -425,6 +425,7 @@ app.cacheBuster = null; return user && parseInt(user.uid, 10) !== parseInt(app.user.uid, 10); }); roomData.uid = uid || app.user.uid; + roomData.isSelf = true; chat.createModal(roomData, loadAndCenter); }); } diff --git a/public/src/modules/chat.js b/public/src/modules/chat.js index d952d6abbc..47bda91e50 100644 --- a/public/src/modules/chat.js +++ b/public/src/modules/chat.js @@ -73,6 +73,7 @@ define('chat', [ title: '[[modules:chat.chatting_with]] ' + (data.roomName || username), touid: data.message.fromUser.uid, roomId: data.roomId, + isSelf: false, }); } }); @@ -89,8 +90,8 @@ define('chat', [ }); roomData.silent = true; roomData.uid = app.user.uid; - module.createModal(roomData, function (modal) { - module.toggleNew(modal.attr('data-uuid'), !isSelf, true); + roomData.isSelf = isSelf; + module.createModal(roomData, function () { if (!isSelf) { updateTitleAndPlaySound(data.message.mid, username); } @@ -231,13 +232,15 @@ define('chat', [ roomId: data.roomId, icon: 'fa-comment', state: '', + isSelf: data.isSelf, + }, function () { + taskbar.toggleNew(chatModal.attr('data-uuid'), !data.isSelf); + $(window).trigger('action:chat.loaded', chatModal); + + if (typeof callback === 'function') { + callback(chatModal); + } }); - - $(window).trigger('action:chat.loaded', chatModal); - - if (typeof callback === 'function') { - callback(chatModal); - } }); }); }; diff --git a/public/src/modules/taskbar.js b/public/src/modules/taskbar.js index d285756391..954c491580 100644 --- a/public/src/modules/taskbar.js +++ b/public/src/modules/taskbar.js @@ -79,7 +79,8 @@ define('taskbar', ['benchpress', 'translator'], function (Benchpress, translator update(); }; - taskbar.push = function (module, uuid, options) { + taskbar.push = function (module, uuid, options, callback) { + callback = callback || function () {}; var element = taskbar.tasklist.find('li[data-uuid="' + uuid + '"]'); var data = { @@ -92,7 +93,9 @@ define('taskbar', ['benchpress', 'translator'], function (Benchpress, translator $(window).trigger('filter:taskbar.push', data); if (!element.length && data.module) { - createTaskbar(data); + createTaskbarItem(data, callback); + } else { + callback(element); } }; @@ -146,7 +149,7 @@ define('taskbar', ['benchpress', 'translator'], function (Benchpress, translator taskbar.tasklist.find('.active').removeClass('active'); } - function createTaskbar(data) { + function createTaskbarItem(data, callback) { translator.translate(data.options.title, function (taskTitle) { var title = $('
').text(taskTitle || 'NodeBB Task').html(); @@ -175,6 +178,7 @@ define('taskbar', ['benchpress', 'translator'], function (Benchpress, translator taskbarEl.data(data); $(window).trigger('action:taskbar.pushed', data); + callback(taskbarEl); }); }