1
0

Show Go back on error page, need to pass a referer URL for it.

This commit is contained in:
Alexander Andreev 2023-08-12 23:51:26 +04:00
parent 87453e160d
commit 6fe6c856cd
Signed by: Arav
GPG Key ID: D22A817D95815393
4 changed files with 14 additions and 11 deletions

View File

@ -74,8 +74,8 @@ func main() {
r := httpr.New() r := httpr.New()
r.NotFoundHandler = func(w http.ResponseWriter, _ *http.Request) { r.NotFoundHandler = func(w http.ResponseWriter, r *http.Request) {
web.ErrorXXX("/ Not Found", "", "", http.StatusNotFound, w) web.ErrorXXX("/ Not Found", "", "", r.Referer(), http.StatusNotFound, w)
} }
r.ServeStatic("/assets/*filepath", web.Assets()) r.ServeStatic("/assets/*filepath", web.Assets())

View File

@ -29,7 +29,8 @@ func (h *GuestbookApiHandlers) New(w http.ResponseWriter, r *http.Request) {
r.ParseForm() r.ParseForm()
if !inmemdb.Solve(captcha.ID(r.FormValue("captcha_id")), captcha.Answer(r.FormValue("captcha_answer"))) { if !inmemdb.Solve(captcha.ID(r.FormValue("captcha_id")), captcha.Answer(r.FormValue("captcha_answer"))) {
Error(w, http.StatusForbidden, "Wrong answer given.", "Here's your message:"+r.FormValue("message")) Error(w, http.StatusForbidden, "Wrong answer given.",
"Here's your message:"+r.FormValue("message"), r.Referer())
return return
} }
@ -42,13 +43,15 @@ func (h *GuestbookApiHandlers) New(w http.ResponseWriter, r *http.Request) {
entry, err = justguestbook.NewEntry(r.FormValue("name"), message, entry, err = justguestbook.NewEntry(r.FormValue("name"), message,
r.FormValue("website"), r.FormValue("hide_website") != "") r.FormValue("website"), r.FormValue("hide_website") != "")
if err != nil { if err != nil {
Error(w, http.StatusInternalServerError, err.Error(), "Here's your message:"+r.FormValue("message")) Error(w, http.StatusInternalServerError, err.Error(),
"Here's your message:"+r.FormValue("message"), r.Referer())
return return
} }
} }
if err = h.db.NewEntry(entry); err != nil { if err = h.db.NewEntry(entry); err != nil {
Error(w, http.StatusInternalServerError, err.Error(), "Here's your message:"+r.FormValue("message")) Error(w, http.StatusInternalServerError, err.Error(),
"Here's your message:"+r.FormValue("message"), r.Referer())
return return
} }

View File

@ -51,7 +51,7 @@ func (h *MindflowApiHandlers) NewPost(w http.ResponseWriter, r *http.Request) {
if err = h.db.NewPost(post); err != nil { if err = h.db.NewPost(post); err != nil {
msg := strings.Join([]string{"Title:", r.FormValue("title"), "| Body:", r.FormValue("body")}, " ") msg := strings.Join([]string{"Title:", r.FormValue("title"), "| Body:", r.FormValue("body")}, " ")
Error(w, http.StatusInternalServerError, err.Error(), msg) Error(w, http.StatusInternalServerError, err.Error(), msg, r.Referer())
return return
} }

View File

@ -70,13 +70,13 @@ func (h *Handlers) Mindflow(w http.ResponseWriter, r *http.Request) {
func (h *Handlers) MindflowAdmin(w http.ResponseWriter, r *http.Request) { func (h *Handlers) MindflowAdmin(w http.ResponseWriter, r *http.Request) {
posts, err := h.mindflowDB.Posts() posts, err := h.mindflowDB.Posts()
if err != nil { if err != nil {
Error(w, http.StatusInternalServerError, err.Error(), "failed to load posts") Error(w, http.StatusInternalServerError, err.Error(), "failed to load posts", r.Referer())
return return
} }
categories, err := h.mindflowDB.Categories() categories, err := h.mindflowDB.Categories()
if err != nil { if err != nil {
Error(w, http.StatusInternalServerError, err.Error(), "failed to load categories") Error(w, http.StatusInternalServerError, err.Error(), "failed to load categories", r.Referer())
return return
} }
@ -153,7 +153,7 @@ func (h *Handlers) GuestbookAdmin(w http.ResponseWriter, r *http.Request) {
entriesCount, _ := h.guestbookDB.Count() entriesCount, _ := h.guestbookDB.Count()
entries, err := h.guestbookDB.Entries(1, entriesCount) entries, err := h.guestbookDB.Entries(1, entriesCount)
if err != nil { if err != nil {
Error(w, http.StatusInternalServerError, err.Error(), "cannot load gb") Error(w, http.StatusInternalServerError, err.Error(), "cannot load gb", r.Referer())
return return
} }
for _, entry := range entries { for _, entry := range entries {
@ -187,8 +187,8 @@ func SitemapXml(w http.ResponseWriter, r *http.Request) {
w.Write(data) w.Write(data)
} }
func Error(w http.ResponseWriter, code int, reason, message string) { func Error(w http.ResponseWriter, code int, reason, message, referer string) {
web.ErrorXXX("/ "+http.StatusText(code), reason, message, code, w) web.ErrorXXX("/ "+http.StatusText(code), reason, message, referer, code, w)
} }
func cleanupNewlines(text string) (out string) { func cleanupNewlines(text string) (out string) {