From abe07857890f025343e7eac5bc19bfeee39048fa Mon Sep 17 00:00:00 2001 From: Athou Date: Sun, 9 Jun 2013 11:21:57 +0200 Subject: [PATCH] force load more items when focusing the last item in the list, the infinite scroll does not trigger if the last article is too long --- src/main/webapp/js/controllers.js | 95 ++++++++++++++++--------------- 1 file changed, 50 insertions(+), 45 deletions(-) diff --git a/src/main/webapp/js/controllers.js b/src/main/webapp/js/controllers.js index 9a944f68..48acbda8 100644 --- a/src/main/webapp/js/controllers.js +++ b/src/main/webapp/js/controllers.js @@ -763,52 +763,7 @@ function($scope, $stateParams, $http, $route, $window, EntryService, SettingsSer }); } }; - - $scope.isOpen = SettingsService.settings.viewMode == 'expanded'; - var openEntry = function(entry, event) { - if (event && event.which === 3) { - // right click - return; - } - - if (!event || (!event.ctrlKey && event.which != 2)) { - if ($scope.current != entry || SettingsService.settings.viewMode == 'expanded') { - $scope.isOpen = true; - } else { - $scope.isOpen = !$scope.isOpen; - } - if ($scope.isOpen) { - $scope.mark(entry, true); - } - $scope.current = entry; - if (event) { - event.preventDefault(); - event.stopPropagation(); - } - } else { - $scope.mark(entry, true); - } - }; - - $scope.entryClicked = function(entry, event) { - $scope.navigationMode = 'click'; - openEntry(entry, event); - }; - - $scope.bodyClicked = function(entry, event) { - if (SettingsService.settings.viewMode == 'expanded' && $scope.current != entry) { - $scope.entryClicked(entry, event); - } - }; - - $scope.noop = function(event) { - if (!event.ctrlKey && event.which != 2) { - event.preventDefault(); - event.stopPropagation(); - } - }; - var getCurrentIndex = function() { var index = -1; if ($scope.current) { @@ -871,6 +826,56 @@ function($scope, $stateParams, $http, $route, $window, EntryService, SettingsSer } }; + $scope.isOpen = SettingsService.settings.viewMode == 'expanded'; + + var openEntry = function(entry, event) { + + if (event && event.which === 3) { + // right click + return; + } + + if (!event || (!event.ctrlKey && event.which != 2)) { + if ($scope.current != entry || SettingsService.settings.viewMode == 'expanded') { + $scope.isOpen = true; + } else { + $scope.isOpen = !$scope.isOpen; + } + if ($scope.isOpen) { + $scope.mark(entry, true); + } + $scope.current = entry; + if (event) { + event.preventDefault(); + event.stopPropagation(); + } + } else { + $scope.mark(entry, true); + } + + if (getCurrentIndex() == $scope.entries.length - 1) { + $scope.loadMoreEntries(); + } + }; + + $scope.entryClicked = function(entry, event) { + $scope.navigationMode = 'click'; + openEntry(entry, event); + }; + + $scope.bodyClicked = function(entry, event) { + if (SettingsService.settings.viewMode == 'expanded' && $scope.current != entry) { + $scope.entryClicked(entry, event); + } + }; + + $scope.noop = function(event) { + if (!event.ctrlKey && event.which != 2) { + event.preventDefault(); + event.stopPropagation(); + } + }; + $scope.onScroll = function(entry) { $scope.navigationMode = 'scroll'; if (SettingsService.settings.viewMode == 'expanded') {