From 814005d0f21670a1cd6e1ef4b1d651559eda6adc Mon Sep 17 00:00:00 2001 From: Christoph Wurst Date: Wed, 28 Sep 2016 10:35:48 +0200 Subject: [PATCH] remove client-side message list cache --- js/background.js | 8 -------- js/cache.js | 2 -- js/controller/foldercontroller.js | 7 ------- js/controller/messagecontroller.js | 4 ---- js/models/folder.js | 1 + js/service/messageservice.js | 31 ++++++------------------------ js/state.js | 18 ----------------- js/views/foldercontent.js | 7 ------- 8 files changed, 7 insertions(+), 71 deletions(-) diff --git a/js/background.js b/js/background.js index c89135a6e0..59e5e1f861 100644 --- a/js/background.js +++ b/js/background.js @@ -16,7 +16,6 @@ define(function(require) { var _ = require('underscore'); var $ = require('jquery'); var OC = require('OC'); - var Cache = require('cache'); var Radio = require('radio'); var State = require('state'); var MessageCollection = require('models/messagecollection'); @@ -137,13 +136,6 @@ define(function(require) { Radio.message.trigger('fetch:bodies', changedAccount, changedFolder, messages); } - // Save new messages to the cached message list - var cachedList = Cache.getMessageList(changedAccount, localFolder); - if (cachedList) { - cachedList = cachedList.concat(changes.messages); - Cache.addMessageList(changedAccount, localFolder, cachedList); - } - Radio.ui.trigger('title:update'); }); } diff --git a/js/cache.js b/js/cache.js index 3acddc820d..a386093770 100644 --- a/js/cache.js +++ b/js/cache.js @@ -243,8 +243,6 @@ define(function(require) { addMessage: addMessage, addMessages: addMessages, removeMessage: removeMessage, - getMessageList: getMessageList, - addMessageList: addMessageList, removeAccount: removeAccount }; }); diff --git a/js/controller/foldercontroller.js b/js/controller/foldercontroller.js index 5e45f52a6a..765225eb2e 100644 --- a/js/controller/foldercontroller.js +++ b/js/controller/foldercontroller.js @@ -52,13 +52,6 @@ define(function(require) { function loadFolderMessages(account, folder, noSelect, searchQuery) { Radio.ui.trigger('composer:leave'); - if (require('state').messagesLoading !== null) { - require('state').messagesLoading.abort(); - } - if (require('state').messageLoading !== null) { - require('state').messageLoading.abort(); - } - // Set folder active Radio.folder.trigger('setactive', account, folder); diff --git a/js/controller/messagecontroller.js b/js/controller/messagecontroller.js index f2cff129f7..5ea595a2ed 100644 --- a/js/controller/messagecontroller.js +++ b/js/controller/messagecontroller.js @@ -57,10 +57,6 @@ define(function(require) { if (!options.force && false) { return; } - // Abort previous loading requests - if (require('state').messageLoading !== null) { - require('state').messageLoading.abort(); - } // check if message is a draft var draftsFolder = account.get('specialFolders').drafts; diff --git a/js/models/folder.js b/js/models/folder.js index f0485029a3..5dd44e160c 100644 --- a/js/models/folder.js +++ b/js/models/folder.js @@ -24,6 +24,7 @@ define(function(require) { defaults: { open: false, folders: [], + messagesLoaded: false }, initialize: function() { var FolderCollection = require('models/foldercollection'); diff --git a/js/service/messageservice.js b/js/service/messageservice.js index ac81e60802..d54abdb8bc 100644 --- a/js/service/messageservice.js +++ b/js/service/messageservice.js @@ -24,7 +24,6 @@ define(function(require) { var _ = require('underscore'); var OC = require('OC'); var Radio = require('radio'); - var messageListXhr = null; Radio.message.reply('entities', getMessageEntities); Radio.message.reply('entity', getMessageEntity); @@ -55,23 +54,11 @@ define(function(require) { options.cache = false; } - // Abort previous requests - if (messageListXhr !== null) { - messageListXhr.abort(); - } - var defer = $.Deferred(); - if (options.cache) { - // Load cached version if available - var messageList = require('cache').getMessageList(account, folder); - if (!options.force && messageList) { - _.each(messageList, function(msg) { - folder.addMessage(msg); - }); - defer.resolve(folder.messages, true); - return defer.promise(); - } + if (options.cache && folder.get('messagesLoaded')) { + defer.resolve(folder.messages, true); + return defer.promise(); } var url = OC.generateUrl('apps/mail/accounts/{accountId}/folders/{folderId}/messages', @@ -81,7 +68,7 @@ define(function(require) { }); // TODO: folder.messages.fetch() - messageListXhr = $.ajax(url, + $.ajax(url, { data: { from: options.from, @@ -89,9 +76,6 @@ define(function(require) { filter: options.filter }, success: function(messages) { - if (options.replace || options.cache) { - require('cache').addMessageList(account, folder, messages); - } var collection = folder.messages; if (options.replace) { collection.reset(); @@ -99,6 +83,7 @@ define(function(require) { _.each(messages, function(msg) { folder.addMessage(msg); }); + folder.set('messagesLoaded', true); defer.resolve(collection, false); }, error: function(error, status) { @@ -141,7 +126,7 @@ define(function(require) { folderId: folder.get('id'), messageId: messageId }); - var xhr = $.ajax(url, { + $.ajax(url, { type: 'GET', success: function(message) { defer.resolve(message); @@ -152,10 +137,6 @@ define(function(require) { } } }); - if (!options.backgroundMode) { - // Save xhr to allow aborting unneeded requests - require('state').messageLoading = xhr; - } return defer.promise(); } diff --git a/js/state.js b/js/state.js index c345880cff..94a16e9fb7 100644 --- a/js/state.js +++ b/js/state.js @@ -22,8 +22,6 @@ define(function(require) { var currentMessage = null; var currentMessageSubject = null; var currentMessageBody = ''; - var messagesLoading = null; - var messageLoading = null; Object.defineProperties(state, { accounts: { @@ -77,22 +75,6 @@ define(function(require) { set: function(body) { currentMessageBody = body; } - }, - messagesLoading: { - get: function() { - return messagesLoading; - }, - set: function(loading) { - messagesLoading = loading; - } - }, - messageLoading: { - get: function() { - return messageLoading; - }, - set: function(loading) { - messageLoading = loading; - } } }); diff --git a/js/views/foldercontent.js b/js/views/foldercontent.js index 3a70e7edd8..ebf5a7438e 100644 --- a/js/views/foldercontent.js +++ b/js/views/foldercontent.js @@ -103,13 +103,6 @@ define(function(require) { $('#mail_new_message').prop('disabled', true); $('#mail-message').removeClass('hidden-mobile'); - // Abort message loads - if (require('state').messageLoading !== null) { - require('state').messageLoading.abort(); - $('iframe').parent().removeClass('icon-loading'); - $('#mail_message').removeClass('icon-loading'); - } - // setup composer view this.message.show(new ComposerView({ accounts: require('state').accounts,