mirror of
https://github.com/nkanaev/yarr.git
synced 2025-09-13 18:00:05 +00:00
basic feed list view
This commit is contained in:
@@ -77,12 +77,12 @@
|
||||
<input type="radio" name="item" :value="item.id" v-model="itemSelected">
|
||||
<div class="menu-item p-2">
|
||||
<div class="d-flex flex-column ml-4">
|
||||
<div style="line-height: 1" class="d-flex">
|
||||
<div style="line-height: 1" class="d-flex text-muted">
|
||||
<img src="./static/images/circle-full.svg" class="nav-icon ml-n4 mr-2" v-if="item.status === 'unread'">
|
||||
<img src="./static/images/circle.svg" class="nav-icon ml-n4 mr-2" v-if="item.status === 'read'">
|
||||
<img src="./static/images/star.svg" class="nav-icon ml-n4 mr-2" v-if="item.status === 'starred'">
|
||||
<small class="flex-fill text-truncate">{{feedsById[item.feed_id].title}}</small>
|
||||
<small class="">{{formatDate(item.date)}}</small>
|
||||
<small class="flex-fill text-truncate mr-1">{{feedsById[item.feed_id].title}}</small>
|
||||
<small class="flex-shrink-0">{{formatDate(item.date)}}</small>
|
||||
</div>
|
||||
<span>{{item.title}}</span>
|
||||
</div>
|
||||
@@ -97,7 +97,7 @@
|
||||
<img src="./static/images/settings.svg" alt="" style="width: 20px; height: 20px;">
|
||||
</button>
|
||||
</div>
|
||||
<div v-if="itemSelected" class="mx-3 my-2 overflow-auto">
|
||||
<div v-if="itemSelected" class="px-3 mt-2 overflow-auto">
|
||||
<h3>{{itemSelectedDetails.title}}</h3>
|
||||
<div class="text-muted">
|
||||
<div>{{ feedsById[itemSelectedDetails.feed_id].title }}</div>
|
||||
@@ -105,7 +105,7 @@
|
||||
</div>
|
||||
<hr>
|
||||
<div>
|
||||
content goes here
|
||||
<div v-html="itemSelectedDetails.description" v-if="itemSelectedDetails.description"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -26,7 +26,10 @@
|
||||
},
|
||||
delete: function(id) {
|
||||
return api('delete', '/api/feeds/' + id)
|
||||
}
|
||||
},
|
||||
list_items: function(id) {
|
||||
return api('get', '/api/feeds/' + id + '/items').then(json)
|
||||
},
|
||||
},
|
||||
folders: {
|
||||
list: function() {
|
||||
@@ -41,6 +44,6 @@
|
||||
delete: function(id) {
|
||||
return api('delete', '/api/folders/' + id)
|
||||
},
|
||||
}
|
||||
},
|
||||
}
|
||||
})()
|
||||
|
@@ -43,9 +43,15 @@ var vm = new Vue({
|
||||
watch: {
|
||||
'feedSelected': function(newVal, oldVal) {
|
||||
if (newVal === null) return
|
||||
var vm = this
|
||||
var parts = newVal.split(':', 2)
|
||||
var type = parts[0]
|
||||
var guid = parts[1]
|
||||
if (type === 'feed') {
|
||||
api.feeds.list_items(guid).then(function(items) {
|
||||
vm.items = items
|
||||
})
|
||||
}
|
||||
},
|
||||
'itemSelected': function(newVal, oldVal) {
|
||||
this.itemSelectedDetails = this.itemsById[newVal]
|
||||
@@ -64,9 +70,8 @@ var vm = new Vue({
|
||||
toggleFolderExpanded: function(folder) {
|
||||
folder.is_expanded = !folder.is_expanded
|
||||
},
|
||||
formatDate: function(timestamp_s) {
|
||||
var d = new Date(timestamp_s * 1000)
|
||||
return d.getDate() + '/' + d.getMonth() + '/' + d.getFullYear()
|
||||
formatDate: function(datestr) {
|
||||
return new Date(datestr).toLocaleDateString(undefined, {year: "numeric", month: "long", day: "numeric"})
|
||||
},
|
||||
moveFeed: function(feed, folder) {
|
||||
var folder_id = folder ? folder.id : null
|
||||
|
Reference in New Issue
Block a user