From 3673f8c6eb512922d2c3df75d874f43d5391ebd2 Mon Sep 17 00:00:00 2001 From: smizrahi Date: Tue, 25 Aug 2026 15:36:58 +0200 Subject: [PATCH] feat(mail): Change spam icon and add spam button to mail interface --- .../MailerUI/UIxMailFolderTemplate.wox | 2 +- UI/Templates/MailerUI/UIxMailViewTemplate.wox | 8 ++ .../js/Mailer/MessageController.js | 134 ++++++++++++------ 3 files changed, 96 insertions(+), 48 deletions(-) diff --git a/UI/Templates/MailerUI/UIxMailFolderTemplate.wox b/UI/Templates/MailerUI/UIxMailFolderTemplate.wox index 7fe818afe..dca0679f0 100644 --- a/UI/Templates/MailerUI/UIxMailFolderTemplate.wox +++ b/UI/Templates/MailerUI/UIxMailFolderTemplate.wox @@ -181,7 +181,7 @@ delete - thumb_down + whatshot thumb_up diff --git a/UI/Templates/MailerUI/UIxMailViewTemplate.wox b/UI/Templates/MailerUI/UIxMailViewTemplate.wox index 45000a3af..a963453b9 100644 --- a/UI/Templates/MailerUI/UIxMailViewTemplate.wox +++ b/UI/Templates/MailerUI/UIxMailViewTemplate.wox @@ -45,6 +45,14 @@ + + + + whatshot + thumb_up + 0) { + nextIndex -= 1; + nextMessage = mailbox.getItemAtIndex(nextIndex); + } + if (index < mailbox.getLength()) + previousMessage = mailbox.getItemAtIndex(index); + + if (nextMessage) { + if (nextMessage.isread && previousMessage && !previousMessage.isread) { + nextIndex = index; + nextMessage = previousMessage; + } + } + else if (previousMessage) { + nextIndex = index; + nextMessage = previousMessage; + } + + try { + if (nextMessage && $mdMedia(sgConstant['gt-md'])) { + if (Mailbox.$virtualMode) + state.go('mail.account.virtualMailbox.message', {mailboxId: encodeUriFilter(nextMessage.$mailbox.path), messageId: nextMessage.uid}); + else + state.go('mail.account.mailbox.message', {messageId: nextMessage.uid}); + $timeout(function() { + if (nextIndex < mailbox.$topIndex) + mailbox.$topIndex = nextIndex; + else if (nextIndex > mailbox.$lastVisibleIndex) + mailbox.$topIndex = nextIndex - (mailbox.$lastVisibleIndex - mailbox.$topIndex); + }); + } + else { + state.go('mail.account.mailbox').then(function() { + delete mailbox.$selectedMessage; + }); + } + } + catch (error) {} + } + vm.closePopup(); + } + this.deleteMessage = function() { - var mailbox, message, state, nextMessage, previousMessage, - parentCtrls = $parentControllers(), - $timeout = this.service.$timeout; + var mailbox, message, state, + parentCtrls = $parentControllers(); if (parentCtrls.messageCtrl) { mailbox = parentCtrls.mailboxCtrl.selectedFolder; @@ -340,52 +390,9 @@ vm.mailInDeletion = message.uid; function _success(index) { - var nextIndex = index; // Remove message object from scope message = null; - if (angular.isDefined(state)) { - // Select either the next or previous message - if (index > 0) { - nextIndex -= 1; - nextMessage = mailbox.getItemAtIndex(nextIndex); - } - if (index < mailbox.getLength()) - previousMessage = mailbox.getItemAtIndex(index); - - if (nextMessage) { - if (nextMessage.isread && previousMessage && !previousMessage.isread) { - nextIndex = index; - nextMessage = previousMessage; - } - } - else if (previousMessage) { - nextIndex = index; - nextMessage = previousMessage; - } - - try { - if (nextMessage && $mdMedia(sgConstant['gt-md'])) { - if (Mailbox.$virtualMode) - state.go('mail.account.virtualMailbox.message', {mailboxId: encodeUriFilter(nextMessage.$mailbox.path), messageId: nextMessage.uid}); - else - state.go('mail.account.mailbox.message', {messageId: nextMessage.uid}); - $timeout(function() { - if (nextIndex < mailbox.$topIndex) - mailbox.$topIndex = nextIndex; - else if (nextIndex > mailbox.$lastVisibleIndex) - mailbox.$topIndex = nextIndex - (mailbox.$lastVisibleIndex - mailbox.$topIndex); - }); - } - else { - state.go('mail.account.mailbox').then(function() { - message = null; - delete mailbox.$selectedMessage; - }); - } - } - catch (error) {} - } - vm.closePopup(); + _selectNextMessage(mailbox, state, index); } mailbox.$deleteMessages([message]).then(_success, function(response) { @@ -407,6 +414,39 @@ }); }; + this.markOrUnMarkAsJunk = function() { + var mailbox, message, state, account, dstFolder, + parentCtrls = $parentControllers(); + + if (parentCtrls.messageCtrl) { + mailbox = parentCtrls.mailboxCtrl.selectedFolder; + message = parentCtrls.messageCtrl.message; + state = parentCtrls.messageCtrl.$state; + account = parentCtrls.messageCtrl.account; + } + else { + mailbox = stateMailbox; + message = stateMessage; + state = $state; + account = stateAccount; + } + if (Mailbox.$virtualMode) { + mailbox = Mailbox.selectedFolder; // the VirtualMailbox instance + } + + if (mailbox.type == 'junk') + dstFolder = '/' + account.id + '/folderINBOX'; + else + dstFolder = '/' + account.$getMailboxByType('junk').id; + + mailbox.$markOrUnMarkMessagesAsJunk([message]).then(function() { + mailbox.$moveMessages([message], dstFolder).then(function(index) { + message = null; + _selectNextMessage(mailbox, state, index); + }); + }); + }; + function _showMailEditor($event, message) { if (_messageDialog() === null) { var onCompleteDeferred = $q.defer();