Example #1
0
//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
}
Example #2
0
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
}
Example #3
0
//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
}