mirror of
https://github.com/nkanaev/yarr.git
synced 2025-11-07 18:09:36 +00:00
Compare commits
2 Commits
4b3a278679
...
72a1930b9e
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
72a1930b9e | ||
|
|
e339354cc9 |
@@ -143,10 +143,8 @@
|
|||||||
</label>
|
</label>
|
||||||
<div v-for="folder in foldersWithFeeds">
|
<div v-for="folder in foldersWithFeeds">
|
||||||
<label class="selectgroup mt-1"
|
<label class="selectgroup mt-1"
|
||||||
:class="{'d-none': filterSelected
|
:class="{'d-none': mustHideFolder(folder)}"
|
||||||
&& !(current.folder.id == folder.id || current.feed.folder_id == folder.id)
|
v-if="folder.id">
|
||||||
&& !filteredFolderStats[folder.id]
|
|
||||||
&& (!itemSelectedDetails || (feedsById[itemSelectedDetails.feed_id] || {}).folder_id != folder.id)}">
|
|
||||||
<input type="radio" name="feed" :value="'folder:'+folder.id" v-model="feedSelected" v-if="folder.id">
|
<input type="radio" name="feed" :value="'folder:'+folder.id" v-model="feedSelected" v-if="folder.id">
|
||||||
<div class="selectgroup-label d-flex align-items-center w-100" v-if="folder.id">
|
<div class="selectgroup-label d-flex align-items-center w-100" v-if="folder.id">
|
||||||
<span class="icon mr-2"
|
<span class="icon mr-2"
|
||||||
@@ -160,10 +158,7 @@
|
|||||||
</label>
|
</label>
|
||||||
<div v-show="!folder.id || folder.is_expanded" class="mt-1" :class="{'pl-3': folder.id}">
|
<div v-show="!folder.id || folder.is_expanded" class="mt-1" :class="{'pl-3': folder.id}">
|
||||||
<label class="selectgroup"
|
<label class="selectgroup"
|
||||||
:class="{'d-none': filterSelected
|
:class="{'d-none': mustHideFeed(feed)}"
|
||||||
&& !(current.feed.id == feed.id)
|
|
||||||
&& !filteredFeedStats[feed.id]
|
|
||||||
&& (!itemSelectedDetails || itemSelectedDetails.feed_id != feed.id)}"
|
|
||||||
v-for="feed in folder.feeds">
|
v-for="feed in folder.feeds">
|
||||||
<input type="radio" name="feed" :value="'feed:'+feed.id" v-model="feedSelected">
|
<input type="radio" name="feed" :value="'feed:'+feed.id" v-model="feedSelected">
|
||||||
<div class="selectgroup-label d-flex align-items-center w-100">
|
<div class="selectgroup-label d-flex align-items-center w-100">
|
||||||
@@ -427,6 +422,7 @@
|
|||||||
<tr><td colspan=2> </td></tr>
|
<tr><td colspan=2> </td></tr>
|
||||||
<tr><td><kbd>j</kbd> <kbd>k</kbd></td> <td>next / prev article</td></tr>
|
<tr><td><kbd>j</kbd> <kbd>k</kbd></td> <td>next / prev article</td></tr>
|
||||||
<tr><td><kbd>l</kbd> <kbd>h</kbd></td> <td>next / prev feed</td></tr>
|
<tr><td><kbd>l</kbd> <kbd>h</kbd></td> <td>next / prev feed</td></tr>
|
||||||
|
<tr><td><kbd>q</kbd></td> <td>close article</td></tr>
|
||||||
|
|
||||||
<tr><td colspan=2> </td></tr>
|
<tr><td colspan=2> </td></tr>
|
||||||
<tr><td><kbd>R</kbd></td> <td>mark all read</td></tr>
|
<tr><td><kbd>R</kbd></td> <td>mark all read</td></tr>
|
||||||
|
|||||||
@@ -768,9 +768,16 @@ var vm = new Vue({
|
|||||||
// navigation helper, navigate relative to selected feed
|
// navigation helper, navigate relative to selected feed
|
||||||
navigateToFeed: function(relativePosition) {
|
navigateToFeed: function(relativePosition) {
|
||||||
let vm = this
|
let vm = this
|
||||||
var navigationList = Array.from(document.querySelectorAll('#col-feed-list input[name=feed]'))
|
const navigationList = this.foldersWithFeeds
|
||||||
.filter(function(r) { return r.offsetParent !== null && r.value !== 'folder:null' })
|
.filter(folder => !folder.id || !vm.mustHideFolder(folder))
|
||||||
.map(function(r) { return r.value })
|
.map((folder) => {
|
||||||
|
if (this.mustHideFolder(folder)) return []
|
||||||
|
const folds = folder.id ? [`folder:${folder.id}`] : []
|
||||||
|
const feeds = (folder.is_expanded || !folder.id) ? folder.feeds.filter(f => !vm.mustHideFeed(f)).map(f => `feed:${f.id}`) : []
|
||||||
|
return folds.concat(feeds)
|
||||||
|
})
|
||||||
|
.flat()
|
||||||
|
navigationList.unshift('')
|
||||||
|
|
||||||
var currentFeedPosition = navigationList.indexOf(vm.feedSelected)
|
var currentFeedPosition = navigationList.indexOf(vm.feedSelected)
|
||||||
|
|
||||||
@@ -799,6 +806,18 @@ var vm = new Vue({
|
|||||||
if (curIdx >= (this.refreshRateOptions.length - 1) && offset > 0) return
|
if (curIdx >= (this.refreshRateOptions.length - 1) && offset > 0) return
|
||||||
this.refreshRate = this.refreshRateOptions[curIdx + offset].value
|
this.refreshRate = this.refreshRateOptions[curIdx + offset].value
|
||||||
},
|
},
|
||||||
|
mustHideFolder: function (folder) {
|
||||||
|
return this.filterSelected
|
||||||
|
&& !(this.current.folder.id == folder.id || this.current.feed.folder_id == folder.id)
|
||||||
|
&& !this.filteredFolderStats[folder.id]
|
||||||
|
&& (!this.itemSelectedDetails || (this.feedsById[itemSelectedDetails.feed_id] || {}).folder_id != folder.id)
|
||||||
|
},
|
||||||
|
mustHideFeed: function (feed) {
|
||||||
|
return this.filterSelected
|
||||||
|
&& !(this.current.feed.id == feed.id)
|
||||||
|
&& !this.filteredFeedStats[feed.id]
|
||||||
|
&& (!this.itemSelectedDetails || this.itemSelectedDetails.feed_id != feed.id)
|
||||||
|
},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -60,6 +60,9 @@ var shortcutFunctions = {
|
|||||||
scrollBackward: function() {
|
scrollBackward: function() {
|
||||||
helperFunctions.scrollContent(-1)
|
helperFunctions.scrollContent(-1)
|
||||||
},
|
},
|
||||||
|
closeItem: function () {
|
||||||
|
vm.itemSelected = null
|
||||||
|
},
|
||||||
showAll() {
|
showAll() {
|
||||||
vm.filterSelected = ''
|
vm.filterSelected = ''
|
||||||
},
|
},
|
||||||
@@ -85,6 +88,7 @@ var keybindings = {
|
|||||||
"h": shortcutFunctions.previousFeed,
|
"h": shortcutFunctions.previousFeed,
|
||||||
"f": shortcutFunctions.scrollForward,
|
"f": shortcutFunctions.scrollForward,
|
||||||
"b": shortcutFunctions.scrollBackward,
|
"b": shortcutFunctions.scrollBackward,
|
||||||
|
"q": shortcutFunctions.closeItem,
|
||||||
"1": shortcutFunctions.showUnread,
|
"1": shortcutFunctions.showUnread,
|
||||||
"2": shortcutFunctions.showStarred,
|
"2": shortcutFunctions.showStarred,
|
||||||
"3": shortcutFunctions.showAll,
|
"3": shortcutFunctions.showAll,
|
||||||
@@ -103,6 +107,7 @@ var codebindings = {
|
|||||||
"KeyH": shortcutFunctions.previousFeed,
|
"KeyH": shortcutFunctions.previousFeed,
|
||||||
"KeyF": shortcutFunctions.scrollForward,
|
"KeyF": shortcutFunctions.scrollForward,
|
||||||
"KeyB": shortcutFunctions.scrollBackward,
|
"KeyB": shortcutFunctions.scrollBackward,
|
||||||
|
"KeyQ": shortcutFunctions.closeItem,
|
||||||
"Digit1": shortcutFunctions.showUnread,
|
"Digit1": shortcutFunctions.showUnread,
|
||||||
"Digit2": shortcutFunctions.showStarred,
|
"Digit2": shortcutFunctions.showStarred,
|
||||||
"Digit3": shortcutFunctions.showAll,
|
"Digit3": shortcutFunctions.showAll,
|
||||||
|
|||||||
Reference in New Issue
Block a user