github.com/saadullahsaeed/fragmenta-cms@v1.5.4/src/pages/actions/home.go (about) 1 package pageactions 2 3 import ( 4 "net/http" 5 6 "github.com/fragmenta/server" 7 "github.com/fragmenta/server/config" 8 "github.com/fragmenta/server/log" 9 "github.com/fragmenta/view" 10 11 "github.com/fragmenta/fragmenta-cms/src/lib/session" 12 "github.com/fragmenta/fragmenta-cms/src/pages" 13 "github.com/fragmenta/fragmenta-cms/src/users" 14 ) 15 16 // HandleShowHome serves our home page with a simple template. 17 func HandleShowHome(w http.ResponseWriter, r *http.Request) error { 18 19 // Demonstrate tracing in log messages 20 log.Info(log.Values{"msg": "Home handler", "trace": log.Trace(r)}) 21 22 // If we have no users (first run), redirect to setup 23 if users.Count() == 0 { 24 return server.Redirect(w, r, "/fragmenta/setup") 25 } 26 27 // Home fetches the first page with the url '/' and uses it for the home page of the site 28 page, err := pages.FindFirst("url=?", "/") 29 if err != nil { 30 return server.NotFoundError(nil) 31 } 32 33 currentUser := session.CurrentUser(w, r) 34 35 view := view.NewWithPath(r.URL.Path, w) 36 view.AddKey("title", "Fragmenta app") 37 view.AddKey("page", page) 38 view.AddKey("currentUser", currentUser) 39 view.AddKey("meta_title", config.Get("meta_title")) 40 view.AddKey("meta_desc", config.Get("meta_desc")) 41 view.AddKey("meta_keywords", config.Get("meta_keywords")) 42 view.Template("pages/views/templates/default.html.got") 43 return view.Render() 44 }