diff options
Diffstat (limited to 'js/build/app.js')
-rw-r--r-- | js/build/app.js | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/js/build/app.js b/js/build/app.js index 2ff1f68f2..30d2fa558 100644 --- a/js/build/app.js +++ b/js/build/app.js @@ -1687,11 +1687,27 @@ app.service('SettingsResource', ["$http", "BASE_URL", function ($http, BASE_URL) navigationArea.find('.active > a:visible').trigger('click'); }; + var nextFeed = function (navigationArea) { var current = navigationArea.find('.active'); var elements = navigationArea.find('.subscriptions:visible,' + '.starred:visible,' + '.feed:visible'); + + if (current.hasClass('folder')) { + while (current.length > 0) { + var subfeeds = current.find('.feed:visible'); + if (subfeeds.length > 0) { + $(subfeeds[0]).children('a:visible').trigger('click'); + return; + } + current = current.next('.folder'); + } + + // no subfeed found + return; + } + // FIXME: O(n) runtime. If someone creates a nice and not fugly solution // please create a PR for (var i=0; i<elements.length-1; i+=1) { @@ -1710,6 +1726,27 @@ app.service('SettingsResource', ["$http", "BASE_URL", function ($http, BASE_URL) var elements = navigationArea.find('.subscriptions:visible,' + '.starred:visible,' + '.feed:visible'); + + if (current.hasClass('folder')) { + current = current.prev('.folder'); + while (current.length > 0) { + var subfeeds = current.find('.feed:visible'); + if (subfeeds.length > 0) { + $(subfeeds[subfeeds.length-1]) + .children('a:visible').trigger('click'); + return; + } + } + + // no subfeed found + var starred = $('.starred:visible'); + if (starred.length > 0) { + starred.children('a:visible').trigger('click'); + } + + return; + } + // FIXME: O(n) runtime. If someone creates a nice and not fugly solution // please create a PR for (var i=elements.length-1; i>0; i-=1) { |