~handlerug/mycorrhiza

02b54b5c04743046e94141658597af86e92c335d — Timur Ismagilov a month ago 84a33ad + f9a7e6a master v1.4.0
Merge pull request #90 from chekoopa/rename-fix

Fix redirect after renaming
1 files changed, 20 insertions(+), 11 deletions(-)

M web/mutators.go
M web/mutators.go => web/mutators.go +20 -11
@@ 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) {