// Package admin desrcibes the admin view containing references to // various managers and editors package admin import ( "bytes" "html/template" "github.com/bosssauce/ponzu/content" "github.com/bosssauce/ponzu/system/db" ) var startAdminHTML = ` {{ .Logo }}
` var mainAdminHTML = `
{{ if .Subview}}
{{ .Subview }}
{{ end }}` var endAdminHTML = `
` type admin struct { Logo string Types map[string]func() interface{} Subview template.HTML } // Admin ... func Admin(view []byte) ([]byte, error) { cfg, err := db.Config("name") if err != nil { return nil, err } if cfg == nil { cfg = []byte("") } a := admin{ Logo: string(cfg), Types: content.Types, Subview: template.HTML(view), } buf := &bytes.Buffer{} html := startAdminHTML + mainAdminHTML + endAdminHTML tmpl := template.Must(template.New("admin").Parse(html)) err = tmpl.Execute(buf, a) if err != nil { return nil, err } return buf.Bytes(), nil } var initAdminHTML = `
Welcome!
You need to initialize your system by filling out the form below. All of this information can be updated later on, but you will not be able to start without first completing this step.
Configuration
Admin Details
` // Init ... func Init() ([]byte, error) { html := startAdminHTML + initAdminHTML + endAdminHTML cfg, err := db.Config("name") if err != nil { return nil, err } if cfg == nil { cfg = []byte("") } a := admin{ Logo: string(cfg), } buf := &bytes.Buffer{} tmpl := template.Must(template.New("init").Parse(html)) err = tmpl.Execute(buf, a) if err != nil { return nil, err } return buf.Bytes(), nil } var loginAdminHTML = `
Welcome!
Please log in to the system using your email address and password.
` // Login ... func Login() ([]byte, error) { html := startAdminHTML + loginAdminHTML + endAdminHTML cfg, err := db.Config("name") if err != nil { return nil, err } if cfg == nil { cfg = []byte("") } a := admin{ Logo: string(cfg), } buf := &bytes.Buffer{} tmpl := template.Must(template.New("login").Parse(html)) err = tmpl.Execute(buf, a) if err != nil { return nil, err } return buf.Bytes(), nil } var err400HTML = `
400 Error: Bad Request
Sorry, the request was unable to be completed.
` // Error400 creates a subview for a 400 error page func Error400() ([]byte, error) { view, err := Admin([]byte(err400HTML)) if err != nil { return nil, err } return view, nil } var err404HTML = `
404 Error: Not Found
Sorry, the page you requested could not be found.
` // Error404 creates a subview for a 404 error page func Error404() ([]byte, error) { view, err := Admin([]byte(err404HTML)) if err != nil { return nil, err } return view, nil } var err405HTML = `
405 Error: Method Not Allowed
Sorry, the page you requested could not be found.
` // Error405 creates a subview for a 405 error page func Error405() ([]byte, error) { view, err := Admin([]byte(err405HTML)) if err != nil { return nil, err } return view, nil } var err500HTML = `
500 Error: Internal Service Error
Sorry, something unexpectedly went wrong.
` // Error500 creates a subview for a 500 error page func Error500() ([]byte, error) { view, err := Admin([]byte(err500HTML)) if err != nil { return nil, err } return view, nil }