diff options
author | Bernhard Posselt <dev@bernhard-posselt.com> | 2014-09-18 16:02:52 +0200 |
---|---|---|
committer | Bernhard Posselt <dev@bernhard-posselt.com> | 2014-09-18 16:02:52 +0200 |
commit | 0d4094334c70476649053e454dfa156bc7f259d9 (patch) | |
tree | 43c1eecbc4140147b189afca36888da10e8605a6 /js/gui | |
parent | 21dfea9de4ec40ab31a24608d573c5137e37ceea (diff) |
fix keyboard shortcuts when folder active
Diffstat (limited to 'js/gui')
-rw-r--r-- | js/gui/KeyboardShortcuts.js | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/js/gui/KeyboardShortcuts.js b/js/gui/KeyboardShortcuts.js index d9074fdcc..dcacaf580 100644 --- a/js/gui/KeyboardShortcuts.js +++ b/js/gui/KeyboardShortcuts.js @@ -38,11 +38,27 @@ 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) { @@ -61,6 +77,27 @@ 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) { |