//Upload renders the new presentation upload page. func Upload(c util.Context) (err error) { uploadURL, err := blobstore.UploadURL(c, "/admin/presentation/upload", nil) if err != nil { return } acts, err := activation.GetAfterTime(time.Now(), c) if err != nil { return } type actWithName struct { A *activation.Activation P *presentation.Presentation } ans := make([]actWithName, len(acts)) for i, a := range acts { pk := a.Presentation var p *presentation.Presentation p, err = presentation.GetByKey(pk, c) if err != nil { c.Errorf("Could not load presentation: %v", err) continue } ans[i] = actWithName{a, p} } util.RenderLayout("upload.html", "Nahrať prezentáciu", struct { UploadURL *url.URL Ans []actWithName }{uploadURL, ans}, c) return }
func ActivateScheduled(c util.Context) (err error) { t := time.Now() as, err := activation.GetBeforeTime(t, c) if err != nil { return } for _, a := range as { var p *presentation.Presentation p, err = presentation.GetByKey(a.Presentation, c) if err != nil { c.Errorf("Couldn't load presentation %s", a.Presentation.Encode()) continue } if a.Op == activation.Activate { p.Active = true } else { p.Active = false } err = p.Save(c) if err != nil { c.Errorf("Couldn't save presentation: %v", p.Name) continue } err = a.Delete(c) if err != nil { c.Errorf("Couldn't remove activation: %s", a.Key) continue } } return }
//ShowConfig handles showing the page where user can see and edit //the central configuration for clients. func ShowConfig(c util.Context) (err error) { conf, err := config.Get(c) if err != nil { if err == datastore.Done { conf, err = mkConfig(c) if err != nil { c.Errorf("Error when creating new config: %v", err) } http.Redirect(c.W, c.R, "/admin/config", 303) err = nil return } else { return } } as, err := action.GetFor(conf, c) if err != nil { return } tcs, err := timeConfig.GetAll(c) if err != nil { return } a := prepareActions(as) util.RenderLayout("config.html", "Všeobecné nastavenia", struct { Conf *config.Config A map[string][]time.Time ZeroTime time.Time Tz *time.Location Tcs []*timeConfig.TimeConfig }{conf, a, time.Date(0001, 01, 01, 00, 00, 00, 00, utc), util.Tz, tcs}, c, "/static/js/config.js") return }