Skip to content

Commit

Permalink
fix(mail): Fix errors while spamming arrow keys on mail list. The tra…
Browse files Browse the repository at this point in the history
…nsition was not finished
  • Loading branch information
WoodySlum committed Mar 19, 2024
1 parent e6ff9a4 commit 049a569
Showing 1 changed file with 41 additions and 6 deletions.
47 changes: 41 additions & 6 deletions UI/WebServerResources/js/Mailer/MailboxController.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@
this.messageDialog = null; // also access from Message controller
this.mode = { search: false, multiple: 0 };
this.allSelected = false;
this.isLoadingMessage = false;
this.nextAction = null;

if (!Mailbox.$virtualMode)
this.selectedFolder.getLabels(); // fetch labels from server
Expand Down Expand Up @@ -289,6 +291,10 @@
* User has pressed up arrow key
*/
function _nextMessage($event) {
if (vm.isLoadingMessage) {
vm.nextAction = { m: _nextMessage, p: $event };
}

var index = vm.selectedFolder.$selectedMessageIndex();

if (angular.isDefined(index)) {
Expand All @@ -302,7 +308,7 @@
vm.selectedFolder.$topIndex = vm.selectedFolder.getLength();
}

if (index > -1)
if (index > -1 && !vm.isLoadingMessage)
vm.selectMessage(vm.selectedFolder.getItemAtIndex(index));

$event.preventDefault();
Expand All @@ -314,6 +320,10 @@
* User has pressed the down arrow key
*/
function _previousMessage($event) {
if (vm.isLoadingMessage) {
vm.nextAction = { m: _previousMessage, p: $event };
}

var index = vm.selectedFolder.$selectedMessageIndex();

if (angular.isDefined(index)) {
Expand All @@ -325,7 +335,7 @@
// No message is selected, show newest
index = 0;

if (index < vm.selectedFolder.getLength())
if (index < vm.selectedFolder.getLength() && !vm.isLoadingMessage)
vm.selectMessage(vm.selectedFolder.getItemAtIndex(index));
else
index = -1;
Expand Down Expand Up @@ -370,10 +380,35 @@
}

this.selectMessage = function(message) {
if (Mailbox.$virtualMode)
$state.go('mail.account.virtualMailbox.message', {mailboxId: encodeUriFilter(encodeUriFilter(message.$mailbox.path)), messageId: message.uid});
else
$state.go('mail.account.mailbox.message', {mailboxId: encodeUriFilter(encodeUriFilter(message.$mailbox.path)), messageId: message.uid});
if (Mailbox.$virtualMode) {
vm.isLoadingMessage = true;
$state.go('mail.account.virtualMailbox.message', { mailboxId: encodeUriFilter(encodeUriFilter(message.$mailbox.path)), messageId: message.uid }).then(function () {

}).catch((err) => {
console.error(err);
})
.finally(() => {
vm.isLoadingMessage = false;
if (vm.nextAction) {
vm.nextAction.m(vm.nextAction.p);
vm.nextAction = null;
}
});
} else {
vm.isLoadingMessage = true;
$state.go('mail.account.mailbox.message', { mailboxId: encodeUriFilter(encodeUriFilter(message.$mailbox.path)), messageId: message.uid }).then(function () {

}).catch((err) => {
console.error(err);
})
.finally(() => {
vm.isLoadingMessage = false;
if (vm.nextAction) {
vm.nextAction.m(vm.nextAction.p);
vm.nextAction = null;
}
});
}
};

this.toggleMessageSelection = function($event, message) {
Expand Down

0 comments on commit 049a569

Please sign in to comment.