From 5c8568f14e04c4fc7dec05c93913b76676a223e2 Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Mon, 3 Oct 2016 11:27:57 -0400 Subject: [PATCH] (js) Improve navigation with hotkeys in lists --- .../js/Contacts/AddressBookController.js | 20 ++++++++++--------- .../js/Mailer/MailboxController.js | 20 ++++++++++--------- 2 files changed, 22 insertions(+), 18 deletions(-) diff --git a/UI/WebServerResources/js/Contacts/AddressBookController.js b/UI/WebServerResources/js/Contacts/AddressBookController.js index 8b1830529..14d9a172a 100644 --- a/UI/WebServerResources/js/Contacts/AddressBookController.js +++ b/UI/WebServerResources/js/Contacts/AddressBookController.js @@ -118,18 +118,20 @@ function _nextCard($event) { var index = vm.selectedFolder.$selectedCardIndex(); - if (angular.isDefined(index)) + if (angular.isDefined(index)) { index--; - else + if (vm.selectedFolder.$topIndex > 0) + vm.selectedFolder.$topIndex--; + } + else { // No message is selected, show oldest message index = vm.selectedFolder.$cards.length() - 1; + vm.selectedFolder.$topIndex = vm.selectedFolder.getLength(); + } if (index > -1) selectCard(vm.selectedFolder.$cards[index]); - if (vm.selectedFolder.$topIndex > 0) - vm.selectedFolder.$topIndex--; - $event.preventDefault(); return index; @@ -141,8 +143,11 @@ function _previousCard($event) { var index = vm.selectedFolder.$selectedCardIndex(); - if (angular.isDefined(index)) + if (angular.isDefined(index)) { index++; + if (vm.selectedFolder.$topIndex < vm.selectedFolder.$cards.length) + vm.selectedFolder.$topIndex++; + } else // No message is selected, show newest index = 0; @@ -152,9 +157,6 @@ else index = -1; - if (vm.selectedFolder.$topIndex < vm.selectedFolder.$cards.length) - vm.selectedFolder.$topIndex++; - $event.preventDefault(); return index; diff --git a/UI/WebServerResources/js/Mailer/MailboxController.js b/UI/WebServerResources/js/Mailer/MailboxController.js index fc5d241ed..f77239bde 100644 --- a/UI/WebServerResources/js/Mailer/MailboxController.js +++ b/UI/WebServerResources/js/Mailer/MailboxController.js @@ -173,18 +173,20 @@ function _nextMessage($event) { var index = vm.selectedFolder.$selectedMessageIndex(); - if (angular.isDefined(index)) + if (angular.isDefined(index)) { index--; - else + if (vm.selectedFolder.$topIndex > 0) + vm.selectedFolder.$topIndex--; + } + else { // No message is selected, show oldest message index = vm.selectedFolder.getLength() - 1; + vm.selectedFolder.$topIndex = vm.selectedFolder.getLength(); + } if (index > -1) selectMessage(vm.selectedFolder.$messages[index]); - if (vm.selectedFolder.$topIndex > 0) - vm.selectedFolder.$topIndex--; - $event.preventDefault(); return index; @@ -196,8 +198,11 @@ function _previousMessage($event) { var index = vm.selectedFolder.$selectedMessageIndex(); - if (angular.isDefined(index)) + if (angular.isDefined(index)) { index++; + if (vm.selectedFolder.$topIndex < vm.selectedFolder.getLength()) + vm.selectedFolder.$topIndex++; + } else // No message is selected, show newest index = 0; @@ -207,9 +212,6 @@ else index = -1; - if (vm.selectedFolder.$topIndex < vm.selectedFolder.getLength()) - vm.selectedFolder.$topIndex++; - $event.preventDefault(); return index;