epic hax to make the chat message list resize #1788

v1.18.x
Julian Lam 11 years ago
parent 4404387218
commit dae2e14aac

@ -12,9 +12,11 @@ define('forum/chats', ['string', 'sounds'], function(S, sounds) {
if (!Chats.initialised) {
Chats.addSocketListeners();
Chats.addGlobalEventListeners();
}
Chats.addEventListeners();
Chats.resizeMainWindow();
Chats.scrollToBottom(containerEl);
Chats.setActive();
@ -62,6 +64,10 @@ define('forum/chats', ['string', 'sounds'], function(S, sounds) {
});
};
Chats.addGlobalEventListeners = function() {
$(window).on('resize', Chats.resizeMainWindow);
};
Chats.addSocketListeners = function() {
socket.on('event:chats.receive', function(data) {
var typingNotifEl = $('.user-typing'),
@ -102,6 +108,22 @@ define('forum/chats', ['string', 'sounds'], function(S, sounds) {
});
};
Chats.resizeMainWindow = function() {
var messagesList = $('.expanded-chat ul');
if (messagesList.length) {
var inputEl = $('.chat-input'),
viewportHeight = $(window).height(),
margin = $('.expanded-chat ul').outerHeight() - $('.expanded-chat ul').height(),
inputHeight = inputEl.outerHeight(),
fromTop = messagesList.offset().top;
messagesList.height(viewportHeight-(fromTop+inputHeight+(margin*4)));
}
return;
};
Chats.notifyTyping = function(toUid, typing) {
socket.emit('modules.chats.user' + (typing ? 'Start' : 'Stop') + 'Typing', {
touid: toUid,

@ -15,6 +15,7 @@ var posts = require('../posts'),
winston = require('winston'),
_ = require('underscore'),
server = require('./'),
nconf = require('nconf'),
SocketModules = {
composer: {

Loading…
Cancel
Save