use flashes for notice edits
This commit is contained in:
parent
2c96b93102
commit
60010a7787
|
@ -25,8 +25,6 @@ type aliasesHandler struct {
|
|||
db roomdb.AliasesService
|
||||
}
|
||||
|
||||
const redirectToAliases = "/admin/aliases"
|
||||
|
||||
func (h aliasesHandler) revokeConfirm(rw http.ResponseWriter, req *http.Request) (interface{}, error) {
|
||||
if req.Method != "GET" {
|
||||
return nil, weberrors.ErrBadRequest{Where: "HTTP Method", Details: fmt.Errorf("expected GET request")}
|
||||
|
@ -41,7 +39,7 @@ func (h aliasesHandler) revokeConfirm(rw http.ResponseWriter, req *http.Request)
|
|||
entry, err := h.db.GetByID(req.Context(), id)
|
||||
if err != nil {
|
||||
return nil, weberrors.ErrRedirect{
|
||||
Path: redirectToAliases,
|
||||
Path: redirectToMembers,
|
||||
Reason: err,
|
||||
}
|
||||
}
|
||||
|
@ -102,5 +100,5 @@ func (h aliasesHandler) revoke(rw http.ResponseWriter, req *http.Request) {
|
|||
h.flashes.AddMessage(rw, req, "AdminAliasRevoked")
|
||||
}
|
||||
|
||||
http.Redirect(rw, req, redirectToAliases, status)
|
||||
http.Redirect(rw, req, redirectToMembers, status)
|
||||
}
|
||||
|
|
|
@ -123,14 +123,20 @@ func (h noticeHandler) edit(rw http.ResponseWriter, req *http.Request) (interfac
|
|||
contentBytes := []byte(fixedContent)
|
||||
preview := blackfriday.Run(contentBytes)
|
||||
|
||||
return map[string]interface{}{
|
||||
pageData := map[string]interface{}{
|
||||
"SubmitAction": router.AdminNoticeSave,
|
||||
"Notice": n,
|
||||
"ContentPreview": template.HTML(preview),
|
||||
// "Debug": string(preview),
|
||||
// "DebugHex": hex.Dump(contentBytes),
|
||||
csrf.TemplateTag: csrf.TemplateField(req),
|
||||
}, nil
|
||||
}
|
||||
pageData["Flashes"], err = h.flashes.GetAll(rw, req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return pageData, nil
|
||||
}
|
||||
|
||||
func (h noticeHandler) save(rw http.ResponseWriter, req *http.Request) {
|
||||
|
@ -150,14 +156,16 @@ func (h noticeHandler) save(rw http.ResponseWriter, req *http.Request) {
|
|||
n.ID, err = strconv.ParseInt(req.FormValue("id"), 10, 64)
|
||||
if err != nil {
|
||||
err = weberrors.ErrBadRequest{Where: "id", Details: err}
|
||||
h.r.Error(rw, req, http.StatusInternalServerError, err)
|
||||
h.flashes.AddError(rw, req, err)
|
||||
http.Redirect(rw, req, redirect, http.StatusSeeOther)
|
||||
return
|
||||
}
|
||||
|
||||
n.Title = req.FormValue("title")
|
||||
if n.Title == "" {
|
||||
err = weberrors.ErrBadRequest{Where: "title", Details: fmt.Errorf("title can't be empty")}
|
||||
h.r.Error(rw, req, http.StatusInternalServerError, err)
|
||||
h.flashes.AddError(rw, req, err)
|
||||
http.Redirect(rw, req, redirect, http.StatusSeeOther)
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -165,24 +173,29 @@ func (h noticeHandler) save(rw http.ResponseWriter, req *http.Request) {
|
|||
n.Language = req.FormValue("language")
|
||||
if n.Language == "" {
|
||||
err = weberrors.ErrBadRequest{Where: "language", Details: fmt.Errorf("language can't be empty")}
|
||||
h.r.Error(rw, req, http.StatusInternalServerError, err)
|
||||
h.flashes.AddError(rw, req, err)
|
||||
http.Redirect(rw, req, redirect, http.StatusSeeOther)
|
||||
return
|
||||
}
|
||||
|
||||
n.Content = req.FormValue("content")
|
||||
if n.Content == "" {
|
||||
err = weberrors.ErrBadRequest{Where: "content", Details: fmt.Errorf("content can't be empty")}
|
||||
h.r.Error(rw, req, http.StatusInternalServerError, err)
|
||||
h.flashes.AddError(rw, req, err)
|
||||
http.Redirect(rw, req, redirect, http.StatusSeeOther)
|
||||
return
|
||||
}
|
||||
|
||||
// https://github.com/russross/blackfriday/issues/575
|
||||
n.Content = strings.Replace(n.Content, "\r\n", "\n", -1)
|
||||
|
||||
err = h.noticeDB.Save(req.Context(), &n)
|
||||
if err != nil {
|
||||
h.r.Error(rw, req, http.StatusInternalServerError, err)
|
||||
h.flashes.AddError(rw, req, err)
|
||||
http.Redirect(rw, req, redirect, http.StatusSeeOther)
|
||||
return
|
||||
}
|
||||
|
||||
h.flashes.AddMessage(rw, req, "NoticeUpdated")
|
||||
http.Redirect(rw, req, redirect, http.StatusSeeOther)
|
||||
}
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
{{ define "title" }}{{i18n "NoticeEditTitle"}}{{ end }}
|
||||
{{ define "content" }}
|
||||
|
||||
{{ template "flashes" . }}
|
||||
|
||||
<form method="POST" action={{urlTo .SubmitAction}} class="flex flex-col items-stretch">
|
||||
{{.csrfField}}
|
||||
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
{{ define "title" }}{{.Title}}{{ end }}
|
||||
{{ define "content" }}
|
||||
|
||||
{{ template "flashes" . }}
|
||||
|
||||
<h1
|
||||
class="text-3xl tracking-tight font-black text-black mt-2 mb-4"
|
||||
>{{.Title}}</h1>
|
||||
|
|
Loading…
Reference in New Issue