From ef4a73867203a056344071f4949e2c4eeabc597a Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Sun, 15 Jan 2017 02:37:59 +0100 Subject: [PATCH] admin: control settings --- admin/api/settings.go | 34 +++++++++++ admin/index.go | 1 + admin/main.go | 1 + admin/static.go | 3 + admin/static/index.html | 1 + admin/static/js/app.js | 38 ++++++++++++ admin/static/views/settings.html | 102 +++++++++++++++++++++++++++++++ 7 files changed, 180 insertions(+) create mode 100644 admin/api/settings.go create mode 100644 admin/static/views/settings.html diff --git a/admin/api/settings.go b/admin/api/settings.go new file mode 100644 index 00000000..9a7bc638 --- /dev/null +++ b/admin/api/settings.go @@ -0,0 +1,34 @@ +package api + +import ( + "encoding/json" + "path" + + "srs.epita.fr/fic-server/settings" + + "github.com/julienschmidt/httprouter" +) + +var TeamsDir string + +func init() { + router.GET("/api/settings.json", apiHandler(getSettings)) + router.PUT("/api/settings.json", apiHandler(saveSettings)) +} + +func getSettings(_ httprouter.Params, body []byte) (interface{}, error) { + return settings.ReadSettings(path.Join(TeamsDir, settings.SettingsFile)) +} + +func saveSettings(_ httprouter.Params, body []byte) (interface{}, error) { + var config settings.FICSettings + if err := json.Unmarshal(body, &config); err != nil { + return nil, err + } + + if err := settings.SaveSettings(path.Join(TeamsDir, settings.SettingsFile), config); err != nil { + return nil, err + } else { + return config, err + } +} diff --git a/admin/index.go b/admin/index.go index 4e097ed1..a7b2b457 100644 --- a/admin/index.go +++ b/admin/index.go @@ -24,6 +24,7 @@ const indextpl = `
  • Thèmes
  • Exercices
  • Événements
  • +
  • Paramètres
  • Thèmes
  • Exercices
  • Événements
  • +
  • Paramètres
  • Paramètres

    + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    +
    + +
    +
    +
    + +
    min
    +
    +
    +
    + +
    + +
    + +
    + +
    +
    + +
    + +
    + +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    + +
    +