1
0
mirror of https://git.tt-rss.org/git/tt-rss.git synced 2025-12-21 22:01:32 +00:00

implement j/k hotkeys to move between feeds (closes #292)

This commit is contained in:
Andrew Dolgov
2011-01-15 20:14:45 +03:00
parent 8fc26c419b
commit 69de6b46b2
3 changed files with 60 additions and 3 deletions

View File

@@ -52,6 +52,55 @@ dojo.declare("fox.FeedStoreModel", dijit.tree.ForestStoreModel, {
if (treeItem) if (treeItem)
return this.store.setValue(treeItem, key, value); 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) { getNextUnreadFeed: function (feed, is_cat) {
if (is_cat) { if (is_cat) {
treeItem = this.store._itemsByIdentity['CAT:' + feed]; treeItem = this.store._itemsByIdentity['CAT:' + feed];

View File

@@ -5,7 +5,7 @@
<h2><?php echo __("Navigation") ?></h2> <h2><?php echo __("Navigation") ?></h2>
<table> <table>
<!-- <tr><td class='n'>j/k</td><td><?php echo __("Move between feeds") ?></td></tr> --> <tr><td class='n'>j/k</td><td><?php echo __("Move between feeds") ?></td></tr>
<tr><td class='n'>n/p</td><td><?php echo __("Move between articles") ?></td></tr> <tr><td class='n'>n/p</td><td><?php echo __("Move between articles") ?></td></tr>
<tr><td class='n'>/</td><td><?php echo __("Show search dialog") ?></td></tr> <tr><td class='n'>/</td><td><?php echo __("Show search dialog") ?></td></tr>
</table> </table>

View File

@@ -704,12 +704,20 @@ function hotkey_handler(e) {
} }
if (keycode == 74) { // j if (keycode == 74) { // j
// TODO: move to previous feed var rv = dijit.byId("feedTree").model.getPreviousFeed(
getActiveFeedId(), activeFeedIsCat());
if (rv) viewfeed(rv[0], '', rv[1]);
return; return;
} }
if (keycode == 75) { // k if (keycode == 75) { // k
// TODO: move to next feed var rv = dijit.byId("feedTree").model.getNextFeed(
getActiveFeedId(), activeFeedIsCat());
if (rv) viewfeed(rv[0], '', rv[1]);
return; return;
} }