MCPcopy Index your code
hub / github.com/writefreely/writefreely / handleViewAdminPage

Function handleViewAdminPage

admin.go:483–537  ·  view source on GitHub ↗
(app *App, u *User, w http.ResponseWriter, r *http.Request)

Source from the content-addressed store, hash-verified

481}
482
483func handleViewAdminPage(app *App, u *User, w http.ResponseWriter, r *http.Request) error {
484 vars := mux.Vars(r)
485 slug := vars["slug"]
486 if slug == "" {
487 return impart.HTTPError{http.StatusFound, "/admin/pages"}
488 }
489
490 p := struct {
491 *UserPage
492 *AdminPage
493 Config config.AppCfg
494 Message string
495
496 Banner *instanceContent
497 Content *instanceContent
498 }{
499 AdminPage: NewAdminPage(app),
500 Config: app.cfg.App,
501 Message: r.FormValue("m"),
502 }
503
504 var err error
505 // Get pre-defined pages, or select slug
506 if slug == "about" {
507 p.Content, err = getAboutPage(app)
508 } else if slug == "contact" {
509 p.Content, err = getContactPage(app)
510 } else if slug == "privacy" {
511 p.Content, err = getPrivacyPage(app)
512 } else if slug == "landing" {
513 p.Banner, err = getLandingBanner(app)
514 if err != nil {
515 return impart.HTTPError{http.StatusInternalServerError, fmt.Sprintf("Could not get banner: %v", err)}
516 }
517 p.Content, err = getLandingBody(app)
518 p.Content.ID = "landing"
519 } else if slug == "reader" {
520 p.Content, err = getReaderSection(app)
521 } else {
522 p.Content, err = app.db.GetDynamicContent(slug)
523 }
524 if err != nil {
525 return impart.HTTPError{http.StatusInternalServerError, fmt.Sprintf("Could not get page: %v", err)}
526 }
527 title := "New page"
528 if p.Content != nil {
529 title = "Edit " + p.Content.ID
530 } else {
531 p.Content = &instanceContent{}
532 }
533 p.UserPage = NewUserPage(app, r, u, title, nil)
534
535 showUserPage(w, "view-page", p)
536 return nil
537}
538
539func handleAdminUpdateSite(app *App, u *User, w http.ResponseWriter, r *http.Request) error {
540 vars := mux.Vars(r)

Callers

nothing calls this directly

Calls 10

NewAdminPageFunction · 0.85
getAboutPageFunction · 0.85
getContactPageFunction · 0.85
getPrivacyPageFunction · 0.85
getLandingBannerFunction · 0.85
getLandingBodyFunction · 0.85
getReaderSectionFunction · 0.85
NewUserPageFunction · 0.85
showUserPageFunction · 0.85
GetDynamicContentMethod · 0.65

Tested by

no test coverage detected