v1.18.x
barisusakli 8 years ago
parent a325a85a84
commit abd99760e5

@ -74,6 +74,7 @@ chatsController.get = function(req, res, callback) {
return user && parseInt(user.uid, 10) && parseInt(user.uid, 10) !== req.uid;
});
room.groupChat = room.hasOwnProperty('groupChat') ? room.groupChat : room.users.length > 2;
room.rooms = recentChats.rooms;
room.uid = uid;
room.userslug = req.params.userslug;

@ -265,7 +265,7 @@ var async = require('async'),
},
users: function(next) {
async.map(roomIds, function(roomId, next) {
db.getSortedSetRevRange('chat:room:' + roomId + ':uids', 0, 3, function(err, uids) {
db.getSortedSetRevRange('chat:room:' + roomId + ':uids', 0, 9, function(err, uids) {
if (err) {
return next(err);
}

@ -13,10 +13,7 @@ module.exports = function(Messaging) {
if (err || !data) {
return callback(err || new Error('[[error:no-chat-room]]'));
}
data.roomName = data.roomName || '[[modules:chat.roomname, ' + roomId + ']]';
if (data.roomName) {
data.roomName = validator.escape(String(data.roomName));
}
modifyRoomData([data]);
callback(null, data);
});
};
@ -29,16 +26,23 @@ module.exports = function(Messaging) {
if (err) {
return callback(err);
}
roomData.forEach(function(data) {
if (data) {
data.roomName = data.roomName || '[[modules:chat.roomname, ' + data.roomId + ']]';
data.roomName = validator.escape(String(data.roomName));
}
});
modifyRoomData(roomData);
callback(null, roomData);
});
};
function modifyRoomData(rooms) {
rooms.forEach(function(data) {
if (data) {
data.roomName = data.roomName || '[[modules:chat.roomname, ' + data.roomId + ']]';
data.roomName = validator.escape(String(data.roomName));
if (data.hasOwnProperty('groupChat')) {
data.groupChat = parseInt(data.groupChat, 10) === 1;
}
}
});
}
Messaging.newRoom = function(uid, toUids, callback) {
var roomId;
var now = Date.now();
@ -105,6 +109,18 @@ module.exports = function(Messaging) {
return now;
});
db.sortedSetAdd('chat:room:' + roomId + ':uids', timestamps, uids, next);
},
function(next) {
async.parallel({
userCount: async.apply(db.sortedSetCard, 'chat:room:' + roomId + ':uids'),
roomData: async.apply(db.getObject, 'chat:room:' + roomId)
}, next);
},
function(results, next) {
if (!results.roomData.hasOwnProperty('groupChat') && results.userCount > 2) {
return db.setObjectField('chat:room:' + roomId, 'groupChat', 1, next);
}
next();
}
], callback);
};

@ -133,6 +133,7 @@ SocketModules.chats.loadRoom = function(socket, data, callback) {
},
function (results, next) {
results.roomData.users = results.users;
results.roomData.groupChat = results.roomData.hasOwnProperty('groupChat') ? results.roomData.groupChat : results.users.length > 2;
results.roomData.isOwner = parseInt(results.roomData.owner, 10) === socket.uid;
results.roomData.maximumUsersInChatRoom = parseInt(meta.config.maximumUsersInChatRoom, 10) || 0;
results.roomData.showUserInput = !results.roomData.maximumUsersInChatRoom || results.roomData.maximumUsersInChatRoom > 2;

Loading…
Cancel
Save