diff --git a/UI/WebServerResources/js/Mailer/MailboxController.js b/UI/WebServerResources/js/Mailer/MailboxController.js index 1c110b41b..333357d72 100644 --- a/UI/WebServerResources/js/Mailer/MailboxController.js +++ b/UI/WebServerResources/js/Mailer/MailboxController.js @@ -184,9 +184,7 @@ vm.mode.search = false; vm.selectedFolder.$filter(vm.service.$query).then(function() { if (vm.selectedFolder.$selectedMessage) { - $timeout(function() { - vm.selectedFolder.$topIndex = vm.selectedFolder.uidsMap[vm.selectedFolder.$selectedMessage]; - }); + vm.selectedFolder.$topIndex = vm.selectedFolder.uidsMap[vm.selectedFolder.$selectedMessage]; } }); }; diff --git a/UI/WebServerResources/js/Mailer/Message.service.js b/UI/WebServerResources/js/Mailer/Message.service.js index dd852deee..e39c38e9f 100644 --- a/UI/WebServerResources/js/Mailer/Message.service.js +++ b/UI/WebServerResources/js/Mailer/Message.service.js @@ -492,7 +492,7 @@ && ("UIxMailPartHTMLViewer" == parts[i].type || "UIxMailPartTextViewer" == parts[i].type)) { // Content - parts[i].content = this.highlightSearchTerms(parts[i].content); + parts[i].content = this.highlightSearchTerms(parts[i].content, false); // Title this.subject = this.getHighlightSubject(); // From @@ -513,14 +513,14 @@ * @desc Returns the data with highlight search * @returns the data with highlighted search terms */ - Message.prototype.highlightSearchTerms = function (data) { + Message.prototype.highlightSearchTerms = function (data, encodeEntities) { var i = 0; if (this.$mailbox.getHighlightWords() && this.$mailbox.getHighlightWords().length > 0 && data && -1 === data.indexOf("data-markjs")) { var dom = document.createElement("DIV"); - dom.innerHTML = data; + dom.innerHTML = encodeEntities ? data.encodeEntities() : data; var markInstance = new Mark(dom); markInstance.mark(this.$mailbox.getHighlightWords()); data = dom.innerHTML; @@ -537,7 +537,7 @@ * @returns the subject with highlighted search terms */ Message.prototype.getHighlightSubject = function () { - return this.highlightSearchTerms(this.subject); + return this.highlightSearchTerms(this.subject, false); }; /** @@ -549,8 +549,8 @@ Message.prototype.getHighlightFrom = function () { var i = 0; for (i = 0; i < this.from.length; i++) { - this.from[i].full = this.highlightSearchTerms(this.from[i].full); - this.from[i].name = this.highlightSearchTerms(this.from[i].name); + this.from[i].full = this.highlightSearchTerms(this.from[i].full, false); + this.from[i].name = this.highlightSearchTerms(this.from[i].name, false); } return this.from; diff --git a/UI/WebServerResources/js/Mailer/sgMessageListItemMain.directive.js b/UI/WebServerResources/js/Mailer/sgMessageListItemMain.directive.js index 7145ff3b7..0e2e92015 100644 --- a/UI/WebServerResources/js/Mailer/sgMessageListItemMain.directive.js +++ b/UI/WebServerResources/js/Mailer/sgMessageListItemMain.directive.js @@ -191,15 +191,15 @@ }; this.defineSubjectAndSenderElements = function() { - if ($ctrl && $ctrl.message) { + if ($ctrl && $ctrl.message && !$ctrl.message.loading) { // Subject $ctrl.subjectElement.innerHTML = $ctrl.message.getHighlightSubject(); // Sender or recipient when in Sent or Draft mailbox if ($ctrl.MailboxService.selectedFolder.isSentFolder || $ctrl.MailboxService.selectedFolder.isDraftsFolder) - $ctrl.senderElement.innerHTML = $ctrl.message.highlightSearchTerms($ctrl.message.$shortAddress('to', Preferences.defaults.SOGoMailDisplayFullEmail).encodeEntities()); + $ctrl.senderElement.innerHTML = $ctrl.message.highlightSearchTerms($ctrl.message.$shortAddress('to', Preferences.defaults.SOGoMailDisplayFullEmail), true); else - $ctrl.senderElement.innerHTML = $ctrl.message.highlightSearchTerms($ctrl.message.$shortAddress('from', Preferences.defaults.SOGoMailDisplayFullEmail).encodeEntities()); + $ctrl.senderElement.innerHTML = $ctrl.message.highlightSearchTerms($ctrl.message.$shortAddress('from', Preferences.defaults.SOGoMailDisplayFullEmail), true); } };