typing notifcation socket implementation for chat page, #1788

v1.18.x
Julian Lam 11 years ago
parent 84e046185b
commit 1db96dc627

@ -1,6 +1,6 @@
{
"chat.chatting_with": "Chat with <span id=\"chat-with-name\"></span>",
"chat.placeholder": "type chat message here, press enter to send",
"chat.placeholder": "Type chat message here, press enter to send",
"chat.send": "Send",
"chat.no_active": "You have no active chats.",
"chat.user_typing": "%1 is typing ...",

@ -6,9 +6,75 @@ define('forum/chats', function() {
var Chats = {};
Chats.init = function() {
Chats.addEventListeners();
Chats.addSocketListeners();
};
Chats.getRecipientUid = function() {
return parseInt($('.expanded-chat').attr('data-uid'), 10);
};
Chats.isCurrentChat = function(uid) {
uid = parseInt(uid, 10);
if (Chats.getRecipientUid() === uid) {
return true;
} else {
return false;
}
};
Chats.addEventListeners = function() {
var inputEl = $('.chat-input');
$('.chats-list').on('click', 'li', function(e) {
app.openChat($(this).attr('data-username'), $(this).attr('data-uid'));
// app.openChat($(this).attr('data-username'), $(this).attr('data-uid'));
ajaxify.go('chats/' + utils.slugify($(this).attr('data-username')));
});
// inputEl.off('keypress').on('keypress', function(e) {
// if(e.which === 13) {
// Chat.sendMessage(chatModal);
// }
// });
inputEl.off('keyup').on('keyup', function() {
if ($(this).val()) {
Chats.notifyTyping(true);
} else {
Chats.notifyTyping(false);
}
});
// chatModal.find('#chat-message-send-btn').off('click').on('click', function(e){
// sendMessage(chatModal);
// return false;
// });
};
Chats.addSocketListeners = function() {
var typingNotifEl = $('.user-typing');
socket.on('event:chats.receive', function(data) {
});
socket.on('event:chats.userStartTyping', function(withUid) {
if (Chats.isCurrentChat(withUid)) {
typingNotifEl.removeClass('hide');
}
});
socket.on('event:chats.userStopTyping', function(withUid) {
if (Chats.isCurrentChat(withUid)) {
typingNotifEl.addClass('hide');
}
});
};
Chats.notifyTyping = function(typing) {
socket.emit('modules.chats.user' + (typing ? 'Start' : 'Stop') + 'Typing', {
touid: Chats.getRecipientUid(),
fromUid: app.uid
});
};

@ -486,8 +486,6 @@ accountsController.getChats = function(req, res, next) {
return next(err);
}
console.log(res.locals);
res.render('chats', {
meta: res.locals.chatData,
chats: chats,

Loading…
Cancel
Save