diff --git a/package.json b/package.json index 0633e8d73f..6102a44a13 100644 --- a/package.json +++ b/package.json @@ -49,8 +49,8 @@ "nodebb-plugin-spam-be-gone": "0.4.2", "nodebb-rewards-essentials": "0.0.5", "nodebb-theme-lavender": "2.0.1", - "nodebb-theme-persona": "3.0.14", - "nodebb-theme-vanilla": "4.0.9", + "nodebb-theme-persona": "3.0.15", + "nodebb-theme-vanilla": "4.0.10", "nodebb-widget-essentials": "2.0.1", "npm": "^2.1.4", "passport": "^0.3.0", diff --git a/public/src/client/chats.js b/public/src/client/chats.js index eee0139f55..3883210bed 100644 --- a/public/src/client/chats.js +++ b/public/src/client/chats.js @@ -155,34 +155,32 @@ define('forum/chats', ['components', 'string', 'sounds', 'forum/infinitescroll', data.message.newSet = lastSpeaker !== data.message.fromuid; Chats.parseMessage(data.message, onMessagesParsed); } else { - var contactEl = $('.chats-list li[data-uid="' + data.withUid + '"]'), + var contactEl = $('[component="chat/recent"] li[data-uid="' + data.withUid + '"]'), userKey = data.withUid === data.message.fromuid ? 'fromUser' : 'toUser'; // Spawn a new contact if required - if (!contactEl.length) { - templates.parse('partials/chat_contact', { - uid: data.withUid, - username: data.message[userKey].username, - status: data.message[userKey].status, - picture: data.message[userKey].picture, - teaser: { - content: data.message.cleanedContent, - timestampISO: new Date(Date.now()).toISOString() + templates.parse('partials/chat_contact', { + uid: data.withUid, + username: data.message[userKey].username, + status: data.message[userKey].status, + picture: data.message[userKey].picture, + teaser: { + content: data.message.cleanedContent, + timestampISO: new Date(Date.now()).toISOString() + } + }, function(html) { + translator.translate(html, function(translatedHTML) { + if (contactEl.length) { + contactEl.replaceWith(translatedHTML); + } else { + $('[component="chat/recent"]').prepend(translatedHTML); } - }, function(html) { - translator.translate(html, function(translatedHTML) { - $('.chats-list').prepend(translatedHTML); - // Mark that contact list entry unread - $('.chats-list li[data-uid="' + data.withUid + '"]').addClass('unread').find('.timeago').timeago(); - }); + // Mark that contact list entry unread + $('.chats-list li[data-uid="' + data.withUid + '"]').addClass('unread').find('.timeago').timeago(); + app.alternatingTitle('[[modules:chat.user_has_messaged_you, ' + data.message.fromUser.username + ']]'); }); - } else { - // Mark that contact list entry unread - $('.chats-list li[data-uid="' + data.withUid + '"]').addClass('unread'); - } - - app.alternatingTitle('[[modules:chat.user_has_messaged_you, ' + data.message.fromUser.username + ']]'); + }); } });