2015-05-06 04:06:13 +02:00
|
|
|
/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
|
|
|
|
|
|
(function() {
|
|
|
|
'use strict';
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @ngInject
|
|
|
|
*/
|
2015-07-13 21:22:58 +02:00
|
|
|
MessageController.$inject = ['$scope', '$state', 'stateAccount', 'stateMailbox', 'stateMessage', 'encodeUriFilter', 'sgFocus', 'Dialog', 'Account', 'Mailbox', 'Message'];
|
|
|
|
function MessageController($scope, $state, stateAccount, stateMailbox, stateMessage, encodeUriFilter, focus, Dialog, Account, Mailbox, Message) {
|
|
|
|
var vm = this;
|
|
|
|
|
|
|
|
vm.account = stateAccount;
|
|
|
|
vm.mailbox = stateMailbox;
|
|
|
|
vm.message = stateMessage;
|
|
|
|
vm.service = Message;
|
|
|
|
vm.tags = { searchText: '', selected: '' };
|
|
|
|
vm.doDelete = doDelete;
|
|
|
|
|
|
|
|
// Watch the message model "flags" attribute to remove on-the-fly a tag from the IMAP message
|
|
|
|
// when removed from the message viewer.
|
|
|
|
// TODO: this approach should be reviewed once md-chips supports ng-change.
|
|
|
|
$scope.$watchCollection('viewer.message.flags', function(oldTags, newTags) {
|
|
|
|
_.each(_.difference(newTags, oldTags), function(tag) {
|
|
|
|
vm.message.removeTag(tag);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
function doDelete() {
|
2015-05-06 04:06:13 +02:00
|
|
|
stateMailbox.$deleteMessages([stateMessage.uid]).then(function() {
|
2015-05-08 21:47:09 +02:00
|
|
|
// Remove message from list of messages
|
2015-07-13 21:22:58 +02:00
|
|
|
var index = _.findIndex(stateMailbox.$messages, function(o) {
|
2015-05-06 04:06:13 +02:00
|
|
|
return o.uid == stateMessage.uid;
|
|
|
|
});
|
2015-07-13 21:22:58 +02:00
|
|
|
if (index != -1)
|
|
|
|
stateMailbox.$messages.splice(index, 1);
|
2015-05-08 21:47:09 +02:00
|
|
|
// Remove message object from scope
|
2015-07-13 21:22:58 +02:00
|
|
|
vm.message = null;
|
2015-05-06 04:06:13 +02:00
|
|
|
$state.go('mail.account.mailbox', { accountId: stateAccount.id, mailboxId: encodeUriFilter(stateMailbox.path) });
|
|
|
|
});
|
2015-07-13 21:22:58 +02:00
|
|
|
}
|
2015-05-06 04:06:13 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
angular
|
|
|
|
.module('SOGo.MailerUI')
|
|
|
|
.controller('MessageController', MessageController);
|
|
|
|
})();
|