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