summaryrefslogtreecommitdiffstats
path: root/js/gui
diff options
context:
space:
mode:
authorBernhard Posselt <dev@bernhard-posselt.com>2014-09-18 16:02:52 +0200
committerBernhard Posselt <dev@bernhard-posselt.com>2014-09-18 16:02:52 +0200
commit0d4094334c70476649053e454dfa156bc7f259d9 (patch)
tree43c1eecbc4140147b189afca36888da10e8605a6 /js/gui
parent21dfea9de4ec40ab31a24608d573c5137e37ceea (diff)
fix keyboard shortcuts when folder active
Diffstat (limited to 'js/gui')
-rw-r--r--js/gui/KeyboardShortcuts.js37
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) {