mirror of
https://github.com/nkanaev/yarr.git
synced 2025-05-24 00:33:14 +00:00
store feed list state
This commit is contained in:
parent
327d2ac6b7
commit
98ba266921
@ -81,6 +81,7 @@ func FolderListHandler(rw http.ResponseWriter, req *http.Request) {
|
||||
|
||||
type UpdateFolder struct {
|
||||
Title *string `json:"title,omitempty"`
|
||||
IsExpanded *bool `json:"is_expanded,omitempty"`
|
||||
}
|
||||
|
||||
func FolderHandler(rw http.ResponseWriter, req *http.Request) {
|
||||
@ -99,6 +100,9 @@ func FolderHandler(rw http.ResponseWriter, req *http.Request) {
|
||||
if body.Title != nil {
|
||||
db(req).RenameFolder(id, *body.Title)
|
||||
}
|
||||
if body.IsExpanded != nil {
|
||||
db(req).ToggleFolderExpanded(id, *body.IsExpanded)
|
||||
}
|
||||
rw.WriteHeader(http.StatusOK)
|
||||
} else if req.Method == "DELETE" {
|
||||
db(req).DeleteFolder(id)
|
||||
|
@ -5,6 +5,7 @@ import "encoding/json"
|
||||
func settingsDefaults() map[string]interface{} {
|
||||
return map[string]interface{}{
|
||||
"filter": "",
|
||||
"feed": "",
|
||||
"feed_list_width": 300,
|
||||
"item_list_width": 300,
|
||||
}
|
||||
|
@ -38,7 +38,7 @@
|
||||
</label>
|
||||
</div>
|
||||
<label class="nav-select">
|
||||
<input type="radio" name="feed" :value="null" v-model="feedSelected">
|
||||
<input type="radio" name="feed" value="" v-model="feedSelected">
|
||||
<div class="menu-item d-flex align-items-center w-100">
|
||||
<img src="./static/images/layers.svg" alt="" class="nav-icon">
|
||||
<span class="flex-fill text-left text-truncate">All Feeds</span>
|
||||
|
@ -57,6 +57,7 @@ var vm = new Vue({
|
||||
created: function() {
|
||||
var vm = this
|
||||
api.settings.get().then(function(data) {
|
||||
vm.feedSelected = data.feed
|
||||
vm.filterSelected = data.filter
|
||||
vm.refreshItems()
|
||||
})
|
||||
@ -140,13 +141,11 @@ var vm = new Vue({
|
||||
watch: {
|
||||
'filterSelected': function(newVal, oldVal) {
|
||||
if (oldVal === null) return // do nothing, initial setup
|
||||
var vm = this
|
||||
api.settings.update({filter: newVal}).then(function() {
|
||||
vm.refreshItems()
|
||||
})
|
||||
api.settings.update({filter: newVal}).then(this.refreshItems.bind(this))
|
||||
},
|
||||
'feedSelected': function(newVal, oldVal) {
|
||||
this.refreshItems()
|
||||
if (oldVal === null) return // do nothing, initial setup
|
||||
api.settings.update({feed: newVal}).then(this.refreshItems.bind(this))
|
||||
},
|
||||
'itemSelected': function(newVal, oldVal) {
|
||||
this.itemSelectedReadability = ''
|
||||
@ -237,6 +236,7 @@ var vm = new Vue({
|
||||
},
|
||||
toggleFolderExpanded: function(folder) {
|
||||
folder.is_expanded = !folder.is_expanded
|
||||
api.folders.update(folder.id, {is_expanded: folder.is_expanded})
|
||||
},
|
||||
formatDate: function(datestr) {
|
||||
var options = {
|
||||
|
Loading…
x
Reference in New Issue
Block a user