You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2018/02/02 05:06:38 UTC
[openmeetings] branch 4.0.x updated: [OPENMEETINGS-1825] chat
scroll is improved
This is an automated email from the ASF dual-hosted git repository.
solomax pushed a commit to branch 4.0.x
in repository https://gitbox.apache.org/repos/asf/openmeetings.git
The following commit(s) were added to refs/heads/4.0.x by this push:
new d39423f [OPENMEETINGS-1825] chat scroll is improved
d39423f is described below
commit d39423feff1f5746ff02f13bd747ac21ca36e48e
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Fri Feb 2 12:06:30 2018 +0700
[OPENMEETINGS-1825] chat scroll is improved
---
.../apache/openmeetings/web/user/chat/chat-base.js | 19 ++++++++++++-------
1 file changed, 12 insertions(+), 7 deletions(-)
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat-base.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat-base.js
index 1678661..e6fe6d3 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat-base.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat-base.js
@@ -127,7 +127,9 @@ var Chat = function() {
initToolbar();
tabs = $("#chatTabs").tabs({
activate: function(event, ui) {
- $('#activeChatTab').val(ui.newPanel[0].id).trigger('change');
+ const ct = ui.newPanel[0].id;
+ _scrollDown($('#' + ct));
+ $('#activeChatTab').val(ct).trigger('change');
}
});
// close icon: removing the tab on click
@@ -246,16 +248,14 @@ var Chat = function() {
if (m.mode === "accept") {
$('#chat-msg-id-' + cm.id).remove();
}
- const btm = area.scrollTop() + area.innerHeight() >= area[0].scrollHeight;
+ const btm = area[0].scrollHeight - (area.scrollTop() + area.innerHeight()) < 3; //approximately equal
if (area.data('lastDate') !== cm.date) {
area.append(OmUtil.tmpl('#chat-date-template').html(cm.date));
area.data('lastDate', cm.date);
}
area.append(msg);
if (btm) {
- area.animate({
- scrollTop: area[0].scrollHeight
- }, 300);
+ _scrollDown(area);
}
}
}
@@ -293,7 +293,6 @@ var Chat = function() {
p.removeClass('closed');
pp.animate(opts, 1000, function() {
p.removeClass('closed');
- _setAreaHeight();
if (typeof(handler) === 'function') {
handler();
}
@@ -303,6 +302,7 @@ var Chat = function() {
_setOpened();
Room.setSize();
}
+ _setAreaHeight();
});
}
}
@@ -349,10 +349,15 @@ var Chat = function() {
roomMode = _mode;
_reinit(allPrefix, roomPrefix);
}
+ function _scrollDown(area) {
+ area.animate({
+ scrollTop: area[0].scrollHeight
+ }, 300);
+ }
function _setAreaHeight() {
$('#chat .ui-tabs .ui-tabs-panel.messageArea').height(p.height() - closedSize - $('#chat .ui-tabs-nav').height() - $('#chat form').height() - 5);
$('#chat .messageArea').each(function() {
- $(this).scrollTop($(this)[0].scrollHeight);
+ _scrollDown($(this));
});
}
function _setHeight(h) {
--
To stop receiving notification emails like this one, please contact
solomax@apache.org.