From 3fe2ff234e04eb82d60ce2301a8ff01676d2e1de Mon Sep 17 00:00:00 2001 From: JC Brand Date: Thu, 3 May 2018 15:48:32 +0200 Subject: [PATCH] Fixes #1088 Entity items weren't being fetched from cache. Apparently this bug only surfaced because with Ejabberd the upload service is nested one level deeper than with Prosody. --- src/converse-chatview.js | 2 +- src/converse-disco.js | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/converse-chatview.js b/src/converse-chatview.js index 23306dd70..35034af0a 100644 --- a/src/converse-chatview.js +++ b/src/converse-chatview.js @@ -346,7 +346,7 @@ 'beforeend', tpl_toolbar_fileupload({'tooltip_upload_file': __('Choose a file to send')})); } - }); + }).catch(_.partial(_converse.log, _, Strophe.LogLevel.FATAL)); }, addSpoilerButton (options) { diff --git a/src/converse-disco.js b/src/converse-disco.js index 2ecf70c46..82eed6a1d 100644 --- a/src/converse-disco.js +++ b/src/converse-disco.js @@ -58,6 +58,7 @@ this.items.browserStorage = new Backbone.BrowserStorage[_converse.storage]( b64_sha1(`converse.disco-items-${this.get('jid')}`) ); + this.items.fetch(); }, getIdentity (category, type) { @@ -130,7 +131,7 @@ }, onDiscoItems (stanza) { - _.each(stanza.querySelectorAll('query item'), (item) => { + _.each(sizzle(`query[xmlns="${Strophe.NS.DISCO_ITEMS}"] item`, stanza), (item) => { if (item.getAttribute("node")) { // XXX: ignore nodes for now. // See: https://xmpp.org/extensions/xep-0030.html#items-nodes @@ -288,7 +289,7 @@ if (_.isNil(entity_jid)) { throw new TypeError('disco.supports: You need to provide an entity JID'); } - return _converse.api.waitUntil('discoInitialized').then((entity) => { + return _converse.api.waitUntil('discoInitialized').then(() => { return new Promise((resolve, reject) => { _converse.api.disco.entities.get(entity_jid, true).then((entity) => { Promise.all(