(js) Improve navigation with hotkeys in lists

pull/222/head
Francis Lachapelle 2016-10-03 11:27:57 -04:00
parent b4676ce439
commit 5c8568f14e
2 changed files with 22 additions and 18 deletions

View File

@ -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;

View File

@ -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;