Browse Source

Template error page instead engine error

Vova Tkach 6 years ago
parent
commit
e360d485c5
2 changed files with 20 additions and 2 deletions
  1. 2 2
      engine/wrapper/wrapper.go
  2. 18 0
      utils/utils.go

+ 2 - 2
engine/wrapper/wrapper.go

@@ -172,7 +172,7 @@ func (this *Wrapper) RenderFrontEnd(tname string, data interface{}) {
 		this.DTemplate+string(os.PathSeparator)+"footer.html",
 		this.DTemplate+string(os.PathSeparator)+"footer.html",
 	)
 	)
 	if err != nil {
 	if err != nil {
-		utils.SystemErrorPageEngine(this.W, err)
+		utils.SystemErrorPageTemplate(this.W, err)
 		return
 		return
 	}
 	}
 	this.W.Header().Set("Cache-Control", "no-cache, no-store, must-revalidate")
 	this.W.Header().Set("Cache-Control", "no-cache, no-store, must-revalidate")
@@ -183,7 +183,7 @@ func (this *Wrapper) RenderFrontEnd(tname string, data interface{}) {
 		Data:   data,
 		Data:   data,
 	})
 	})
 	if err != nil {
 	if err != nil {
-		utils.SystemErrorPageEngine(this.W, err)
+		utils.SystemErrorPageTemplate(this.W, err)
 		return
 		return
 	}
 	}
 	this.W.Write(tpl.Bytes())
 	this.W.Write(tpl.Bytes())

+ 18 - 0
utils/utils.go

@@ -152,6 +152,24 @@ func SystemErrorPageEngine(w http.ResponseWriter, err error) {
 	w.Write([]byte("<h2>" + err.Error() + "</h2>"))
 	w.Write([]byte("<h2>" + err.Error() + "</h2>"))
 }
 }
 
 
+func SystemErrorPageTemplate(w http.ResponseWriter, err error) {
+	if tmpl, e := template.New("template").Parse(string(assets.TmplPageErrorTmpl)); e == nil {
+		w.WriteHeader(http.StatusInternalServerError)
+		w.Header().Set("Cache-Control", "no-cache, no-store, must-revalidate")
+		w.Header().Set("Content-Type", "text/html")
+		tmpl.Execute(w, consts.TmplData{
+			System: GetTmplSystemData(),
+			Data:   GetTmplError(err),
+		})
+		return
+	}
+	w.WriteHeader(http.StatusInternalServerError)
+	w.Header().Set("Cache-Control", "no-cache, no-store, must-revalidate")
+	w.Header().Set("Content-Type", "text/html")
+	w.Write([]byte("<h1>Critical engine error</h1>"))
+	w.Write([]byte("<h2>" + err.Error() + "</h2>"))
+}
+
 func SystemErrorPage404(w http.ResponseWriter) {
 func SystemErrorPage404(w http.ResponseWriter) {
 	tmpl, err := template.New("template").Parse(string(assets.TmplPageError404))
 	tmpl, err := template.New("template").Parse(string(assets.TmplPageError404))
 	if err != nil {
 	if err != nil {