summaryrefslogtreecommitdiff
path: root/system/admin
diff options
context:
space:
mode:
Diffstat (limited to 'system/admin')
-rw-r--r--system/admin/admin.go20
-rw-r--r--system/admin/handlers.go122
2 files changed, 39 insertions, 103 deletions
diff --git a/system/admin/admin.go b/system/admin/admin.go
index 3df6805..7761e71 100644
--- a/system/admin/admin.go
+++ b/system/admin/admin.go
@@ -5,6 +5,7 @@ package admin
import (
"bytes"
"encoding/json"
+ "fmt"
"html/template"
"net/http"
@@ -607,3 +608,22 @@ var err500HTML = []byte(`
func Error500() ([]byte, error) {
return Admin(err500HTML)
}
+
+var errMessageHTML = `
+<div class="error-page eMsg col s6">
+<div class="card">
+<div class="card-content">
+ <div class="card-title"><b>Error:&nbsp;</b>%s</div>
+ <blockquote>%s</blockquote>
+</div>
+</div>
+</div>
+`
+
+// ErrorMessage is a generic error message container, similar to Error500() and
+// others in this package, ecxept it expects the caller to provide a title and
+// message to describe to a view why the error is being shown
+func ErrorMessage(title, message string) ([]byte, error) {
+ eHTML := fmt.Sprintf(errMessageHTML, title, message)
+ return Admin([]byte(eHTML))
+}
diff --git a/system/admin/handlers.go b/system/admin/handlers.go
index a99a62c..c5b3058 100644
--- a/system/admin/handlers.go
+++ b/system/admin/handlers.go
@@ -1357,56 +1357,28 @@ func approveContentHandler(res http.ResponseWriter, req *http.Request) {
return
}
- err = hook.BeforeApprove(req)
+ err = hook.BeforeApprove(res, req)
if err != nil {
log.Println("Error running BeforeApprove hook in approveContentHandler for:", t, err)
- res.WriteHeader(http.StatusInternalServerError)
- errView, err := Error500()
- if err != nil {
- return
- }
-
- res.Write(errView)
return
}
// call its Approve method
- err = m.Approve(req)
+ err = m.Approve(res, req)
if err != nil {
log.Println("Error running Approve method in approveContentHandler for:", t, err)
- res.WriteHeader(http.StatusInternalServerError)
- errView, err := Error500()
- if err != nil {
- return
- }
-
- res.Write(errView)
return
}
- err = hook.AfterApprove(req)
+ err = hook.AfterApprove(res, req)
if err != nil {
log.Println("Error running AfterApprove hook in approveContentHandler for:", t, err)
- res.WriteHeader(http.StatusInternalServerError)
- errView, err := Error500()
- if err != nil {
- return
- }
-
- res.Write(errView)
return
}
- err = hook.BeforeSave(req)
+ err = hook.BeforeSave(res, req)
if err != nil {
log.Println("Error running BeforeSave hook in approveContentHandler for:", t, err)
- res.WriteHeader(http.StatusInternalServerError)
- errView, err := Error500()
- if err != nil {
- return
- }
-
- res.Write(errView)
return
}
@@ -1428,16 +1400,9 @@ func approveContentHandler(res http.ResponseWriter, req *http.Request) {
ctx := context.WithValue(req.Context(), "target", fmt.Sprintf("%s:%d", t, id))
req = req.WithContext(ctx)
- err = hook.AfterSave(req)
+ err = hook.AfterSave(res, req)
if err != nil {
log.Println("Error running AfterSave hook in approveContentHandler for:", t, err)
- res.WriteHeader(http.StatusInternalServerError)
- errView, err := Error500()
- if err != nil {
- return
- }
-
- res.Write(errView)
return
}
@@ -1669,16 +1634,9 @@ func editHandler(res http.ResponseWriter, req *http.Request) {
return
}
- err = hook.BeforeSave(req)
+ err = hook.BeforeSave(res, req)
if err != nil {
- log.Println(err)
- res.WriteHeader(http.StatusInternalServerError)
- errView, err := Error500()
- if err != nil {
- return
- }
-
- res.Write(errView)
+ log.Println("Error running BeforeSave method in editHandler for:", t, err)
return
}
@@ -1699,16 +1657,9 @@ func editHandler(res http.ResponseWriter, req *http.Request) {
ctx := context.WithValue(req.Context(), "target", fmt.Sprintf("%s:%d", t, id))
req = req.WithContext(ctx)
- err = hook.AfterSave(req)
+ err = hook.AfterSave(res, req)
if err != nil {
- log.Println(err)
- res.WriteHeader(http.StatusInternalServerError)
- errView, err := Error500()
- if err != nil {
- return
- }
-
- res.Write(errView)
+ log.Println("Error running AfterSave method in editHandler for:", t, err)
return
}
@@ -1792,30 +1743,16 @@ func deleteHandler(res http.ResponseWriter, req *http.Request) {
reject := req.URL.Query().Get("reject")
if reject == "true" {
- err = hook.BeforeReject(req)
+ err = hook.BeforeReject(res, req)
if err != nil {
- log.Println(err)
- res.WriteHeader(http.StatusInternalServerError)
- errView, err := Error500()
- if err != nil {
- return
- }
-
- res.Write(errView)
+ log.Println("Error running BeforeReject method in deleteHandler for:", t, err)
return
}
}
- err = hook.BeforeDelete(req)
+ err = hook.BeforeDelete(res, req)
if err != nil {
- log.Println(err)
- res.WriteHeader(http.StatusInternalServerError)
- errView, err := Error500()
- if err != nil {
- return
- }
-
- res.Write(errView)
+ log.Println("Error running BeforeDelete method in deleteHandler for:", t, err)
return
}
@@ -1826,30 +1763,16 @@ func deleteHandler(res http.ResponseWriter, req *http.Request) {
return
}
- err = hook.AfterDelete(req)
+ err = hook.AfterDelete(res, req)
if err != nil {
- log.Println(err)
- res.WriteHeader(http.StatusInternalServerError)
- errView, err := Error500()
- if err != nil {
- return
- }
-
- res.Write(errView)
+ log.Println("Error running AfterDelete method in deleteHandler for:", t, err)
return
}
if reject == "true" {
- err = hook.AfterReject(req)
+ err = hook.AfterReject(res, req)
if err != nil {
- log.Println(err)
- res.WriteHeader(http.StatusInternalServerError)
- errView, err := Error500()
- if err != nil {
- return
- }
-
- res.Write(errView)
+ log.Println("Error running AfterReject method in deleteHandler for:", t, err)
return
}
}
@@ -2272,16 +2195,9 @@ func addonHandler(res http.ResponseWriter, req *http.Request) {
// if Hookable, call BeforeSave prior to saving
h, ok := at().(item.Hookable)
if ok {
- err := h.BeforeSave(req)
+ err := h.BeforeSave(res, req)
if err != nil {
- log.Println(err)
- res.WriteHeader(http.StatusInternalServerError)
- errView, err := Error500()
- if err != nil {
- return
- }
-
- res.Write(errView)
+ log.Println("Error running BeforeSave method in addonHandler for:", id, err)
return
}
}