浏览代码

Fix MAM issue. Messages weren't being queried for properly

because the archive ids of messages weren't being stored.
JC Brand 9 年之前
父节点
当前提交
5993fba1d4
共有 5 个文件被更改,包括 9 次插入8 次删除
  1. 2 2
      src/converse-core.js
  2. 1 1
      src/converse-headline.js
  3. 4 3
      src/converse-mam.js
  4. 1 1
      src/converse-muc.js
  5. 1 1
      src/converse-otr.js

+ 2 - 2
src/converse-core.js

@@ -1166,7 +1166,7 @@
                 });
                 });
             },
             },
 
 
-            createMessage: function ($message, $delay) {
+            createMessage: function ($message, $delay, original_stanza) {
                 $delay = $delay || $message.find('delay');
                 $delay = $delay || $message.find('delay');
                 var body = $message.children('body').text(),
                 var body = $message.children('body').text(),
                     delayed = $delay.length > 0,
                     delayed = $delay.length > 0,
@@ -1312,7 +1312,7 @@
                 if (msgid && chatbox.messages.findWhere({msgid: msgid})) {
                 if (msgid && chatbox.messages.findWhere({msgid: msgid})) {
                     return true; // We already have this message stored.
                     return true; // We already have this message stored.
                 }
                 }
-                chatbox.createMessage($message, $delay);
+                chatbox.createMessage($message, $delay, message);
                 converse.roster.addResource(contact_jid, resource);
                 converse.roster.addResource(contact_jid, resource);
                 converse.emit('message', message);
                 converse.emit('message', message);
                 return true;
                 return true;

+ 1 - 1
src/converse-headline.js

@@ -30,7 +30,7 @@
                 'jid': from_jid,
                 'jid': from_jid,
                 'fullname':  from_jid,
                 'fullname':  from_jid,
                 'type': 'headline'
                 'type': 'headline'
-            }).createMessage($message);
+            }).createMessage($message, undefined, message);
             converse.emit('message', message);
             converse.emit('message', message);
         }
         }
         return true;
         return true;

+ 4 - 3
src/converse-mam.js

@@ -48,12 +48,13 @@
                 }
                 }
             },
             },
 
 
-            ChatBoxes: {
-                createMessage: function ($message, $delay) {
+            ChatBox: {
+                createMessage: function ($message, $delay, original_stanza) {
                     var message = this._super.createMessage.apply(this, arguments);
                     var message = this._super.createMessage.apply(this, arguments);
                     message.save({
                     message.save({
-                        archive_id: $message.find('result[xmlns="'+Strophe.NS.MAM+'"]').attr('id')
+                        archive_id: $(original_stanza).find('result[xmlns="'+Strophe.NS.MAM+'"]').attr('id')
                     });
                     });
+                    return message;
                 }
                 }
             },
             },
 
 

+ 1 - 1
src/converse-muc.js

@@ -874,7 +874,7 @@
                     if (sender === '') {
                     if (sender === '') {
                         return true;
                         return true;
                     }
                     }
-                    this.model.createMessage($message, $delay);
+                    this.model.createMessage($message, $delay, message);
                     if (sender !== this.model.get('nick')) {
                     if (sender !== this.model.get('nick')) {
                         // We only emit an event if it's not our own message
                         // We only emit an event if it's not our own message
                         converse.emit('message', message);
                         converse.emit('message', message);

+ 1 - 1
src/converse-otr.js

@@ -112,7 +112,7 @@
                         !(this.isOTRMessage($message) && !_.contains([UNVERIFIED, VERIFIED], this.get('otr_status')));
                         !(this.isOTRMessage($message) && !_.contains([UNVERIFIED, VERIFIED], this.get('otr_status')));
                 },
                 },
 
 
-                createMessage: function ($message, $delay, archive_id) {
+                createMessage: function ($message, $delay, original_stanza) {
                     var converse = this._super.converse,
                     var converse = this._super.converse,
                         $body = $message.children('body'),
                         $body = $message.children('body'),
                         text = ($body.length > 0 ? $body.text() : undefined);
                         text = ($body.length > 0 ? $body.text() : undefined);