Skip to content

Commit

Permalink
fix(mail(js)): don't load mailboxes list from popup editor
Browse files Browse the repository at this point in the history
  • Loading branch information
cgx committed Nov 24, 2021
1 parent 11eb6c2 commit cb6b729
Showing 1 changed file with 30 additions and 15 deletions.
45 changes: 30 additions & 15 deletions UI/WebServerResources/js/Mailer/Mailer.popup.js
Expand Up @@ -130,19 +130,15 @@
/**
* @ngInject
*/
stateAccount.$inject = ['$stateParams', 'stateAccounts'];
function stateAccount($stateParams, stateAccounts) {
var account, mailboxes;
stateAccount.$inject = ['$q', '$stateParams', 'stateAccounts'];
function stateAccount($q, $stateParams, stateAccounts) {
var account;

account = _.find(stateAccounts, function(account) {
return account.id == $stateParams.accountId;
});
if (account) {
// Fetch mailboxes
mailboxes = account.$getMailboxes();
return mailboxes.then(function () {
return account;
});
return $q.when(account);
}
else {
// Account not found
Expand All @@ -153,12 +149,24 @@
/**
* @ngInject
*/
stateMailbox.$inject = ['$q', '$state', '$stateParams', 'stateAccount', 'decodeUriFilter', 'Mailbox'];
function stateMailbox($q, $state, $stateParams, stateAccount, decodeUriFilter, Mailbox) {
var mailbox,
stateMailbox.$inject = ['$q', '$window', '$state', '$stateParams', 'stateAccount', 'decodeUriFilter', 'Mailbox'];
function stateMailbox($q, $window, $state, $stateParams, stateAccount, decodeUriFilter, Mailbox) {
var mailbox = null,
futureMailbox = null,
mailboxId = decodeUriFilter($stateParams.mailboxId),
_find;

if ($window.opener) {
if ('$mailboxController' in $window.opener &&
'selectedFolder' in $window.opener.$mailboxController &&
'account' in $window.opener.$mailboxController &&
$window.opener.$mailboxController.account.id == stateAccount.id &&
$window.opener.$mailboxController.selectedFolder.path == mailboxId) {
// The message mailbox is opened in the parent window
mailbox = $window.opener.$mailboxController.selectedFolder;
}
}

// Recursive find function
_find = function(mailboxes) {
var mailbox = _.find(mailboxes, function(o) {
Expand All @@ -174,16 +182,23 @@
return mailbox;
};

mailbox = _find(stateAccount.$mailboxes);

if (mailbox) {
futureMailbox = $q.when(mailbox);
}
else {
futureMailbox = stateAccount.$getMailboxes().then(function(mailboxes) {
return _find(mailboxes);
});
}

return futureMailbox.then(function(mailbox) {
mailbox.$topIndex = 0;
mailbox.selectFolder();
return mailbox;
}
else
}, function() {
// Mailbox not found
return $q.reject("Mailbox " + mailboxId + " doesn't exist");
});
}

/**
Expand Down

0 comments on commit cb6b729

Please sign in to comment.