Refactor {open,focus}{Next,Previous}Entry().

--HG--
extra : amend_source : f7cbe276ddab8b0838736dc8df4400fb4aebd21f
This commit is contained in:
Risto Kankkunen
2013-05-21 21:08:44 +03:00
parent 21b040235f
commit 5b31ab2f8b

View File

@@ -642,85 +642,62 @@ function($scope, $stateParams, $http, $route, $window, EntryService, SettingsSer
} }
}; };
var openNextEntry = function(event) { var _currentIndex = function() {
var entry = null; if (!$scope.current) {
if ($scope.current) { return -1;
var index; }
for ( var i = 0; i < $scope.entries.length; i++) { for (var i = 0; i < $scope.entries.length; i++) {
if ($scope.current == $scope.entries[i]) { if ($scope.current == $scope.entries[i]) {
index = i; return i;
break;
}
} }
}
return -1;
};
var _getNextEntry = function() {
var index = _currentIndex();
if (index >= 0) {
index = index + 1; index = index + 1;
if (index < $scope.entries.length) { if (index < $scope.entries.length) {
entry = $scope.entries[index]; return $scope.entries[index];
} }
} else if ($scope.entries.length > 0) { } else if ($scope.entries.length > 0) {
entry = $scope.entries[0]; return $scope.entries[0];
} }
return null;
};
var _getPreviousEntry = function() {
var index = _currentIndex();
if (index >= 1) {
return $scope.entries[index - 1];
}
return null;
};
var openNextEntry = function(event) {
var entry = _getNextEntry();
if (entry) { if (entry) {
$scope.entryClicked(entry, event); $scope.entryClicked(entry, event);
} }
}; };
var openPreviousEntry = function(event) { var openPreviousEntry = function(event) {
var entry = null; var entry = _getPreviousEntry();
if ($scope.current) {
var index;
for ( var i = 0; i < $scope.entries.length; i++) {
if ($scope.current == $scope.entries[i]) {
index = i;
break;
}
}
index = index - 1;
if (index >= 0) {
entry = $scope.entries[index];
}
}
if (entry) { if (entry) {
$scope.entryClicked(entry, event); $scope.entryClicked(entry, event);
} }
}; };
var focusNextEntry = function(event) { var focusNextEntry = function(event) {
var entry = null; var entry = _getNextEntry();
if ($scope.current) {
var index;
for ( var i = 0; i < $scope.entries.length; i++) {
if ($scope.current == $scope.entries[i]) {
index = i;
break;
}
}
index = index + 1;
if (index < $scope.entries.length) {
entry = $scope.entries[index];
}
} else if ($scope.entries.length > 0) {
entry = $scope.entries[0];
}
if (entry) { if (entry) {
$scope.current = entry; $scope.current = entry;
} }
}; };
var focusPreviousEntry = function(event) { var focusPreviousEntry = function(event) {
var entry = null; var entry = _getPreviousEntry();
if ($scope.current) {
var index;
for ( var i = 0; i < $scope.entries.length; i++) {
if ($scope.current == $scope.entries[i]) {
index = i;
break;
}
}
index = index - 1;
if (index >= 0) {
entry = $scope.entries[index];
}
}
if (entry) { if (entry) {
$scope.current = entry; $scope.current = entry;
} }