(fix) Force a single mail composer dialog
This commit is contained in:
parent
69000a0929
commit
d9d59c6b52
|
@ -8,7 +8,7 @@
|
||||||
*/
|
*/
|
||||||
MailboxController.$inject = ['$state', '$timeout', '$mdDialog', 'stateAccounts', 'stateAccount', 'stateMailbox', 'encodeUriFilter', 'sgFocus', 'Dialog', 'Account', 'Mailbox'];
|
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) {
|
function MailboxController($state, $timeout, $mdDialog, stateAccounts, stateAccount, stateMailbox, encodeUriFilter, focus, Dialog, Account, Mailbox) {
|
||||||
var vm = this;
|
var vm = this, messageDialog = null;
|
||||||
|
|
||||||
Mailbox.selectedFolder = stateMailbox;
|
Mailbox.selectedFolder = stateMailbox;
|
||||||
|
|
||||||
|
@ -127,22 +127,29 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
function newMessage($event) {
|
function newMessage($event) {
|
||||||
var message = vm.account.$newMessage();
|
var message;
|
||||||
|
|
||||||
$mdDialog.show({
|
if (messageDialog === null) {
|
||||||
parent: angular.element(document.body),
|
message = vm.account.$newMessage();
|
||||||
targetEvent: $event,
|
messageDialog = $mdDialog
|
||||||
clickOutsideToClose: false,
|
.show({
|
||||||
escapeToClose: false,
|
parent: angular.element(document.body),
|
||||||
templateUrl: 'UIxMailEditor',
|
targetEvent: $event,
|
||||||
controller: 'MessageEditorController',
|
clickOutsideToClose: false,
|
||||||
controllerAs: 'editor',
|
escapeToClose: false,
|
||||||
locals: {
|
templateUrl: 'UIxMailEditor',
|
||||||
stateAccounts: vm.accounts,
|
controller: 'MessageEditorController',
|
||||||
stateMessage: message,
|
controllerAs: 'editor',
|
||||||
stateRecipients: []
|
locals: {
|
||||||
}
|
stateAccounts: vm.accounts,
|
||||||
});
|
stateMessage: message,
|
||||||
|
stateRecipients: []
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.finally(function() {
|
||||||
|
messageDialog = null;
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
*/
|
*/
|
||||||
MessageController.$inject = ['$scope', '$state', '$mdDialog', 'stateAccounts', 'stateAccount', 'stateMailbox', 'stateMessage', 'encodeUriFilter', 'sgFocus', 'Dialog', 'Account', 'Mailbox', 'Message'];
|
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) {
|
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.accounts = stateAccounts;
|
||||||
vm.account = stateAccount;
|
vm.account = stateAccount;
|
||||||
|
@ -50,24 +50,29 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
function showMailEditor($event, message, recipients) {
|
function showMailEditor($event, message, recipients) {
|
||||||
|
if (messageDialog === null) {
|
||||||
|
if (!angular.isDefined(recipients))
|
||||||
|
recipients = [];
|
||||||
|
|
||||||
if (!angular.isDefined(recipients))
|
messageDialog = $mdDialog
|
||||||
recipients = [];
|
.show({
|
||||||
|
parent: angular.element(document.body),
|
||||||
$mdDialog.show({
|
targetEvent: $event,
|
||||||
parent: angular.element(document.body),
|
clickOutsideToClose: false,
|
||||||
targetEvent: $event,
|
escapeToClose: false,
|
||||||
clickOutsideToClose: false,
|
templateUrl: 'UIxMailEditor',
|
||||||
escapeToClose: false,
|
controller: 'MessageEditorController',
|
||||||
templateUrl: 'UIxMailEditor',
|
controllerAs: 'editor',
|
||||||
controller: 'MessageEditorController',
|
locals: {
|
||||||
controllerAs: 'editor',
|
stateAccounts: vm.accounts,
|
||||||
locals: {
|
stateMessage: message,
|
||||||
stateAccounts: vm.accounts,
|
stateRecipients: recipients
|
||||||
stateMessage: message,
|
}
|
||||||
stateRecipients: recipients
|
})
|
||||||
}
|
.finally(function() {
|
||||||
});
|
messageDialog = null;
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function close() {
|
function close() {
|
||||||
|
|
Loading…
Reference in a new issue