Pārlūkot izejas kodu

Fetch devices upon devicelist creation

updates #497
JC Brand 7 gadi atpakaļ
vecāks
revīzija
2f149a0ea2
1 mainītis faili ar 13 papildinājumiem un 9 dzēšanām
  1. 13 9
      src/converse-omemo.js

+ 13 - 9
src/converse-omemo.js

@@ -138,20 +138,24 @@
                     this.devices.browserStorage = new Backbone.BrowserStorage.session(
                     this.devices.browserStorage = new Backbone.BrowserStorage.session(
                         b64_sha1(`converse.devicelist-${_converse.bare_jid}-${this.get('jid')}`)
                         b64_sha1(`converse.devicelist-${_converse.bare_jid}-${this.get('jid')}`)
                     );
                     );
+                    this.fetchDevices();
                 },
                 },
 
 
                 fetchDevices () {
                 fetchDevices () {
-                    return new Promise((resolve, reject) => {
-                        this.devices.fetch({
-                            'success': (collection) => {
-                                if (collection.length === 0) {
-                                    this.fetchDevicesFromServer().then(resolve).catch(reject);
-                                } else {
-                                    resolve();
+                    if (_.isUndefined(this._devices_promise)) {
+                        this._devices_promise = new Promise((resolve, reject) => {
+                            this.devices.fetch({
+                                'success': (collection) => {
+                                    if (collection.length === 0) {
+                                        this.fetchDevicesFromServer().then(resolve).catch(reject);
+                                    } else {
+                                        resolve();
+                                    }
                                 }
                                 }
-                            }
+                            });
                         });
                         });
-                    });
+                    }
+                    return this._devices_promise;
                 },
                 },
 
 
                 fetchDevicesFromServer () {
                 fetchDevicesFromServer () {