bookmarks: clear the fetched_flag
upon logout
This commit is contained in:
parent
8c1c665e2e
commit
2d89589b54
@ -50,6 +50,7 @@
|
|||||||
if (!_.isUndefined(this.bookmarks)) {
|
if (!_.isUndefined(this.bookmarks)) {
|
||||||
this.bookmarks.reset();
|
this.bookmarks.reset();
|
||||||
this.bookmarks.browserStorage._clear();
|
this.bookmarks.browserStorage._clear();
|
||||||
|
window.sessionStorage.removeItem(this.bookmarks.fetched_flag);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -218,7 +219,7 @@
|
|||||||
this.on('remove', this.sendBookmarkStanza, this);
|
this.on('remove', this.sendBookmarkStanza, this);
|
||||||
|
|
||||||
var cache_key = 'converse.room-bookmarks'+_converse.bare_jid;
|
var cache_key = 'converse.room-bookmarks'+_converse.bare_jid;
|
||||||
this.cached_flag = b64_sha1(cache_key+'fetched');
|
this.fetched_flag = b64_sha1(cache_key+'fetched');
|
||||||
this.browserStorage = new Backbone.BrowserStorage[_converse.storage](
|
this.browserStorage = new Backbone.BrowserStorage[_converse.storage](
|
||||||
b64_sha1(cache_key)
|
b64_sha1(cache_key)
|
||||||
);
|
);
|
||||||
@ -234,16 +235,16 @@
|
|||||||
fetchBookmarks: function () {
|
fetchBookmarks: function () {
|
||||||
var deferred = new $.Deferred();
|
var deferred = new $.Deferred();
|
||||||
var promise = deferred.promise();
|
var promise = deferred.promise();
|
||||||
if (window.sessionStorage.getItem(this.browserStorage.name)) {
|
if (this.browserStorage.records.length > 0) {
|
||||||
this.fetch({
|
this.fetch({
|
||||||
'success': _.bind(this.onCachedBookmarksFetched, this, deferred),
|
'success': _.bind(this.onCachedBookmarksFetched, this, deferred),
|
||||||
'error': _.bind(this.onCachedBookmarksFetched, this, deferred)
|
'error': _.bind(this.onCachedBookmarksFetched, this, deferred)
|
||||||
});
|
});
|
||||||
} else if (! window.sessionStorage.getItem(this.cached_flag)) {
|
} else if (! window.sessionStorage.getItem(this.fetched_flag)) {
|
||||||
// There aren't any cached bookmarks, and the cache is
|
// There aren't any cached bookmarks and the
|
||||||
// not set to null. So we query the XMPP server.
|
// `fetched_flag` is off, so we query the XMPP server.
|
||||||
// If nothing is returned from the XMPP server, we set
|
// If nothing is returned from the XMPP server, we set
|
||||||
// the cache to null to avoid calling the server again.
|
// the `fetched_flag` to avoid calling the server again.
|
||||||
this.fetchBookmarksFromServer(deferred);
|
this.fetchBookmarksFromServer(deferred);
|
||||||
} else {
|
} else {
|
||||||
deferred.resolve();
|
deferred.resolve();
|
||||||
@ -344,9 +345,9 @@
|
|||||||
},
|
},
|
||||||
|
|
||||||
onBookmarksReceivedError: function (deferred, iq) {
|
onBookmarksReceivedError: function (deferred, iq) {
|
||||||
window.sessionStorage.setItem(this.cached_flag, true);
|
window.sessionStorage.setItem(this.fetched_flag, true);
|
||||||
_converse.log('Error while fetching bookmarks', Strophe.LogLevel.ERROR);
|
_converse.log('Error while fetching bookmarks', Strophe.LogLevel.ERROR);
|
||||||
_converse.log(iq);
|
_converse.log(iq, Strophe.LogLevel.DEBUG);
|
||||||
if (!_.isNil(deferred)) {
|
if (!_.isNil(deferred)) {
|
||||||
return deferred.reject();
|
return deferred.reject();
|
||||||
}
|
}
|
||||||
|
@ -2219,7 +2219,10 @@
|
|||||||
onOccupantAdded: function (item) {
|
onOccupantAdded: function (item) {
|
||||||
var view = this.get(item.get('id'));
|
var view = this.get(item.get('id'));
|
||||||
if (!view) {
|
if (!view) {
|
||||||
view = this.add(item.get('id'), new _converse.ChatRoomOccupantView({model: item}));
|
view = this.add(
|
||||||
|
item.get('id'),
|
||||||
|
new _converse.ChatRoomOccupantView({model: item})
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
delete view.model; // Remove ref to old model to help garbage collection
|
delete view.model; // Remove ref to old model to help garbage collection
|
||||||
view.model = item;
|
view.model = item;
|
||||||
|
Loading…
Reference in New Issue
Block a user