Skip to content

Commit

Permalink
feat(mail): Improve mail search (advanced search)
Browse files Browse the repository at this point in the history
  • Loading branch information
WoodySlum committed Jun 25, 2024
1 parent 43388ac commit 0cbcad9
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 12 deletions.
4 changes: 1 addition & 3 deletions UI/WebServerResources/js/Mailer/MailboxController.js
Original file line number Diff line number Diff line change
Expand Up @@ -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];
}
});
};
Expand Down
12 changes: 6 additions & 6 deletions UI/WebServerResources/js/Mailer/Message.service.js
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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;
Expand All @@ -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);
};

/**
Expand All @@ -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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
};

Expand Down

0 comments on commit 0cbcad9

Please sign in to comment.