diff options
Diffstat (limited to 'system/admin')
-rw-r--r-- | system/admin/admin.go | 20 | ||||
-rw-r--r-- | system/admin/handlers.go | 122 |
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: </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 } } |