diff --git a/NEWS b/NEWS index 36d4120bb..b19f695c1 100644 --- a/NEWS +++ b/NEWS @@ -28,6 +28,7 @@ Bug fixes - [web] fixed XSRF cookie path when changing password (#4139) - [web] spaces can now be inserted in address book names - [web] prevent the creation of empty contact categories + - [web] restore messages selection after automatic refresh (#4330) - [eas] hebrew folders encoding problem using EAS (#4240) - [eas] avoid sync requests for shared folders every second (#4275) diff --git a/UI/WebServerResources/js/Mailer/Mailbox.service.js b/UI/WebServerResources/js/Mailer/Mailbox.service.js index 5884e2fd3..5d8bc9082 100644 --- a/UI/WebServerResources/js/Mailer/Mailbox.service.js +++ b/UI/WebServerResources/js/Mailer/Mailbox.service.js @@ -893,6 +893,7 @@ this.$futureMailboxData = futureMailboxData; this.$futureMailboxData.then(function(data) { + var selectedMessages = _.map(_this.$selectedMessages(), 'uid'); Mailbox.$timeout(function() { var uids, headers; @@ -916,7 +917,7 @@ // Instanciate Message objects _.reduce(_this.uids, function(msgs, msg, i) { - var data; + var data, msgObject; if (_this.threaded) data = _.zipObject(uids, msg); else @@ -925,7 +926,12 @@ // Build map of UID <=> index _this.uidsMap[data.uid] = i; - msgs.push(new Mailbox.$Message(_this.$account.id, _this, data, true)); + msgObject = new Mailbox.$Message(_this.$account.id, _this, data, true); + + // Restore selection + msgObject.selected = selectedMessages.indexOf(msgObject.uid) > -1; + + msgs.push(msgObject); return msgs; }, _this.$messages);