mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-09-10 07:58:01 +00:00
feat(mail): Change spam icon and add spam button to mail interface
This commit is contained in:
@@ -181,7 +181,7 @@
|
||||
<md-icon>delete</md-icon>
|
||||
</md-button>
|
||||
<md-button class="sg-icon-button" ng-click="mailbox.markOrUnMarkMessagesAsJunk()">
|
||||
<md-icon ng-hide="::mailbox.service.selectedFolder.type == 'junk'">thumb_down</md-icon>
|
||||
<md-icon ng-hide="::mailbox.service.selectedFolder.type == 'junk'">whatshot</md-icon>
|
||||
<md-tooltip ng-hide="::mailbox.service.selectedFolder.type == 'junk'" md-direction="bottom"><var:string label:value="Junk"/></md-tooltip>
|
||||
<md-icon ng-hide="::mailbox.service.selectedFolder.type != 'junk'">thumb_up</md-icon>
|
||||
<md-tooltip ng-hide="::mailbox.service.selectedFolder.type != 'junk'" md-direction="bottom"><var:string label:value="Not junk"/></md-tooltip>
|
||||
|
||||
@@ -45,6 +45,14 @@
|
||||
<md-icon class="ng-animate-disabled" ng-switch-when="true" rsrc:md-svg-src="img/mark_email_unread.svg"><!-- mark as unread --></md-icon>
|
||||
<md-icon class="ng-animate-disabled" ng-switch-default="true" rsrc:md-svg-src="img/mark_email_read.svg"><!-- mark as read --></md-icon>
|
||||
</md-button>
|
||||
<md-button class="sg-icon-button" label:aria-label="Junk"
|
||||
ng-hide="::viewer.message.isDraft"
|
||||
ng-click="viewer.markOrUnMarkAsJunk()">
|
||||
<md-tooltip md-direction="bottom" ng-hide="::viewer.mailbox.type == 'junk'"><var:string label:value="Junk"/></md-tooltip>
|
||||
<md-tooltip md-direction="bottom" ng-show="::viewer.mailbox.type == 'junk'"><var:string label:value="Not junk"/></md-tooltip>
|
||||
<md-icon ng-hide="::viewer.mailbox.type == 'junk'">whatshot</md-icon>
|
||||
<md-icon ng-show="::viewer.mailbox.type == 'junk'">thumb_up</md-icon>
|
||||
</md-button>
|
||||
<md-button class="sg-icon-button"
|
||||
ng-hide="::viewer.message.isDraft"
|
||||
ng-click="viewer.reply($event)"
|
||||
|
||||
@@ -319,10 +319,60 @@
|
||||
}
|
||||
};
|
||||
|
||||
// Select either the next or previous message once the current message
|
||||
// has been removed from the mailbox (deleted or moved), then close the
|
||||
// popup if any.
|
||||
function _selectNextMessage(mailbox, state, index) {
|
||||
var nextMessage, previousMessage,
|
||||
nextIndex = index,
|
||||
$timeout = vm.service.$timeout;
|
||||
|
||||
if (angular.isDefined(state)) {
|
||||
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() {
|
||||
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();
|
||||
|
||||
Reference in New Issue
Block a user