summaryrefslogtreecommitdiffstats
path: root/js/gui
diff options
context:
space:
mode:
authorBernhard Posselt <dev@bernhard-posselt.com>2014-09-14 20:55:03 +0200
committerBernhard Posselt <dev@bernhard-posselt.com>2014-09-14 20:55:03 +0200
commit3d04a9ae9c1d811b9e2204d7651e948c6641e1fb (patch)
treec6ee1bb5382a2d3d39516438a2a6e0ee3d686b6e /js/gui
parent8b8da49d79b915dc79ab4f388c9223e889237d65 (diff)
implement jump to next feed source, fix #414
Diffstat (limited to 'js/gui')
-rw-r--r--js/gui/KeyboardShortcuts.js63
1 files changed, 26 insertions, 37 deletions
diff --git a/js/gui/KeyboardShortcuts.js b/js/gui/KeyboardShortcuts.js
index b5944bb26..6c17f54e0 100644
--- a/js/gui/KeyboardShortcuts.js
+++ b/js/gui/KeyboardShortcuts.js
@@ -38,49 +38,38 @@
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');
-
- // 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');
+ var current = navigationArea.find('.active');
+ var elements = navigationArea.find('.subscriptions:visible,' +
+ '.starred:visible,' +
+ '.feed:visible');
+
+ for (var i=0; i<elements.length-1; i+=1) {
+ var element = elements[i];
+
+ 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');
-
- // 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) {
- // fixme: last child
- previousElement = childFeed.prev('li:visible:last-child');
+ var current = navigationArea.find('.active');
+ var elements = navigationArea.find('.subscriptions:visible,' +
+ '.starred:visible,' +
+ '.feed:visible');
+
+ for (var i=elements.length-1; i>0; i-=1) {
+ var element = elements[i];
+
+ 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) {