浏览代码

Fall back to user's JID when fullname not found

JC Brand 11 年之前
父节点
当前提交
4b9054066d
共有 1 个文件被更改,包括 19 次插入12 次删除
  1. 19 12
      converse.js

+ 19 - 12
converse.js

@@ -570,8 +570,9 @@
                     from = Strophe.getBareJidFromJid($message.attr('from')),
                     composing = $message.find('composing'),
                     delayed = $message.find('delay').length > 0,
-                    fullname = (this.get('fullname')||'').split(' ')[0],
+                    fullname = this.get('fullname'),
                     stamp, time, sender;
+                fullname = (_.isEmpty(fullname)? from: fullname).split(' ')[0];
 
                 if (!body) {
                     if (composing.length) {
@@ -949,8 +950,10 @@
                     this.model.trigger('showSentOTRMessage', text);
                 } else {
                     // We only save unencrypted messages.
+                    var fullname = converse.xmppstatus.get('fullname');
+                    fullname = _.isEmpty(fullname)? converse.bare_jid: fullname;
                     this.model.messages.create({
-                        fullname: converse.xmppstatus.get('fullname')||converse.bare_jid,
+                        fullname: fullname,
                         sender: 'me',
                         time: converse.toISOString(new Date()),
                         message: text
@@ -1077,6 +1080,7 @@
                 if (_.has(item.changed, 'chat_status')) {
                     var chat_status = item.get('chat_status'),
                         fullname = item.get('fullname');
+                    fullname = _.isEmpty(fullname)? item.get('jid'): fullname;
                     if (this.$el.is(':visible')) {
                         if (chat_status === 'offline') {
                             this.showStatusNotification(fullname+' '+'has gone offline');
@@ -2281,7 +2285,7 @@
             },
 
             messageReceived: function (message) {
-                var partner_jid, $message = $(message),
+                var buddy_jid, $message = $(message),
                     message_from = $message.attr('from');
                 if (message_from == converse.connection.jid) {
                     // FIXME: Forwarded messages should be sent to specific resources,
@@ -2297,33 +2301,36 @@
                     resource, chatbox, roster_item;
                 if (from == converse.bare_jid) {
                     // I am the sender, so this must be a forwarded message...
-                    partner_jid = to;
+                    buddy_jid = to;
                     resource = Strophe.getResourceFromJid($message.attr('to'));
                 } else {
-                    partner_jid = from;
+                    buddy_jid = from;
                     resource = Strophe.getResourceFromJid(message_from);
                 }
-                chatbox = this.get(partner_jid);
-                roster_item = converse.roster.get(partner_jid);
+                chatbox = this.get(buddy_jid);
+                roster_item = converse.roster.get(buddy_jid);
 
                 if (roster_item === undefined) {
                     // The buddy was likely removed
-                    converse.log('Could not get roster item for JID '+partner_jid, 'error');
+                    converse.log('Could not get roster item for JID '+buddy_jid, 'error');
                     return true;
                 }
 
                 if (!chatbox) {
+                    var fullname = roster_item.get('fullname');
+                    fullname = _.isEmpty(fullname)? buddy_jid: fullname;
+
                     chatbox = this.create({
-                        'id': partner_jid,
-                        'jid': partner_jid,
-                        'fullname': roster_item.get('fullname') || jid,
+                        'id': buddy_jid,
+                        'jid': buddy_jid,
+                        'fullname': fullname,
                         'image_type': roster_item.get('image_type'),
                         'image': roster_item.get('image'),
                         'url': roster_item.get('url')
                     });
                 }
                 chatbox.messageReceived(message);
-                converse.roster.addResource(partner_jid, resource);
+                converse.roster.addResource(buddy_jid, resource);
                 return true;
             }
         });