diff options
author | Bernhard Posselt <dev@bernhard-posselt.com> | 2014-09-14 20:55:03 +0200 |
---|---|---|
committer | Bernhard Posselt <dev@bernhard-posselt.com> | 2014-09-14 20:55:03 +0200 |
commit | 3d04a9ae9c1d811b9e2204d7651e948c6641e1fb (patch) | |
tree | c6ee1bb5382a2d3d39516438a2a6e0ee3d686b6e /js/build/app.js | |
parent | 8b8da49d79b915dc79ab4f388c9223e889237d65 (diff) |
implement jump to next feed source, fix #414
Diffstat (limited to 'js/build/app.js')
-rw-r--r-- | js/build/app.js | 55 |
1 files changed, 22 insertions, 33 deletions
diff --git a/js/build/app.js b/js/build/app.js index ee0cbfc22..8198cd7d5 100644 --- a/js/build/app.js +++ b/js/build/app.js @@ -1662,49 +1662,38 @@ 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('.folder:visible'); - }; - - var getChildFeed = function (element) { - return element.children('ul').children('.feed:visible'); - }; - var nextFeed = function (navigationArea) { - var nextElement = navigationArea.find('.active').next('li:visible'); + var current = navigationArea.find('.active'); + var elements = navigationArea.find('.subscriptions:visible,' + + '.starred:visible,' + + '.feed: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'); - } + for (var i=0; i<elements.length-1; i+=1) { + var element = elements[i]; - // 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'); + if (element === current[0]) { + var next = elements[i+1]; + $(next).children('a:visible').trigger('click'); + break; + } } - - nextElement.children('a:visible').trigger('click'); }; var previousFeed = function (navigationArea) { - var previousElement = navigationArea.find('.active').prev('li:visible'); + var current = navigationArea.find('.active'); + var elements = navigationArea.find('.subscriptions:visible,' + + '.starred:visible,' + + '.feed: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'); - } + for (var i=elements.length-1; i>0; i-=1) { + var element = elements[i]; - // if the previous element is a folder we have to go down - var childFeed = getChildFeed(previousElement); - if (previousElement.hasClass('folder') && childFeed.length !== 0) { - // fixme: last child - previousElement = childFeed.prev('li:visible:last-child'); + if (element === current[0]) { + var previous = elements[i-1]; + $(previous).children('a:visible').trigger('click'); + break; + } } - - previousElement.children('a:visible').trigger('click'); }; var onActiveItem = function (scrollArea, callback) { |