From 568f4f7b806a2b5a2a517bf78c395cc582ef678d Mon Sep 17 00:00:00 2001 From: Bernhard Posselt Date: Sun, 14 Sep 2014 20:18:00 +0200 Subject: go through feeds and child feeds of folders --- js/build/app.js | 42 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 38 insertions(+), 4 deletions(-) (limited to 'js/build/app.js') diff --git a/js/build/app.js b/js/build/app.js index b717aa923..fa3bb417b 100644 --- a/js/build/app.js +++ b/js/build/app.js @@ -1662,14 +1662,48 @@ app.service('SettingsResource', ["$http", "BASE_URL", function ($http, BASE_URL) navigationArea.find('.active > a:visible').trigger('click'); }; + var getParentFolder = function (element) { + return element.parent('ul').parent('li:visible'); + }; + + var getChildFeed = function (element) { + return element.children('ul').children('li:visible'); + }; + var nextFeed = function (navigationArea) { - navigationArea.find('.active') - .next('li').children('a:visible').trigger('click'); + var nextElement = navigationArea.find('.active').next('li:visible'); + + // in case the last feed of a folder is reached we need to go up + var parentFolder = getParentFolder(nextElement); + if (nextElement.length === 0 && parentFolder.lenght !== 0) { + nextElement = parentFolder.next('li:visible'); + } + + // if the next element is a folder we have to go down + var childFeed = getChildFeed(nextElement); + if (nextElement.hasClass('folder') && childFeed.length !== 0) { + nextElement = childFeed.next('li:visible'); + } + + nextElement.children('a:visible').trigger('click'); }; var previousFeed = function (navigationArea) { - navigationArea.find('.active').prev('li') - .children('a:visible').trigger('click'); + var previousElement = navigationArea.find('.active').prev('li:visible'); + + // in case the first feed of a folder is reached we need to go up + var parentFolder = getParentFolder(previousElement); + if (previousElement.length === 0 && parentFolder.lenght !== 0) { + previousElement = parentFolder.prev('li:visible'); + } + + // if the previous element is a folder we have to go down + var childFeed = getChildFeed(previousElement); + if (previousElement.hasClass('folder') && childFeed.length !== 0) { + previousElement = childFeed.prev('li:visible'); + } + + previousElement.children('a:visible').trigger('click'); }; var onActiveItem = function (scrollArea, callback) { -- cgit v1.2.3