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:
49
FeedTree.js
49
FeedTree.js
@@ -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];
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
12
tt-rss.js
12
tt-rss.js
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user