From 5b31ab2f8b908601dbc11ff7d21c04004579e9ec Mon Sep 17 00:00:00 2001 From: Risto Kankkunen Date: Tue, 21 May 2013 21:08:44 +0300 Subject: [PATCH] Refactor {open,focus}{Next,Previous}Entry(). --HG-- extra : amend_source : f7cbe276ddab8b0838736dc8df4400fb4aebd21f --- src/main/webapp/js/controllers.js | 87 ++++++++++++------------------- 1 file changed, 32 insertions(+), 55 deletions(-) diff --git a/src/main/webapp/js/controllers.js b/src/main/webapp/js/controllers.js index 04f4d1e5..dc86375f 100644 --- a/src/main/webapp/js/controllers.js +++ b/src/main/webapp/js/controllers.js @@ -642,85 +642,62 @@ function($scope, $stateParams, $http, $route, $window, EntryService, SettingsSer } }; - var openNextEntry = function(event) { - var entry = null; - if ($scope.current) { - var index; - for ( var i = 0; i < $scope.entries.length; i++) { - if ($scope.current == $scope.entries[i]) { - index = i; - break; - } + var _currentIndex = function() { + if (!$scope.current) { + return -1; + } + for (var i = 0; i < $scope.entries.length; i++) { + if ($scope.current == $scope.entries[i]) { + return i; } + } + return -1; + }; + + var _getNextEntry = function() { + var index = _currentIndex(); + if (index >= 0) { index = index + 1; if (index < $scope.entries.length) { - entry = $scope.entries[index]; + return $scope.entries[index]; } } 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) { $scope.entryClicked(entry, event); } }; var openPreviousEntry = function(event) { - var entry = null; - 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]; - } - } + var entry = _getPreviousEntry(); if (entry) { $scope.entryClicked(entry, event); } }; var focusNextEntry = function(event) { - var entry = null; - 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]; - } + var entry = _getNextEntry(); if (entry) { $scope.current = entry; } }; var focusPreviousEntry = function(event) { - var entry = null; - 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]; - } - } + var entry = _getPreviousEntry(); if (entry) { $scope.current = entry; }