Regression: grouping messages on threads (#14238)

* fix grouping messages

* Update message.js

* Update message.js
pull/14224/head^2
Guilherme Gazzo 6 years ago committed by GitHub
parent a0672ae150
commit 4a9ca3fb2e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      app/threads/client/flextab/thread.html
  2. 2
      app/threads/client/flextab/threads.html
  3. 22
      app/ui-message/client/message.js
  4. 2
      app/ui/client/views/app/room.html

@ -16,7 +16,7 @@
<div class="thread-list js-scroll-thread">
<ul class="thread">
{{# with messageContext}}
{{> nrr nrrargs 'message' hideRoles=true msg=mainMessage room=room subscription=subscription settings=settings customClass="thread-message" templatePrefix='thread-' customClass="thread-main" u=u}}
{{> nrr nrrargs 'message' groupable=false hideRoles=true msg=mainMessage room=room subscription=subscription settings=settings customClass="thread-message" templatePrefix='thread-' customClass="thread-main" u=u}}
{{#each msg in messages}}
{{> nrr nrrargs 'message' hideRoles=true msg=msg room=room subscription=subscription settings=settings templatePrefix='thread-' u=u}}
{{/each}}

@ -17,7 +17,7 @@
settings=settings
templatePrefix='threads-'
u=u
noDate=true
showDateSeparator=false
context="threads"
timeAgo=true
}}

@ -138,7 +138,7 @@ Template.message.helpers({
},
isGroupable() {
const { msg, room = {}, settings, groupable } = this;
if (groupable === false || settings.allowGroup === false || room.broadcast || msg.groupable === false || MessageTypes.isSystemMessage(msg)) {
if ((msg.tmid && settings.showreply) || groupable === false || settings.allowGroup === false || room.broadcast || msg.groupable === false || MessageTypes.isSystemMessage(msg)) {
return 'false';
}
},
@ -385,8 +385,8 @@ Template.message.helpers({
return !!(tmid && showreply);
},
collapsed() {
const { msg: { tmid, collapsed }, settings: { showreply } } = this;
const isCollapsedThreadReply = tmid && showreply && collapsed !== false;
const { msg: { tmid, collapsed }, settings: { showreply }, shouldCollapseReplies } = this;
const isCollapsedThreadReply = shouldCollapseReplies && tmid && showreply && collapsed !== false;
if (isCollapsedThreadReply) {
return 'collapsed';
}
@ -505,12 +505,12 @@ const getPreviousSentMessage = (currentNode) => {
}
};
const setNewDayAndGroup = (currentNode, previousNode, forceDate, period, noDate) => {
const setNewDayAndGroup = (currentNode, previousNode, forceDate, period, showDateSeparator) => {
const { classList, dataset: currentDataset } = currentNode;
if (!previousNode) {
classList.remove('sequential');
!noDate && classList.add('new-day');
showDateSeparator && classList.add('new-day');
return;
}
@ -518,7 +518,7 @@ const setNewDayAndGroup = (currentNode, previousNode, forceDate, period, noDate)
const previousMessageDate = new Date(parseInt(previousDataset.timestamp));
const currentMessageDate = new Date(parseInt(currentDataset.timestamp));
if (!noDate && (forceDate || previousMessageDate.toDateString() !== currentMessageDate.toDateString())) {
if (showDateSeparator && previousMessageDate.toDateString() !== currentMessageDate.toDateString()) {
classList.remove('sequential');
classList.add('new-day');
}
@ -533,9 +533,9 @@ const setNewDayAndGroup = (currentNode, previousNode, forceDate, period, noDate)
};
Template.message.onViewRendered = function() {
const { settings, forceDate, noDate, groupable, msg } = messageArgs(Template.currentData());
const { settings, forceDate, showDateSeparator = true, groupable, msg } = messageArgs(Template.currentData());
if (noDate && !groupable) {
if (!showDateSeparator && !groupable) {
return;
}
@ -547,11 +547,11 @@ Template.message.onViewRendered = function() {
const currentDataset = currentNode.dataset;
const previousNode = getPreviousSentMessage(currentNode);
const nextNode = currentNode.nextElementSibling;
setNewDayAndGroup(currentNode, previousNode, forceDate, settings.Message_GroupingPeriod, noDate);
setNewDayAndGroup(currentNode, previousNode, forceDate, settings.Message_GroupingPeriod, showDateSeparator);
if (nextNode && nextNode.dataset) {
const nextDataset = nextNode.dataset;
if (forceDate || nextDataset.date !== currentDataset.date) {
if (!noDate) {
if (showDateSeparator) {
currentNode.classList.add('new-day');
}
currentNode.classList.remove('sequential');
@ -562,7 +562,7 @@ Template.message.onViewRendered = function() {
if (nextDataset.groupable !== 'false') {
if (nextDataset.username !== currentDataset.username || parseInt(nextDataset.timestamp) - parseInt(currentDataset.timestamp) > settings.Message_GroupingPeriod) {
nextNode.classList.remove('sequential');
} else if (!nextNode.classList.contains('new-day') && !currentNode.classList.contains('temp') && !currentNode.dataset.tmid) {
} else if (!nextNode.classList.contains('new-day') && !currentNode.classList.contains('temp')) {
nextNode.classList.add('sequential');
}
}

@ -127,7 +127,7 @@
{{/if}}
{{# with messageContext}}
{{#each msg in messagesHistory}}{{#nrr nrrargs 'message' msg=msg room=room subscription=subscription settings=settings u=u}}{{/nrr}}{{/each}}
{{#each msg in messagesHistory}}{{#nrr nrrargs 'message' shouldCollapseReplies=true msg=msg room=room subscription=subscription settings=settings u=u}}{{/nrr}}{{/each}}
{{/with}}
{{#if hasMoreNext}}

Loading…
Cancel
Save