mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-29 10:06:13 +01:00
closes #1445
This commit is contained in:
@@ -4,5 +4,6 @@
|
|||||||
"chat.send": "Send",
|
"chat.send": "Send",
|
||||||
"chat.no_active": "You have no active chats.",
|
"chat.no_active": "You have no active chats.",
|
||||||
"chat.user_typing": "%1 is typing ...",
|
"chat.user_typing": "%1 is typing ...",
|
||||||
"chat.user_has_messaged_you": "%1 has messaged you."
|
"chat.user_has_messaged_you": "%1 has messaged you.",
|
||||||
|
"chat.see_all": "See all Chats"
|
||||||
}
|
}
|
||||||
16
public/src/forum/chats.js
Normal file
16
public/src/forum/chats.js
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
/* globals define, app*/
|
||||||
|
|
||||||
|
define(function() {
|
||||||
|
var Chats = {};
|
||||||
|
|
||||||
|
Chats.init = function() {
|
||||||
|
|
||||||
|
$('.chats-list').on('click', 'li', function(e) {
|
||||||
|
app.openChat($(this).attr('data-username'), $(this).attr('data-uid'));
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
return Chats;
|
||||||
|
});
|
||||||
@@ -47,6 +47,11 @@ define(['taskbar', 'string', 'sounds'], function(taskbar, S, sounds) {
|
|||||||
userObj.username + '</a>')
|
userObj.username + '</a>')
|
||||||
.appendTo(chatsListEl);
|
.appendTo(chatsListEl);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var seeAll = '<li class="pagelink"><a href="' + config.relative_path + '/chats">[[modules:chat.see_all]]</a></li>';
|
||||||
|
translator.translate(seeAll, function(translated) {
|
||||||
|
$(translated).appendTo(chatsListEl);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ var fs = require('fs'),
|
|||||||
user = require('./../user'),
|
user = require('./../user'),
|
||||||
posts = require('./../posts'),
|
posts = require('./../posts'),
|
||||||
topics = require('./../topics'),
|
topics = require('./../topics'),
|
||||||
|
messaging = require('../messaging'),
|
||||||
postTools = require('../postTools'),
|
postTools = require('../postTools'),
|
||||||
utils = require('./../../public/src/utils'),
|
utils = require('./../../public/src/utils'),
|
||||||
meta = require('./../meta'),
|
meta = require('./../meta'),
|
||||||
@@ -448,7 +449,7 @@ accountsController.uploadPicture = function (req, res, next) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if(err) {
|
if (err) {
|
||||||
fs.unlink(req.files.userPhoto.path);
|
fs.unlink(req.files.userPhoto.path);
|
||||||
return res.json({error:err.message});
|
return res.json({error:err.message});
|
||||||
}
|
}
|
||||||
@@ -487,4 +488,16 @@ accountsController.getNotifications = function(req, res, next) {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
accountsController.getChats = function(req, res, next) {
|
||||||
|
messaging.getRecentChats(req.user.uid, 0, -1, function(err, chats) {
|
||||||
|
if (err) {
|
||||||
|
return next(err);
|
||||||
|
}
|
||||||
|
|
||||||
|
res.render('chats', {
|
||||||
|
chats: chats
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
module.exports = accountsController;
|
module.exports = accountsController;
|
||||||
|
|||||||
@@ -121,8 +121,8 @@ var db = require('./database'),
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
Messaging.getRecentChats = function(uid, callback) {
|
Messaging.getRecentChats = function(uid, start, end, callback) {
|
||||||
db.getSortedSetRevRange('uid:' + uid + ':chats', 0, 9, function(err, uids) {
|
db.getSortedSetRevRange('uid:' + uid + ':chats', start, end, function(err, uids) {
|
||||||
if(err) {
|
if(err) {
|
||||||
return callback(err);
|
return callback(err);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -101,6 +101,9 @@ function accountRoutes(app, middleware, controllers) {
|
|||||||
|
|
||||||
app.get('/notifications', middleware.buildHeader, middleware.authenticate, controllers.accounts.getNotifications);
|
app.get('/notifications', middleware.buildHeader, middleware.authenticate, controllers.accounts.getNotifications);
|
||||||
app.get('/api/notifications', middleware.authenticate, controllers.accounts.getNotifications);
|
app.get('/api/notifications', middleware.authenticate, controllers.accounts.getNotifications);
|
||||||
|
|
||||||
|
app.get('/chats', middleware.buildHeader, middleware.authenticate, controllers.accounts.getChats);
|
||||||
|
app.get('/api/chats', middleware.authenticate, controllers.accounts.getChats);
|
||||||
}
|
}
|
||||||
|
|
||||||
function userRoutes(app, middleware, controllers) {
|
function userRoutes(app, middleware, controllers) {
|
||||||
|
|||||||
@@ -238,7 +238,7 @@ function sendTypingNotification(event, socket, data, callback) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
SocketModules.chats.list = function(socket, data, callback) {
|
SocketModules.chats.list = function(socket, data, callback) {
|
||||||
Messaging.getRecentChats(socket.uid, callback);
|
Messaging.getRecentChats(socket.uid, 0, 9, callback);
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Notifications */
|
/* Notifications */
|
||||||
|
|||||||
Reference in New Issue
Block a user