summaryrefslogtreecommitdiff
path: root/app/handler.go
diff options
context:
space:
mode:
authorHorus_Arch2015-02-26 02:40:52 +0100
committerHorus_Arch2015-02-26 02:40:52 +0100
commit64ae2edb5a97f05f5592f58422adbc6ac089f9e8 (patch)
treeb375a73ec6bd0698d27cd01ef4307e62e9c1fa6d /app/handler.go
parent49ffcba2c3c4a19d147dd792d7f6c99b7545a491 (diff)
downloadstatuspage-64ae2edb5a97f05f5592f58422adbc6ac089f9e8.tar.gz
Clean up. More backend code. Better UX and design.
Diffstat (limited to 'app/handler.go')
-rw-r--r--app/handler.go73
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)
+}