1
0
mirror of https://github.com/osmarks/mycorrhiza.git synced 2024-12-13 05:50:27 +00:00

Merge pull request #90 from chekoopa/rename-fix

Fix redirect after renaming
This commit is contained in:
Timur Ismagilov 2021-08-23 13:28:35 +05:00 committed by GitHub
commit 02b54b5c04
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -119,17 +119,26 @@ var handlerDeleteConfirm = factoryHandlerConfirmer(
},
)
var handlerRenameConfirm = factoryHandlerConfirmer(
"rename-confirm",
func(oldHypha *hyphae.Hypha, u *user.User, rq *http.Request) (*history.HistoryOp, string) {
var (
newName = util.CanonicalName(rq.PostFormValue("new-name"))
recursive = rq.PostFormValue("recursive") == "true"
newHypha = hyphae.ByName(newName)
)
return shroom.RenameHypha(oldHypha, newHypha, recursive, u)
},
)
// handlerRenameConfirm should redirect to the new hypha, thus it's out of factory
func handlerRenameConfirm(w http.ResponseWriter, rq *http.Request) {
util.PrepareRq(rq)
var (
u = user.FromRequest(rq)
hyphaName = util.HyphaNameFromRq(rq, "rename-confirm")
oldHypha = hyphae.ByName(hyphaName)
newName = util.CanonicalName(rq.PostFormValue("new-name"))
newHypha = hyphae.ByName(newName)
recursive = rq.PostFormValue("recursive") == "true"
)
hop, errtitle := shroom.RenameHypha(oldHypha, newHypha, recursive, u)
if hop.HasErrors() {
httpErr(w, http.StatusInternalServerError, hyphaName,
errtitle,
hop.FirstErrorText())
return
}
http.Redirect(w, rq, "/hypha/"+newName, http.StatusSeeOther)
}
// handlerEdit shows the edit form. It doesn't edit anything actually.
func handlerEdit(w http.ResponseWriter, rq *http.Request) {