Files
cheesy-arena-lite/web/setup_sponsor_slides.go

82 lines
2.2 KiB
Go
Raw Normal View History

2014-08-25 20:18:37 -07:00
// Copyright 2014 Team 254. All Rights Reserved.
// Author: nick@team254.com (Nick Eyre)
//
// Web routes for managing sponsor slides.
package web
2014-08-25 20:18:37 -07:00
import (
"github.com/Team254/cheesy-arena/model"
2014-08-25 20:18:37 -07:00
"net/http"
"strconv"
)
// Shows the sponsor slides configuration page.
func (web *Web) sponsorSlidesGetHandler(w http.ResponseWriter, r *http.Request) {
if !web.userIsAdmin(w, r) {
2015-08-22 23:33:38 -07:00
return
}
template, err := web.parseFiles("templates/setup_sponsor_slides.html", "templates/base.html")
2014-08-25 20:18:37 -07:00
if err != nil {
handleWebErr(w, err)
return
}
sponsorSlides, err := web.arena.Database.GetAllSponsorSlides()
2014-08-25 20:18:37 -07:00
if err != nil {
handleWebErr(w, err)
return
}
data := struct {
*model.EventSettings
SponsorSlides []model.SponsorSlide
}{web.arena.EventSettings, sponsorSlides}
2014-08-25 20:18:37 -07:00
err = template.ExecuteTemplate(w, "base", data)
if err != nil {
handleWebErr(w, err)
return
}
}
// Saves the new or modified sponsor slides to the database.
func (web *Web) sponsorSlidesPostHandler(w http.ResponseWriter, r *http.Request) {
if !web.userIsAdmin(w, r) {
2015-08-22 23:33:38 -07:00
return
}
2014-08-25 20:18:37 -07:00
sponsorSlideId, _ := strconv.Atoi(r.PostFormValue("id"))
sponsorSlide, err := web.arena.Database.GetSponsorSlideById(sponsorSlideId)
2014-08-25 20:18:37 -07:00
if err != nil {
handleWebErr(w, err)
return
}
if r.PostFormValue("action") == "delete" {
err := web.arena.Database.DeleteSponsorSlide(sponsorSlide)
2014-08-25 20:18:37 -07:00
if err != nil {
handleWebErr(w, err)
return
}
} else {
2014-09-04 22:04:21 -07:00
displayTimeSec, _ := strconv.Atoi(r.PostFormValue("displayTimeSec"))
2014-08-25 20:18:37 -07:00
if sponsorSlide == nil {
sponsorSlide = &model.SponsorSlide{Subtitle: r.PostFormValue("subtitle"),
2014-08-25 20:18:37 -07:00
Line1: r.PostFormValue("line1"), Line2: r.PostFormValue("line2"),
2014-09-04 22:04:21 -07:00
Image: r.PostFormValue("image"), DisplayTimeSec: displayTimeSec}
err = web.arena.Database.CreateSponsorSlide(sponsorSlide)
2014-08-25 20:18:37 -07:00
} else {
sponsorSlide.Subtitle = r.PostFormValue("subtitle")
sponsorSlide.Line1 = r.PostFormValue("line1")
sponsorSlide.Line2 = r.PostFormValue("line2")
sponsorSlide.Image = r.PostFormValue("image")
2014-09-04 22:04:21 -07:00
sponsorSlide.DisplayTimeSec = displayTimeSec
err = web.arena.Database.SaveSponsorSlide(sponsorSlide)
2014-08-25 20:18:37 -07:00
}
if err != nil {
handleWebErr(w, err)
return
}
}
http.Redirect(w, r, "/setup/sponsor_slides", 303)
2014-08-25 20:18:37 -07:00
}