mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-05-12 15:05:29 +00:00
(js) Compose new message in a popup window
This commit is contained in:
@@ -6,8 +6,8 @@
|
||||
/**
|
||||
* @ngInject
|
||||
*/
|
||||
MailboxController.$inject = ['$window', '$scope', '$timeout', '$q', '$state', '$mdDialog', '$mdToast', 'stateAccounts', 'stateAccount', 'stateMailbox', 'sgHotkeys', 'encodeUriFilter', 'sgFocus', 'Dialog', 'Account', 'Mailbox'];
|
||||
function MailboxController($window, $scope, $timeout, $q, $state, $mdDialog, $mdToast, stateAccounts, stateAccount, stateMailbox, sgHotkeys, encodeUriFilter, focus, Dialog, Account, Mailbox) {
|
||||
MailboxController.$inject = ['$window', '$scope', '$timeout', '$q', '$state', '$mdDialog', '$mdToast', 'stateAccounts', 'stateAccount', 'stateMailbox', 'sgHotkeys', 'encodeUriFilter', 'sgSettings', 'sgFocus', 'Dialog', 'Account', 'Mailbox'];
|
||||
function MailboxController($window, $scope, $timeout, $q, $state, $mdDialog, $mdToast, stateAccounts, stateAccount, stateMailbox, sgHotkeys, encodeUriFilter, sgSettings, focus, Dialog, Account, Mailbox) {
|
||||
var vm = this,
|
||||
defaultWindowTitle = angular.element($window.document).find('title').attr('sg-default') || "SOGo",
|
||||
hotkeys = [];
|
||||
@@ -156,32 +156,59 @@
|
||||
});
|
||||
}
|
||||
|
||||
function newMessage($event) {
|
||||
function newMessage($event, inPopup) {
|
||||
var message;
|
||||
|
||||
if (vm.messageDialog === null) {
|
||||
message = vm.account.$newMessage();
|
||||
vm.messageDialog = $mdDialog
|
||||
.show({
|
||||
parent: angular.element(document.body),
|
||||
targetEvent: $event,
|
||||
clickOutsideToClose: false,
|
||||
escapeToClose: false,
|
||||
templateUrl: 'UIxMailEditor',
|
||||
controller: 'MessageEditorController',
|
||||
controllerAs: 'editor',
|
||||
locals: {
|
||||
stateAccount: vm.account,
|
||||
stateMessage: message,
|
||||
stateRecipients: []
|
||||
}
|
||||
})
|
||||
.finally(function() {
|
||||
vm.messageDialog = null;
|
||||
});
|
||||
if (inPopup)
|
||||
_newMessageInPopup();
|
||||
else {
|
||||
message = vm.account.$newMessage();
|
||||
vm.messageDialog = $mdDialog
|
||||
.show({
|
||||
parent: angular.element(document.body),
|
||||
targetEvent: $event,
|
||||
clickOutsideToClose: false,
|
||||
escapeToClose: false,
|
||||
templateUrl: 'UIxMailEditor',
|
||||
controller: 'MessageEditorController',
|
||||
controllerAs: 'editor',
|
||||
locals: {
|
||||
stateAccount: vm.account,
|
||||
stateMessage: message
|
||||
}
|
||||
})
|
||||
.finally(function() {
|
||||
vm.messageDialog = null;
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function _newMessageInPopup() {
|
||||
var url = [sgSettings.baseURL(),
|
||||
'UIxMailPopupView#!/Mail',
|
||||
vm.account.id,
|
||||
// The double-encoding is necessary
|
||||
encodeUriFilter(encodeUriFilter(vm.selectedFolder.path)),
|
||||
'new']
|
||||
.join('/'),
|
||||
wId = vm.selectedFolder.$id() + '/' + Math.random(0, 1000);
|
||||
console.debug(url);
|
||||
$window.open(url, wId,
|
||||
["width=680",
|
||||
"height=520",
|
||||
"resizable=1",
|
||||
"scrollbars=1",
|
||||
"toolbar=0",
|
||||
"location=0",
|
||||
"directories=0",
|
||||
"status=0",
|
||||
"menubar=0",
|
||||
"copyhistory=0"]
|
||||
.join(','));
|
||||
}
|
||||
|
||||
/**
|
||||
* User has pressed up arrow key
|
||||
*/
|
||||
|
||||
@@ -215,8 +215,8 @@
|
||||
/**
|
||||
* @ngInject
|
||||
*/
|
||||
MessageEditorControllerPopup.$inject = ['$window', '$mdDialog', 'stateAccounts', 'stateMessage'];
|
||||
function MessageEditorControllerPopup($window, $mdDialog, stateAccounts, stateMessage) {
|
||||
MessageEditorControllerPopup.$inject = ['$window', '$mdDialog', 'stateAccount', 'stateMessage'];
|
||||
function MessageEditorControllerPopup($window, $mdDialog, stateAccount, stateMessage) {
|
||||
$mdDialog
|
||||
.show({
|
||||
hasBackdrop: false,
|
||||
@@ -227,9 +227,8 @@
|
||||
controller: 'MessageEditorController',
|
||||
controllerAs: 'editor',
|
||||
locals: {
|
||||
stateAccounts: stateAccounts,
|
||||
stateMessage: stateMessage,
|
||||
stateRecipients: []
|
||||
stateAccount: stateAccount,
|
||||
stateMessage: stateMessage
|
||||
}
|
||||
})
|
||||
.finally(function() {
|
||||
|
||||
@@ -284,22 +284,22 @@
|
||||
_messageDialog(
|
||||
$mdDialog
|
||||
.show({
|
||||
parent: angular.element(document.body),
|
||||
targetEvent: $event,
|
||||
clickOutsideToClose: false,
|
||||
escapeToClose: false,
|
||||
templateUrl: 'UIxMailEditor',
|
||||
controller: 'MessageEditorController',
|
||||
controllerAs: 'editor',
|
||||
locals: {
|
||||
stateAccount: vm.account,
|
||||
stateMessage: message
|
||||
}
|
||||
})
|
||||
.finally(function() {
|
||||
_messageDialog(null);
|
||||
closePopup();
|
||||
})
|
||||
parent: angular.element(document.body),
|
||||
targetEvent: $event,
|
||||
clickOutsideToClose: false,
|
||||
escapeToClose: false,
|
||||
templateUrl: 'UIxMailEditor',
|
||||
controller: 'MessageEditorController',
|
||||
controllerAs: 'editor',
|
||||
locals: {
|
||||
stateAccount: vm.account,
|
||||
stateMessage: message
|
||||
}
|
||||
})
|
||||
.finally(function() {
|
||||
_messageDialog(null);
|
||||
closePopup();
|
||||
})
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user