Update all vcards that might be associated with an occupant
This commit is contained in:
parent
d920c2a86c
commit
ab4d0204f3
@ -985,13 +985,18 @@
|
||||
},
|
||||
|
||||
onAvatarChanged () {
|
||||
const vcard = _converse.vcards.findWhere({'jid': this.get('from')});
|
||||
if (!vcard) { return; }
|
||||
|
||||
const hash = this.get('image_hash');
|
||||
if (hash && vcard.get('image_hash') !== hash) {
|
||||
_converse.api.vcard.update(vcard);
|
||||
const vcards = [];
|
||||
if (this.get('jid')) {
|
||||
vcards.push(this.updateVCard(_converse.vcards.findWhere({'jid': this.get('jid')})));
|
||||
}
|
||||
vcards.push(this.updateVCard(_converse.vcards.findWhere({'jid': this.get('from')})));
|
||||
|
||||
_.forEach(_.filter(vcards, undefined), (vcard) => {
|
||||
if (hash && vcard.get('image_hash') !== hash) {
|
||||
_converse.api.vcard.update(vcard);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
getDisplayName () {
|
||||
@ -1032,6 +1037,7 @@
|
||||
// Remove absent occupants who've been removed from
|
||||
// the members lists.
|
||||
const occupant = this.findOccupant({'jid': removed_jid});
|
||||
if (!occupant) { return; }
|
||||
if (occupant.get('show') === 'offline') {
|
||||
occupant.destroy();
|
||||
}
|
||||
|
@ -142,7 +142,7 @@
|
||||
if (_.isString(model)) {
|
||||
return getVCard(_converse, model);
|
||||
} else if (!model.get('vcard_updated') || force) {
|
||||
const jid = model.get('jid') || model.get('muc_jid');
|
||||
const jid = model.get('jid');
|
||||
if (!jid) {
|
||||
throw new Error("No JID to get vcard for!");
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user