refactor: deprecate app.openChat/newChat

use chat.openChat/newChat instead
isekai-main
Barış Soner Uşaklı 3 years ago
parent 1a9b15989b
commit f352be63dc

@ -295,74 +295,16 @@ app.cacheBuster = null;
};
app.openChat = function (roomId, uid) {
if (!app.user.uid) {
return app.alertError('[[error:not-logged-in]]');
}
console.warn('[deprecated] app.openChat is deprecated, please use chat.openChat');
require(['chat'], function (chat) {
function loadAndCenter(chatModal) {
chat.load(chatModal.attr('data-uuid'));
chat.center(chatModal);
chat.focusInput(chatModal);
}
if (chat.modalExists(roomId)) {
loadAndCenter(chat.getModal(roomId));
} else {
socket.emit('modules.chats.loadRoom', { roomId: roomId, uid: uid || app.user.uid }, function (err, roomData) {
if (err) {
return app.alertError(err.message);
}
roomData.users = roomData.users.filter(function (user) {
return user && parseInt(user.uid, 10) !== parseInt(app.user.uid, 10);
});
roomData.uid = uid || app.user.uid;
roomData.isSelf = true;
chat.createModal(roomData, loadAndCenter);
});
}
chat.openChat(roomId, uid);
});
};
app.newChat = function (touid, callback) {
function createChat() {
socket.emit('modules.chats.newRoom', { touid: touid }, function (err, roomId) {
if (err) {
return app.alertError(err.message);
}
if (!ajaxify.data.template.chats) {
app.openChat(roomId);
} else {
ajaxify.go('chats/' + roomId);
}
callback(false, roomId);
});
}
callback = callback || function () { };
if (!app.user.uid) {
return app.alertError('[[error:not-logged-in]]');
}
if (parseInt(touid, 10) === parseInt(app.user.uid, 10)) {
return app.alertError('[[error:cant-chat-with-yourself]]');
}
socket.emit('modules.chats.isDnD', touid, function (err, isDnD) {
if (err) {
return app.alertError(err.message);
}
if (!isDnD) {
return createChat();
}
require(['bootbox'], function (bootbox) {
bootbox.confirm('[[modules:chat.confirm-chat-with-dnd-user]]', function (ok) {
if (ok) {
createChat();
}
});
});
console.warn('[deprecated] app.newChat is deprecated, please use chat.newChat');
require(['chat'], function (chat) {
chat.newChat(touid, callback);
});
};

@ -32,21 +32,19 @@ define('forum/account/header', [
toggleFollow('unfollow');
});
components.get('account/chat').on('click', function () {
socket.emit('modules.chats.hasPrivateChat', ajaxify.data.uid, function (err, roomId) {
if (err) {
return app.alertError(err.message);
}
if (roomId) {
app.openChat(roomId);
} else {
app.newChat(ajaxify.data.uid);
}
});
components.get('account/chat').on('click', async function () {
const roomId = await socket.emit('modules.chats.hasPrivateChat', ajaxify.data.uid);
const chat = await app.require('chat');
if (roomId) {
chat.openChat(roomId);
} else {
chat.newChat(ajaxify.data.uid);
}
});
components.get('account/new-chat').on('click', function () {
app.newChat(ajaxify.data.uid, function () {
components.get('account/new-chat').on('click', async function () {
const chat = await app.require('chat');
chat.newChat(ajaxify.data.uid, function () {
components.get('account/chat').parent().removeClass('hidden');
});
});

@ -8,14 +8,14 @@ define('forum/chats', [
'forum/chats/recent',
'forum/chats/search',
'forum/chats/messages',
'benchpress',
'composer/autocomplete',
'hooks',
'bootbox',
'chat',
], function (
components, translator, mousetrap,
recentChats, search, messages, Benchpress,
autocomplete, hooks, bootbox
recentChats, search, messages,
autocomplete, hooks, bootbox, chatModule
) {
const Chats = {
initialised: false,
@ -93,11 +93,11 @@ define('forum/chats', [
if (app.previousUrl && app.previousUrl.match(/chats/)) {
ajaxify.go('user/' + ajaxify.data.userslug + '/chats', function () {
app.openChat(roomId, ajaxify.data.uid);
chatModule.openChat(roomId, ajaxify.data.uid);
}, true);
} else {
window.history.go(-1);
app.openChat(roomId, ajaxify.data.uid);
chatModule.openChat(roomId, ajaxify.data.uid);
}
$(window).one('action:chat.loaded', function () {
@ -294,9 +294,7 @@ define('forum/chats', [
// Return user to chats page. If modal, close modal.
const modal = buttonEl.parents('.chat-modal');
if (modal.length) {
require(['chat'], function (chatLib) {
chatLib.close(modal);
});
chatModule.close(modal);
} else {
ajaxify.go('chats');
}
@ -408,12 +406,11 @@ define('forum/chats', [
} else {
el.remove();
}
require(['chat'], function (chat) {
const modal = chat.getModal(roomId);
if (modal.length) {
chat.close(modal);
}
});
const modal = chatModule.getModal(roomId);
if (modal.length) {
chatModule.close(modal);
}
});
};

@ -69,7 +69,9 @@ define('forum/chats/search', ['components', 'api'], function (components, api) {
chats.switchChat(roomId);
});
} else {
app.newChat(userObj.uid);
require(['chat'], function (chat) {
chat.newChat(userObj.uid);
});
}
});
});

@ -1,6 +1,8 @@
'use strict';
define('forum/flags/detail', ['forum/flags/list', 'components', 'translator', 'benchpress', 'forum/account/header', 'accounts/delete', 'api', 'bootbox'], function (FlagsList, components, translator, Benchpress, AccountHeader, AccountsDelete, api, bootbox) {
define('forum/flags/detail', [
'components', 'translator', 'benchpress', 'forum/account/header', 'accounts/delete', 'api', 'bootbox',
], function (components, translator, Benchpress, AccountHeader, AccountsDelete, api, bootbox) {
const Detail = {};
Detail.init = function () {
@ -59,7 +61,9 @@ define('forum/flags/detail', ['forum/flags/list', 'components', 'translator', 'b
break;
}
case 'chat':
app.newChat(uid);
require(['chat'], function (chat) {
chat.newChat(uid);
});
break;
case 'ban':

@ -420,8 +420,9 @@ define('forum/topic/postTools', [
function openChat(button) {
const post = button.parents('[data-pid]');
app.newChat(post.attr('data-uid'));
require(['chat'], function (chat) {
chat.newChat(post.attr('data-uid'));
});
button.parents('.btn-group').find('.dropdown-toggle').click();
return false;
}

@ -1,14 +1,80 @@
'use strict';
define('chat', [
'components',
'taskbar',
'translator',
'hooks',
], function (components, taskbar, translator, hooks) {
'components', 'taskbar', 'translator', 'hooks', 'bootbox',
], function (components, taskbar, translator, hooks, bootbox) {
const module = {};
let newMessage = false;
module.openChat = function (roomId, uid) {
if (!app.user.uid) {
return app.alertError('[[error:not-logged-in]]');
}
function loadAndCenter(chatModal) {
module.load(chatModal.attr('data-uuid'));
module.center(chatModal);
module.focusInput(chatModal);
}
if (module.modalExists(roomId)) {
loadAndCenter(module.getModal(roomId));
} else {
socket.emit('modules.chats.loadRoom', { roomId: roomId, uid: uid || app.user.uid }, function (err, roomData) {
if (err) {
return app.alertError(err.message);
}
roomData.users = roomData.users.filter(function (user) {
return user && parseInt(user.uid, 10) !== parseInt(app.user.uid, 10);
});
roomData.uid = uid || app.user.uid;
roomData.isSelf = true;
module.createModal(roomData, loadAndCenter);
});
}
};
module.newChat = function (touid, callback) {
function createChat() {
socket.emit('modules.chats.newRoom', { touid: touid }, function (err, roomId) {
if (err) {
return app.alertError(err.message);
}
if (!ajaxify.data.template.chats) {
module.openChat(roomId);
} else {
ajaxify.go('chats/' + roomId);
}
callback(null, roomId);
});
}
callback = callback || function () { };
if (!app.user.uid) {
return app.alertError('[[error:not-logged-in]]');
}
if (parseInt(touid, 10) === parseInt(app.user.uid, 10)) {
return app.alertError('[[error:cant-chat-with-yourself]]');
}
socket.emit('modules.chats.isDnD', touid, function (err, isDnD) {
if (err) {
return app.alertError(err.message);
}
if (!isDnD) {
return createChat();
}
bootbox.confirm('[[modules:chat.confirm-chat-with-dnd-user]]', function (ok) {
if (ok) {
createChat();
}
});
});
};
module.loadChatsDropdown = function (chatsListEl) {
socket.emit('modules.chats.getRecentChats', {
uid: app.user.uid,
@ -37,7 +103,7 @@ define('chat', [
}
const roomId = $(this).attr('data-roomid');
if (!ajaxify.currentPage.match(/^chats\//)) {
app.openChat(roomId);
module.openChat(roomId);
} else {
ajaxify.go('user/' + app.user.userslug + '/chats/' + roomId);
}
@ -206,7 +272,7 @@ define('chat', [
module.minimize(uuid);
});
chatModal.on('click', ':not(.close)', function () {
chatModal.on('mouseup', function () {
taskbar.updateActive(chatModal.attr('data-uuid'));
if (dragged) {

Loading…
Cancel
Save