rename folders

This commit is contained in:
Nazar Kanaev 2020-07-02 22:21:52 +01:00
parent 1591cdd624
commit 865da97f94
3 changed files with 33 additions and 7 deletions

View File

@ -76,13 +76,29 @@ func FolderListHandler(rw http.ResponseWriter, req *http.Request) {
} }
} }
type UpdateFolder struct {
Title *string `json:"title,omitempty"`
}
func FolderHandler(rw http.ResponseWriter, req *http.Request) { func FolderHandler(rw http.ResponseWriter, req *http.Request) {
if req.Method == "DELETE" {
id, err := strconv.ParseInt(Vars(req)["id"], 10, 64) id, err := strconv.ParseInt(Vars(req)["id"], 10, 64)
if err != nil { if err != nil {
rw.WriteHeader(http.StatusBadRequest) rw.WriteHeader(http.StatusBadRequest)
return return
} }
if req.Method == "PUT" {
var body UpdateFolder
if err := json.NewDecoder(req.Body).Decode(&body); err != nil {
log.Print(err)
rw.WriteHeader(http.StatusBadRequest)
return
}
if body.Title != nil {
db(req).RenameFolder(id, *body.Title)
}
rw.WriteHeader(http.StatusOK)
} else if req.Method == "DELETE" {
db(req).DeleteFolder(id) db(req).DeleteFolder(id)
rw.WriteHeader(http.StatusNoContent) rw.WriteHeader(http.StatusNoContent)
} }

View File

@ -35,6 +35,9 @@
create: function(data) { create: function(data) {
return api('post', '/api/folders', data).then(json) return api('post', '/api/folders', data).then(json)
}, },
update: function(id, data) {
return api('put', '/api/folders/' + id, data)
},
delete: function(id) { delete: function(id) {
return api('delete', '/api/folders/' + id) return api('delete', '/api/folders/' + id)
}, },

View File

@ -90,7 +90,12 @@ var vm = new Vue({
}) })
}, },
renameFolder: function(folder) { renameFolder: function(folder) {
var newTitle = prompt('Enter new title', folder.title)
if (newTitle) {
api.folders.update(folder.id, {title: newTitle}).then(function() {
folder.title = newTitle
})
}
}, },
deleteFolder: function(folder) { deleteFolder: function(folder) {
var vm = this var vm = this
@ -102,9 +107,11 @@ var vm = new Vue({
}, },
renameFeed: function(feed) { renameFeed: function(feed) {
var newTitle = prompt('Enter new title', feed.title) var newTitle = prompt('Enter new title', feed.title)
if (newTitle) {
api.feeds.update(feed.id, {title: newTitle}).then(function() { api.feeds.update(feed.id, {title: newTitle}).then(function() {
feed.title = newTitle feed.title = newTitle
}) })
}
}, },
deleteFeed: function(feed) { deleteFeed: function(feed) {
if (confirm('Are you sure you want to delete ' + feed.title + '?')) { if (confirm('Are you sure you want to delete ' + feed.title + '?')) {