From 69de6b46b2eba1a02808fcb420745e985e97dbbb Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Sat, 15 Jan 2011 20:14:45 +0300 Subject: implement j/k hotkeys to move between feeds (closes #292) --- FeedTree.js | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) (limited to 'FeedTree.js') diff --git a/FeedTree.js b/FeedTree.js index 26629e8ce..a0d4fc7ea 100644 --- a/FeedTree.js +++ b/FeedTree.js @@ -52,6 +52,55 @@ dojo.declare("fox.FeedStoreModel", dijit.tree.ForestStoreModel, { if (treeItem) return this.store.setValue(treeItem, key, value); }, + getNextFeed: function (feed, is_cat) { + if (is_cat) { + treeItem = this.store._itemsByIdentity['CAT:' + feed]; + } else { + treeItem = this.store._itemsByIdentity['FEED:' + feed]; + } + + items = this.store._arrayOfAllItems; + var item = items[0]; + + for (var i = 0; i < items.length; i++) { + if (items[i] == treeItem) { + item = items[i+1]; + break; + } + } + + if (item) { + return [this.store.getValue(item, 'bare_id'), + !this.store.getValue(item, 'id').match('FEED:')]; + } else { + return false; + } + }, + getPreviousFeed: function (feed, is_cat) { + if (is_cat) { + treeItem = this.store._itemsByIdentity['CAT:' + feed]; + } else { + treeItem = this.store._itemsByIdentity['FEED:' + feed]; + } + + items = this.store._arrayOfAllItems; + var item = items[items.length-1]; + + for (var i = 0; i < items.length; i++) { + if (items[i] == treeItem) { + item = items[i-1]; + break; + } + } + + if (item) { + return [this.store.getValue(item, 'bare_id'), + !this.store.getValue(item, 'id').match('FEED:')]; + } else { + return false; + } + }, + getNextUnreadFeed: function (feed, is_cat) { if (is_cat) { treeItem = this.store._itemsByIdentity['CAT:' + feed]; -- cgit v1.2.3-54-g00ecf