mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-05-09 00:36:34 +02:00
Merge branch 'persona-2.1' into v0.8.x
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
"name": "nodebb",
|
||||
"license": "GPL-3.0",
|
||||
"description": "NodeBB Forum",
|
||||
"version": "0.7.3",
|
||||
"version": "0.7.4",
|
||||
"homepage": "http://www.nodebb.org",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@@ -49,8 +49,8 @@
|
||||
"nodebb-plugin-spam-be-gone": "0.4.1",
|
||||
"nodebb-rewards-essentials": "0.0.3",
|
||||
"nodebb-theme-lavender": "1.0.52",
|
||||
"nodebb-theme-persona": "2.0.28",
|
||||
"nodebb-theme-vanilla": "3.0.17",
|
||||
"nodebb-theme-persona": "2.1.4",
|
||||
"nodebb-theme-vanilla": "3.1.2",
|
||||
"nodebb-widget-essentials": "1.0.5",
|
||||
"npm": "^2.1.4",
|
||||
"passport": "^0.3.0",
|
||||
|
||||
@@ -487,13 +487,13 @@ app.cacheBuster = null;
|
||||
};
|
||||
|
||||
function handleStatusChange() {
|
||||
$('#user-control-list .user-status').off('click').on('click', function(e) {
|
||||
$('[component="header/usercontrol"] [data-status]').off('click').on('click', function(e) {
|
||||
var status = $(this).attr('data-status');
|
||||
socket.emit('user.setStatus', status, function(err, data) {
|
||||
if(err) {
|
||||
return app.alertError(err.message);
|
||||
}
|
||||
$('#logged-in-menu #user_label #user-profile-link>i').attr('class', 'fa fa-circle status ' + status);
|
||||
$('[component="user/status"]').attr('class', 'fa fa-circle status ' + status);
|
||||
app.user.status = status;
|
||||
});
|
||||
e.preventDefault();
|
||||
@@ -553,7 +553,9 @@ app.cacheBuster = null;
|
||||
|
||||
handleNewTopic();
|
||||
|
||||
$('#logout-link').on('click', app.logout);
|
||||
require(['components'], function(components) {
|
||||
components.get('user/logout').on('click', app.logout);
|
||||
});
|
||||
|
||||
Visibility.change(function(e, state){
|
||||
if (state === 'visible') {
|
||||
|
||||
@@ -87,18 +87,20 @@ define('forum/account/edit', ['forum/account/header', 'uploader', 'translator'],
|
||||
}
|
||||
|
||||
function updateHeader(picture, username, userslug) {
|
||||
if (parseInt(ajaxify.data.theirid, 10) !== parseInt(ajaxify.data.yourid, 10)) {
|
||||
return;
|
||||
}
|
||||
require(['components'], function(components) {
|
||||
if (parseInt(ajaxify.data.theirid, 10) !== parseInt(ajaxify.data.yourid, 10)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (picture) {
|
||||
$('#user-header-picture').attr('src', picture);
|
||||
}
|
||||
if (picture) {
|
||||
components.get('header/userpicture').attr('src', picture);
|
||||
}
|
||||
|
||||
if (username && userslug) {
|
||||
$('#user-profile-link').attr('href', config.relative_path + '/user/' + userslug);
|
||||
$('#user-header-name').text(username);
|
||||
}
|
||||
if (username && userslug) {
|
||||
components.get('header/profilelink').attr('href', config.relative_path + '/user/' + userslug);
|
||||
components.get('header/username').text(username);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function handleImageChange() {
|
||||
|
||||
@@ -7,9 +7,8 @@ define('chat', ['components', 'taskbar', 'string', 'sounds', 'forum/chats', 'tra
|
||||
var newMessage = false;
|
||||
|
||||
module.prepareDOM = function() {
|
||||
var chatsToggleEl = $('#chat_dropdown'),
|
||||
chatsListEl = $('#chat-list'),
|
||||
dropdownEl;
|
||||
var chatsToggleEl = components.get('chat/dropdown'),
|
||||
chatsListEl = components.get('chat/list');
|
||||
|
||||
// Sync open chats between all user socket sessions
|
||||
module.sync();
|
||||
@@ -19,46 +18,7 @@ define('chat', ['components', 'taskbar', 'string', 'sounds', 'forum/chats', 'tra
|
||||
return;
|
||||
}
|
||||
|
||||
socket.emit('modules.chats.getRecentChats', {after: 0}, function(err, chats) {
|
||||
if (err) {
|
||||
return app.alertError(err.message);
|
||||
}
|
||||
chats = chats.users;
|
||||
var userObj;
|
||||
|
||||
chatsListEl.empty();
|
||||
|
||||
if (!chats.length) {
|
||||
translator.translate('[[modules:chat.no_active]]', function(str) {
|
||||
$('<li />')
|
||||
.addClass('no_active')
|
||||
.html('<a href="#">' + str + '</a>')
|
||||
.appendTo(chatsListEl);
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
for(var x = 0; x<chats.length; ++x) {
|
||||
userObj = chats[x];
|
||||
dropdownEl = $('<li class="' + (userObj.unread ? 'unread' : '') + '"/>')
|
||||
.attr('data-uid', userObj.uid)
|
||||
.html('<a data-ajaxify="false">'+
|
||||
'<img src="' + userObj.picture + '" title="' + userObj.username +'" />' +
|
||||
'<i class="fa fa-circle status ' + userObj.status + '"></i> ' +
|
||||
userObj.username + '</a>')
|
||||
.appendTo(chatsListEl);
|
||||
|
||||
(function(userObj) {
|
||||
dropdownEl.click(function() {
|
||||
if (!ajaxify.currentPage.match(/^chats\//)) {
|
||||
app.openChat(userObj.username, userObj.uid);
|
||||
} else {
|
||||
ajaxify.go('chats/' + utils.slugify(userObj.username));
|
||||
}
|
||||
});
|
||||
})(userObj);
|
||||
}
|
||||
});
|
||||
module.loadChats(chatsListEl);
|
||||
});
|
||||
|
||||
socket.on('event:chats.receive', function(data) {
|
||||
@@ -139,7 +99,7 @@ define('chat', ['components', 'taskbar', 'string', 'sounds', 'forum/chats', 'tra
|
||||
username: chatObj.options.title,
|
||||
uid: chatObj.options.touid,
|
||||
new: chatObj.element.hasClass('new')
|
||||
}
|
||||
};
|
||||
});
|
||||
|
||||
callback(null, chats);
|
||||
@@ -170,6 +130,51 @@ define('chat', ['components', 'taskbar', 'string', 'sounds', 'forum/chats', 'tra
|
||||
});
|
||||
};
|
||||
|
||||
module.loadChats = function(chatsListEl) {
|
||||
var dropdownEl;
|
||||
|
||||
socket.emit('modules.chats.getRecentChats', {after: 0}, function(err, chats) {
|
||||
if (err) {
|
||||
return app.alertError(err.message);
|
||||
}
|
||||
chats = chats.users;
|
||||
var userObj;
|
||||
|
||||
chatsListEl.empty();
|
||||
|
||||
if (!chats.length) {
|
||||
translator.translate('[[modules:chat.no_active]]', function(str) {
|
||||
$('<li />')
|
||||
.addClass('no_active')
|
||||
.html('<a href="#">' + str + '</a>')
|
||||
.appendTo(chatsListEl);
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
for(var x = 0; x<chats.length; ++x) {
|
||||
userObj = chats[x];
|
||||
dropdownEl = $('<li class="' + (userObj.unread ? 'unread' : '') + '"/>')
|
||||
.attr('data-uid', userObj.uid)
|
||||
.html('<a data-ajaxify="false">'+
|
||||
'<img src="' + userObj.picture + '" title="' + userObj.username +'" />' +
|
||||
'<i class="fa fa-circle status ' + userObj.status + '"></i> ' +
|
||||
userObj.username + '</a>')
|
||||
.appendTo(chatsListEl);
|
||||
|
||||
(function(userObj) {
|
||||
dropdownEl.click(function() {
|
||||
if (!ajaxify.currentPage.match(/^chats\//)) {
|
||||
app.openChat(userObj.username, userObj.uid);
|
||||
} else {
|
||||
ajaxify.go('chats/' + utils.slugify(userObj.username));
|
||||
}
|
||||
});
|
||||
})(userObj);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
module.bringModalToTop = function(chatModal) {
|
||||
var topZ = 0;
|
||||
|
||||
|
||||
@@ -17,25 +17,7 @@ define('notifications', ['sounds', 'translator'], function(sound, translator) {
|
||||
return;
|
||||
}
|
||||
|
||||
socket.emit('notifications.get', null, function(err, data) {
|
||||
if (err) {
|
||||
return app.alertError(err.message);
|
||||
}
|
||||
|
||||
var notifs = data.unread.concat(data.read).sort(function(a, b) {
|
||||
return parseInt(a.datetime, 10) > parseInt(b.datetime, 10) ? -1 : 1;
|
||||
});
|
||||
|
||||
translator.toggleTimeagoShorthand();
|
||||
for(var i=0; i<notifs.length; ++i) {
|
||||
notifs[i].timeago = $.timeago(new Date(parseInt(notifs[i].datetime, 10)));
|
||||
}
|
||||
translator.toggleTimeagoShorthand();
|
||||
|
||||
templates.parse('partials/notifications_list', {notifications: notifs}, function(html) {
|
||||
notifList.translateHtml(html);
|
||||
});
|
||||
});
|
||||
Notifications.loadNotifications(notifList);
|
||||
});
|
||||
|
||||
notifList.on('click', '[data-nid]', function() {
|
||||
@@ -114,6 +96,28 @@ define('notifications', ['sounds', 'translator'], function(sound, translator) {
|
||||
});
|
||||
};
|
||||
|
||||
Notifications.loadNotifications = function(notifList) {
|
||||
socket.emit('notifications.get', null, function(err, data) {
|
||||
if (err) {
|
||||
return app.alertError(err.message);
|
||||
}
|
||||
|
||||
var notifs = data.unread.concat(data.read).sort(function(a, b) {
|
||||
return parseInt(a.datetime, 10) > parseInt(b.datetime, 10) ? -1 : 1;
|
||||
});
|
||||
|
||||
translator.toggleTimeagoShorthand();
|
||||
for(var i=0; i<notifs.length; ++i) {
|
||||
notifs[i].timeago = $.timeago(new Date(parseInt(notifs[i].datetime, 10)));
|
||||
}
|
||||
translator.toggleTimeagoShorthand();
|
||||
|
||||
templates.parse('partials/notifications_list', {notifications: notifs}, function(html) {
|
||||
notifList.translateHtml(html);
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
Notifications.updateNotifCount = function(count) {
|
||||
var notifIcon = $('.notification-icon');
|
||||
|
||||
|
||||
Reference in New Issue
Block a user