closes #211, closes #213

v1.18.x
Baris Usakli 12 years ago
parent c4228be86c
commit 8a4a0154f6

@ -132,6 +132,7 @@
});
}
});
notifList.addEventListener('click', function(e) {
var target;
switch(e.target.nodeName) {
@ -144,6 +145,7 @@
if (nid > 0) socket.emit('api:notifications.mark_read', nid);
}
});
socket.on('event:new_notification', function() {
document.querySelector('.notifications a i').className = 'icon-circle active';
app.alert({
@ -161,13 +163,16 @@
var username = data.username;
var fromuid = data.fromuid;
var message = data.message;
var timestamp = data.timestamp;
require(['chat'], function(chat) {
var chatModal = chat.createModalIfDoesntExist(username, fromuid);
var chatModal = chat.createModalIfDoesntExist(username, fromuid, function(created, modal) {
if(!created)
chat.appendChatMessage(modal, message, timestamp);
});
chatModal.show();
chat.bringModalToTop(chatModal);
chat.appendChatMessage(chatModal, message);
});
});

@ -13,7 +13,7 @@ define(['taskbar'], function(taskbar) {
chatModal.css('zIndex', topZ + 1);
}
module.createModalIfDoesntExist = function(username, touid) {
module.createModalIfDoesntExist = function(username, touid, callback) {
var chatModal = $('#chat-modal-'+touid);
if(!chatModal.length) {
@ -29,7 +29,7 @@ define(['taskbar'], function(taskbar) {
});
chatModal.find('#chat-with-name').html(username);
chatModal.find('.close').on('click',function(e){
chatModal.find('.close').on('click', function(e) {
chatModal.hide();
taskbar.discard('chat', uuid);
});
@ -40,9 +40,15 @@ define(['taskbar'], function(taskbar) {
addSendHandler(chatModal, touid);
getChatMessages(chatModal, touid);
getChatMessages(chatModal, touid, callback);
taskbar.push('chat', chatModal.attr('UUID'), {title:'chat with '+username});
return chatModal;
}
if(callback)
callback(false, chatModal);
taskbar.push('chat', chatModal.attr('UUID'), {title:'chat with '+username});
return chatModal;
}
@ -59,11 +65,14 @@ define(['taskbar'], function(taskbar) {
taskbar.minimize('chat', uuid);
}
function getChatMessages(chatModal, touid) {
function getChatMessages(chatModal, touid, callback) {
socket.emit('getChatMessages', {touid:touid}, function(messages) {
for(var i = 0; i<messages.length; ++i) {
module.appendChatMessage(chatModal, messages[i].content);
module.appendChatMessage(chatModal, messages[i].content, messages[i].timestamp);
}
if(callback)
callback(true, chatModal);
});
}
@ -88,14 +97,15 @@ define(['taskbar'], function(taskbar) {
msg = msg +'\n';
socket.emit('sendChatMessage', { touid:touid, message:msg});
chatModal.find('#chat-message-input').val('');
module.appendChatMessage(chatModal, 'You : ' + msg);
}
}
module.appendChatMessage = function(chatModal, message){
module.appendChatMessage = function(chatModal, message, timestamp) {
var chatContent = chatModal.find('#chat-content');
chatContent.append(message);
var date = new Date(parseInt(timestamp, 10));
chatContent.append('[' + date.toLocaleTimeString() + '] ' + message);
chatContent.scrollTop(
chatContent[0].scrollHeight - chatContent.height()
);

@ -523,28 +523,38 @@ var SocketIO = require('socket.io').listen(global.server, { log:false }),
return;
}
if(userSockets[touid]) {
var msg = utils.strip_tags(data.message),
numSockets = userSockets[touid].length;
var msg = utils.strip_tags(data.message);
user.getUserField(uid, 'username', function(err, username) {
var finalMessage = username + ' says : ' + msg;
for(var x=0;x<numSockets;x++) {
userSockets[touid][x].emit('chatMessage', {fromuid:uid, username:username, message:finalMessage});
}
user.getUserField(uid, 'username', function(err, username) {
var finalMessage = username + ' : ' + msg;
notifications.create(finalMessage, 5, '#', 'notification_' + uid + '_' + touid, function(nid) {
notifications.push(nid, [touid], function(success) {
notifications.create(finalMessage, 5, '#', 'notification_' + uid + '_' + touid, function(nid) {
notifications.push(nid, [touid], function(success) {
});
});
});
require('./messaging').addMessage(uid, touid, msg, function(err, message) {
require('./messaging').addMessage(uid, touid, msg, function(err, message) {
var numSockets = 0;
});
if(userSockets[touid]) {
numSockets = userSockets[touid].length;
for(var x=0; x<numSockets; ++x) {
userSockets[touid][x].emit('chatMessage', {fromuid:uid, username:username, message: finalMessage, timestamp: Date.now()});
}
}
if(userSockets[uid]) {
numSockets = userSockets[uid].length;
for(var x=0; x<numSockets; ++x) {
userSockets[uid][x].emit('chatMessage', {fromuid:touid, username:username, message:'You : ' + msg, timestamp: Date.now()});
}
}
});
}
});
});
socket.on('api:config.get', function(data) {

Loading…
Cancel
Save