(fix) Force a single mail composer dialog

pull/105/head
Francis Lachapelle 2015-08-26 21:22:39 -04:00
parent 69000a0929
commit d9d59c6b52
2 changed files with 46 additions and 34 deletions

View File

@ -8,7 +8,7 @@
*/
MailboxController.$inject = ['$state', '$timeout', '$mdDialog', 'stateAccounts', 'stateAccount', 'stateMailbox', 'encodeUriFilter', 'sgFocus', 'Dialog', 'Account', 'Mailbox'];
function MailboxController($state, $timeout, $mdDialog, stateAccounts, stateAccount, stateMailbox, encodeUriFilter, focus, Dialog, Account, Mailbox) {
var vm = this;
var vm = this, messageDialog = null;
Mailbox.selectedFolder = stateMailbox;
@ -127,22 +127,29 @@
}
function newMessage($event) {
var message = vm.account.$newMessage();
var message;
$mdDialog.show({
parent: angular.element(document.body),
targetEvent: $event,
clickOutsideToClose: false,
escapeToClose: false,
templateUrl: 'UIxMailEditor',
controller: 'MessageEditorController',
controllerAs: 'editor',
locals: {
stateAccounts: vm.accounts,
stateMessage: message,
stateRecipients: []
}
});
if (messageDialog === null) {
message = vm.account.$newMessage();
messageDialog = $mdDialog
.show({
parent: angular.element(document.body),
targetEvent: $event,
clickOutsideToClose: false,
escapeToClose: false,
templateUrl: 'UIxMailEditor',
controller: 'MessageEditorController',
controllerAs: 'editor',
locals: {
stateAccounts: vm.accounts,
stateMessage: message,
stateRecipients: []
}
})
.finally(function() {
messageDialog = null;
});
}
}
}

View File

@ -8,7 +8,7 @@
*/
MessageController.$inject = ['$scope', '$state', '$mdDialog', 'stateAccounts', 'stateAccount', 'stateMailbox', 'stateMessage', 'encodeUriFilter', 'sgFocus', 'Dialog', 'Account', 'Mailbox', 'Message'];
function MessageController($scope, $state, $mdDialog, stateAccounts, stateAccount, stateMailbox, stateMessage, encodeUriFilter, focus, Dialog, Account, Mailbox, Message) {
var vm = this;
var vm = this, messageDialog = null;
vm.accounts = stateAccounts;
vm.account = stateAccount;
@ -50,24 +50,29 @@
}
function showMailEditor($event, message, recipients) {
if (messageDialog === null) {
if (!angular.isDefined(recipients))
recipients = [];
if (!angular.isDefined(recipients))
recipients = [];
$mdDialog.show({
parent: angular.element(document.body),
targetEvent: $event,
clickOutsideToClose: false,
escapeToClose: false,
templateUrl: 'UIxMailEditor',
controller: 'MessageEditorController',
controllerAs: 'editor',
locals: {
stateAccounts: vm.accounts,
stateMessage: message,
stateRecipients: recipients
}
});
messageDialog = $mdDialog
.show({
parent: angular.element(document.body),
targetEvent: $event,
clickOutsideToClose: false,
escapeToClose: false,
templateUrl: 'UIxMailEditor',
controller: 'MessageEditorController',
controllerAs: 'editor',
locals: {
stateAccounts: vm.accounts,
stateMessage: message,
stateRecipients: recipients
}
})
.finally(function() {
messageDialog = null;
});
}
}
function close() {