From 17f51f5e7b45821d0f59135b05b39cf4a410c1d5 Mon Sep 17 00:00:00 2001 From: nemunaire Date: Tue, 24 Jan 2017 02:14:28 +0100 Subject: [PATCH] admin: can force page regeneration --- admin/api/settings.go | 2 +- admin/static/js/app.js | 4 ++++ admin/static/views/settings.html | 4 +++- backend/main.go | 6 +++++- settings/settings.go | 1 + 5 files changed, 14 insertions(+), 3 deletions(-) diff --git a/admin/api/settings.go b/admin/api/settings.go index 31bc7446..40afef56 100644 --- a/admin/api/settings.go +++ b/admin/api/settings.go @@ -22,7 +22,7 @@ func getSettings(_ httprouter.Params, body []byte) (interface{}, error) { if settings.ExistsSettings(path.Join(TeamsDir, settings.SettingsFile)) { return settings.ReadSettings(path.Join(TeamsDir, settings.SettingsFile)) } else { - return settings.FICSettings{time.Unix(0,0), time.Unix(0,0), fic.FirstBlood, fic.SubmissionCostBase, false, false, false, true, true}, nil + return settings.FICSettings{time.Unix(0,0), time.Unix(0,0), time.Unix(0,0), fic.FirstBlood, fic.SubmissionCostBase, false, false, false, true, true}, nil } } diff --git a/admin/static/js/app.js b/admin/static/js/app.js index 458e49f8..34366490 100644 --- a/admin/static/js/app.js +++ b/admin/static/js/app.js @@ -228,6 +228,10 @@ angular.module("FICApp") $location.url("/"); }); } + $scope.regenerate = function() { + this.config.generation = (new Date()).toISOString(); + $scope.saveSettings(); + } $scope.launchChallenge = function() { var ts = Date.now() - Date.now() % 60000; var d = new Date(ts + 120000); diff --git a/admin/static/views/settings.html b/admin/static/views/settings.html index fe15a1dc..97aebc06 100644 --- a/admin/static/views/settings.html +++ b/admin/static/views/settings.html @@ -1,7 +1,9 @@ -

Paramètres

+

Paramètres Regénérer les fichiers statiques

+ +
diff --git a/backend/main.go b/backend/main.go index b0d660ee..6b458107 100644 --- a/backend/main.go +++ b/backend/main.go @@ -43,8 +43,12 @@ func watchsubdir(watcher *fsnotify.Watcher, pathname string) error { } } +var lastRegeneration time.Time + func reloadSettings(config settings.FICSettings) { - if fic.PartialValidation != config.PartialValidation || fic.UnlockedChallenges != !config.EnableExerciceDepend || fic.FirstBlood != config.FirstBlood || fic.SubmissionCostBase != config.SubmissionCostBase { + if lastRegeneration != config.Generation || fic.PartialValidation != config.PartialValidation || fic.UnlockedChallenges != !config.EnableExerciceDepend || fic.FirstBlood != config.FirstBlood || fic.SubmissionCostBase != config.SubmissionCostBase { + lastRegeneration = config.Generation + fic.PartialValidation = config.PartialValidation fic.UnlockedChallenges = !config.EnableExerciceDepend diff --git a/settings/settings.go b/settings/settings.go index 6775c03c..d327663c 100644 --- a/settings/settings.go +++ b/settings/settings.go @@ -15,6 +15,7 @@ const SettingsFile = "settings.json" type FICSettings struct { Start time.Time `json:"start"` End time.Time `json:"end"` + Generation time.Time `json:"generation"` FirstBlood float64 `json:"firstBlood"` SubmissionCostBase float64 `json:"submissionCostBase"`