|
|
@@ -14,6 +14,7 @@ var
|
|
|
NOTIFICATION_DELAY = 5 * 1000, // 5 sec
|
|
|
|
|
|
MSG_GROUPS = [],
|
|
|
+ PENDING_GROUP = null,
|
|
|
|
|
|
/** @type {number} */
|
|
|
lastNotificationSpawn = 0;
|
|
|
@@ -474,6 +475,7 @@ function onRoomUpdated() {
|
|
|
for (var i = currentGroup +1;MSG_GROUPS[i]; i++) {
|
|
|
MSG_GROUPS[i].remove();
|
|
|
}
|
|
|
+ MSG_GROUPS.splice(currentGroup +1);
|
|
|
}
|
|
|
for (var i =0, len =MSG_GROUPS.length; i < len; ++i) {
|
|
|
if (MSG_GROUPS[i -1] && isSameDay(MSG_GROUPS[i -1].ts, MSG_GROUPS[i].ts)) {
|
|
|
@@ -483,18 +485,27 @@ function onRoomUpdated() {
|
|
|
MSG_GROUPS[i].dataset["date"] = MSG_GROUPS[i].dataset["date"] || locale.formatDay(MSG_GROUPS[i].ts);
|
|
|
}
|
|
|
}
|
|
|
- currentGroup = MSG_GROUPS.length;
|
|
|
+
|
|
|
+ if (PENDING_GROUP)
|
|
|
+ {
|
|
|
+ PENDING_GROUP.content.textContent = "";
|
|
|
+ PENDING_GROUP.messages = [];
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ PENDING_GROUP = createMessageGroupDom(SELECTED_CONTEXT.self, SELECTED_CONTEXT.self.getName(), false, 0);
|
|
|
+ PENDING_GROUP.classList.add(R.klass.msg.groupPending);
|
|
|
+ }
|
|
|
PENDING_MESSAGES.forEach(function(msg) {
|
|
|
if (msg.channel === SELECTED_ROOM.id) {
|
|
|
- if (!MSG_GROUPS[currentGroup]) {
|
|
|
- MSG_GROUPS[currentGroup] = createMessageGroupDom(SELECTED_CONTEXT.self, SELECTED_CONTEXT.self.getName(), msg instanceof MeMessage, msg.ts);
|
|
|
- chatFrag.appendChild(MSG_GROUPS[currentGroup]);
|
|
|
- }
|
|
|
- MSG_GROUPS[currentGroup].classList.add("pending");
|
|
|
- MSG_GROUPS[currentGroup].content.appendChild(msg.dom);
|
|
|
- MSG_GROUPS[currentGroup].messages.push(msg.id);
|
|
|
+ PENDING_GROUP.content.appendChild(msg.dom);
|
|
|
+ PENDING_GROUP.messages.push(msg.id);
|
|
|
}
|
|
|
});
|
|
|
+ if (PENDING_GROUP.messages.length)
|
|
|
+ chatFrag.appendChild(PENDING_GROUP);
|
|
|
+ else
|
|
|
+ PENDING_GROUP.remove();
|
|
|
MSG_GROUPS = MSG_GROUPS.filter(function(group) {
|
|
|
var result = group && group.messages.length && group.content.children.length;
|
|
|
if (!result && group)
|