diff options
| author | Horus_Arch | 2015-02-26 02:40:52 +0100 |
|---|---|---|
| committer | Horus_Arch | 2015-02-26 02:40:52 +0100 |
| commit | 64ae2edb5a97f05f5592f58422adbc6ac089f9e8 (patch) | |
| tree | b375a73ec6bd0698d27cd01ef4307e62e9c1fa6d /app/handler.go | |
| parent | 49ffcba2c3c4a19d147dd792d7f6c99b7545a491 (diff) | |
| download | statuspage-64ae2edb5a97f05f5592f58422adbc6ac089f9e8.tar.gz | |
Clean up. More backend code. Better UX and design.
Diffstat (limited to 'app/handler.go')
| -rw-r--r-- | app/handler.go | 73 |
1 files changed, 55 insertions, 18 deletions
diff --git a/app/handler.go b/app/handler.go index cdf8421..97c3558 100644 --- a/app/handler.go +++ b/app/handler.go @@ -38,13 +38,6 @@ func IndexHandler(w http.ResponseWriter, r *http.Request) { } } -func SessionHandler(w http.ResponseWriter, r *http.Request) { - session, _ := store.Get(r, "session-name") - session.Values["foo"] = "bar" - session.Values[42] = 43 - session.Save(r, w) -} - func RegisterHandler(w http.ResponseWriter, r *http.Request) { log.Println("Processing registration!") fmt.Fprintf(w, "Processing registration! \n") @@ -60,7 +53,7 @@ func PrintNewJobHandler(w http.ResponseWriter, r *http.Request) { session, err := store.Get(r, "_SID") - m := FlashMessages{} + m := Messages{} m.Success = session.Flashes("success") m.Error = session.Flashes("error") session.Save(r, w) @@ -115,12 +108,18 @@ func AddNewJobHandler(w http.ResponseWriter, r *http.Request) { host.Host = u.Host log.Printf("%v", host) - Db.Debug().Save(&host) + query := Db.Debug().Save(&host) + if query.Error != nil { + log.Println(err) + session.AddFlash("Befehl konnte auf Grund eines Problems nicht ausgeführt werden.", "error") + session.Save(r, w) + http.Redirect(w, r, "/admin", 302) + } go func() { h := []Host{} h = append(h, host) - h = CheckPage(h) + h = CheckPages(h) for k, _ := range h { Db.Debug().Save(&h[k]) } @@ -168,6 +167,13 @@ func LoginHandler(w http.ResponseWriter, r *http.Request) { } session.Values["login"] = true session.Save(r, w) + var redirectTarget string + if session.Values["history"] != "" { + redirectTarget = fmt.Sprintf("%v", session.Values["history"]) + session.Values["history"] = "" + session.Save(r, w) + http.Redirect(w, r, redirectTarget, 301) + } http.Redirect(w, r, "/admin", 301) } @@ -182,7 +188,7 @@ func PrintLoginHandler(w http.ResponseWriter, r *http.Request) { } else { log.Println("Nicht eingeloggt.") } - m := FlashMessages{} + m := Messages{} m.Success = session.Flashes("success") m.Error = session.Flashes("error") session.Save(r, w) @@ -198,34 +204,65 @@ func LogoutHandler(w http.ResponseWriter, r *http.Request) { session, _ := store.Get(r, "_SID") session.Values["login"] = false session.Save(r, w) - http.Redirect(w, r, "/", 301) + http.Redirect(w, r, "/login", 301) } func AdminHandler(w http.ResponseWriter, r *http.Request) { session, err := store.Get(r, "_SID") + //session.Values["login"] = true // löschen! + //session.Save(r, w) // löschen! if err != nil { log.Println(err) } if session.Values["login"] != true { // http.Redirect(w, r, "/login", 401) - PrintLoginHandler(w, r) + // w.WriteHeader(403) + // PrintLoginHandler(w, r) + session.Values["history"] = "/admin" + session.Save(r, w) + http.Redirect(w, r, "/login", 302) return } hosts := []Host{} Db.Find(&hosts) - a := Admin{} - a.Success = session.Flashes("success") - a.Error = session.Flashes("error") - a.Hosts = hosts + m := Messages{} + m.Success = session.Flashes("success") + m.Error = session.Flashes("error") + m.Hosts = hosts session.Save(r, w) index := mainTempl.Lookup("admin.html") - err = index.ExecuteTemplate(w, "admin.html", a) + err = index.ExecuteTemplate(w, "admin.html", m) if err != nil { log.Println(err) http.Error(w, err.Error(), http.StatusInternalServerError) return } } + +func RefreshAllHandler(w http.ResponseWriter, r *http.Request) { + session, err := store.Get(r, "_SID") + if err != nil { + log.Println(err) + } + if session.Values["login"] != true { + session.Values["history"] = "/admin" + session.Save(r, w) + http.Redirect(w, r, "/login", 302) + return + } + go func() { + h := []Host{} + Db.Find(&h) + h = CheckAllPages(h) + CacheHosts(cache_prefix+"database", h) + for k, _ := range h { + Db.Debug().Save(&h[k]) + } + }() + session.AddFlash("Processing all hosts. This might take a while.", "success") + session.Save(r, w) + http.Redirect(w, r, "/admin", 302) +} |
