Browse Source

TG-8 bugfixes

isundil 6 years ago
parent
commit
267bf234ca
3 changed files with 130 additions and 124 deletions
  1. 1 0
      cli/resources.js
  2. 19 8
      cli/ui.js
  3. 110 116
      srv/public/mimouchat.min.js

+ 1 - 0
cli/resources.js

@@ -139,6 +139,7 @@ var R = {
             }
         },
         msg: {
+            groupPending: "pending",
             item: "chatmsg-item",
             pending: "chatmsg-pending",
             notice: "chatmsg-notice",

+ 19 - 8
cli/ui.js

@@ -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)

File diff suppressed because it is too large
+ 110 - 116
srv/public/mimouchat.min.js


Some files were not shown because too many files changed in this diff