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) {
if req.Method == "DELETE" {
id, err := strconv.ParseInt(Vars(req)["id"], 10, 64)
if err != nil {
rw.WriteHeader(http.StatusBadRequest)
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)
rw.WriteHeader(http.StatusNoContent)
}

View File

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

View File

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