diff --git a/UI/WebServerResources/js/Mailer/Mailbox.service.js b/UI/WebServerResources/js/Mailer/Mailbox.service.js index f9d2102638..f73fc69b87 100644 --- a/UI/WebServerResources/js/Mailer/Mailbox.service.js +++ b/UI/WebServerResources/js/Mailer/Mailbox.service.js @@ -869,25 +869,6 @@ }); }; - /** - * @function $reset - * @memberof Mailbox.prototype - * @desc Reset the original state the mailbox's data. - */ - Mailbox.prototype.$reset = function(options) { - var _this = this; - angular.forEach(this.$shadowData, function(value, key) { - delete _this[key]; - }); - angular.extend(this, this.$shadowData); - this.$shadowData = this.$omit(); - if (options && options.filter) { - this.$messages = []; - this.$visibleMessages = []; - delete this.$syncToken; - } - }; - /** * @function $move * @memberof Mailbox.prototype @@ -935,6 +916,25 @@ return this.$account.$newMailbox(path, name); }; + /** + * @function $reset + * @memberof Mailbox.prototype + * @desc Reset the original state the mailbox's data. + */ + Mailbox.prototype.$reset = function(options) { + var _this = this; + angular.forEach(this.$shadowData, function(value, key) { + delete _this[key]; + }); + angular.extend(this, this.$shadowData); + this.$shadowData = this.$omit(); + if (options && options.filter) { + this.$messages = []; + this.$visibleMessages = []; + delete this.$syncToken; + } + }; + /** * @function $omit * @memberof Mailbox.prototype diff --git a/UI/WebServerResources/js/Mailer/MailboxController.js b/UI/WebServerResources/js/Mailer/MailboxController.js index 8f3ec444d6..1b483e3697 100644 --- a/UI/WebServerResources/js/Mailer/MailboxController.js +++ b/UI/WebServerResources/js/Mailer/MailboxController.js @@ -42,6 +42,10 @@ _.forEach(hotkeys, function(key) { sgHotkeys.deregisterHotkey(key); }); + if (vm.mode.search) { + vm.mode.search = false; + vm.selectedFolder.$reset({ filter: true }); + } }); // Update window's title with unseen messages count of selected mailbox @@ -53,13 +57,6 @@ title += ' | ' + defaultWindowTitle; $window.document.title = title; }); - - $scope.$on('$destroy', function() { - if (vm.mode.search) { - vm.mode.search = false; - vm.selectedFolder.$reset({ filter: true }); - } - }); }; function _registerHotkeys(keys) { diff --git a/UI/WebServerResources/js/Mailer/VirtualMailbox.service.js b/UI/WebServerResources/js/Mailer/VirtualMailbox.service.js index 17d61939a1..84e187d47f 100644 --- a/UI/WebServerResources/js/Mailer/VirtualMailbox.service.js +++ b/UI/WebServerResources/js/Mailer/VirtualMailbox.service.js @@ -399,4 +399,15 @@ return true; }; + /** + * @function $reset + * @memberof VirtualMailbox.prototype + * @desc Reset the original state all mailboxes data. + */ + VirtualMailbox.prototype.$reset = function(options) { + _.forEach(this.$mailboxes, function(mailbox) { + mailbox.$reset(options); + }); + }; + })(); diff --git a/UI/WebServerResources/js/Mailer/sgMailboxListItem.directive.js b/UI/WebServerResources/js/Mailer/sgMailboxListItem.directive.js index 921948cd4a..694d518578 100644 --- a/UI/WebServerResources/js/Mailer/sgMailboxListItem.directive.js +++ b/UI/WebServerResources/js/Mailer/sgMailboxListItem.directive.js @@ -87,7 +87,10 @@ if (this.editMode || this.mailbox == Mailbox.selectedFolder || this.mailbox.isNoSelect()) return; Mailbox.$virtualPath = false; - Mailbox.$virtualMode = false; + if (Mailbox.$virtualMode) { + Mailbox.$virtualMode = false; + Mailbox.selectedFolder.$reset({ filter: true }); + } this.accountController.selectFolder(this); if ($event) { $state.go('mail.account.mailbox', {