admin: Handle challenge info on settings page
This commit is contained in:
parent
c713a0a25d
commit
48ee5321a8
2 changed files with 286 additions and 210 deletions
|
@ -223,6 +223,11 @@ angular.module("FICApp")
|
|||
'update': {method: 'PUT'},
|
||||
})
|
||||
})
|
||||
.factory("SettingsChallenge", function($resource) {
|
||||
return $resource("api/challenge.json", null, {
|
||||
'update': {method: 'PUT'},
|
||||
})
|
||||
})
|
||||
.factory("Scene", function($resource) {
|
||||
return $resource("api/public/:screenId", { screenId: '@id' }, {
|
||||
'update': {method: 'PUT'},
|
||||
|
@ -494,7 +499,7 @@ angular.module("FICApp")
|
|||
$scope.monitor = Monitor.get();
|
||||
})
|
||||
|
||||
.controller("SettingsController", function($scope, $rootScope, Settings, ROSettings, $location, $http, $interval) {
|
||||
.controller("SettingsController", function($scope, $rootScope, Settings, SettingsChallenge, ROSettings, $location, $http, $interval) {
|
||||
$scope.displayDangerousActions = false;
|
||||
$scope.config = Settings.get();
|
||||
$scope.config.$promise.then(function(response) {
|
||||
|
@ -505,6 +510,7 @@ angular.module("FICApp")
|
|||
$rootScope.settings.activateTime = new Date(response.activateTime);
|
||||
})
|
||||
$scope.configro = ROSettings.get();
|
||||
$scope.challenge = SettingsChallenge.get();
|
||||
$scope.duration = 360;
|
||||
|
||||
$scope.exerciceDependChange = function() {
|
||||
|
@ -542,6 +548,13 @@ angular.module("FICApp")
|
|||
}, 1500);
|
||||
$scope.$on('$destroy', function () { $interval.cancel(progressInterval); });
|
||||
|
||||
$scope.saveChallengeInfo = function() {
|
||||
this.challenge.$update(function(response) {
|
||||
$scope.addToast('success', 'Infos du challenge mises à jour avec succès !');
|
||||
}, function(response) {
|
||||
$scope.addToast('danger', 'An error occurs when saving challenge info:', response.data.errmsg);
|
||||
});
|
||||
}
|
||||
$scope.saveSettings = function(msg) {
|
||||
if (msg === undefined) { msg = 'New settings saved!'; }
|
||||
var nStart = this.config.start;
|
||||
|
|
|
@ -1,9 +1,13 @@
|
|||
<form ng-submit="saveSettings()" class="row">
|
||||
<div class="col-8 jumbotron text-light bg-dark">
|
||||
|
||||
<h2>Paramètres<button ng-click="regenerate()" class="float-right btn btn-info" type="button"><span class="glyphicon glyphicon-refresh" aria-hidden="true"></span> Regénérer les fichiers statiques</a></h2>
|
||||
<hr>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-8">
|
||||
<form ng-submit="saveSettings()" class="card my-3">
|
||||
<div class="card-header">
|
||||
<button ng-click="regenerate()" class="float-right btn btn-info" type="button"><span class="glyphicon glyphicon-refresh" aria-hidden="true"></span> Regénérer les fichiers statiques</button>
|
||||
<h2 class="mb-0">
|
||||
Paramètres
|
||||
</h2>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<input type="hidden" class="form-control form-control-sm" id="lastRegeneration" ng-model="config.generation">
|
||||
|
||||
<div class="form-group row">
|
||||
|
@ -73,7 +77,7 @@
|
|||
|
||||
<div class="form-group row">
|
||||
<div class="col">
|
||||
<div class="input-group" style="margin-top: 5px;">
|
||||
<div class="input-group mt-1">
|
||||
<div class="input-group-prepend">
|
||||
<button class="btn btn-sm btn-outline-secondary dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" ng-class="{'btn-outline-secondary': !activateTimeCountDown, 'btn-warning': activateTimeCountDown && config.activateTime == settings.activateTime, 'btn-outline-warning': config.activateTime && config.activateTime != settings.activateTime}"><span class="glyphicon glyphicon-record" aria-hidden="true"></span> Propager plus tard</button>
|
||||
<div class="dropdown-menu">
|
||||
|
@ -99,12 +103,70 @@
|
|||
<button type="submit" class="btn btn-success"><span class="glyphicon glyphicon-save" aria-hidden="true"></span> Propager ces paramètres</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
<div class="col-4 jumbotron text-light bg-dark">
|
||||
<fieldset class="form-group">
|
||||
<legend class="col-form-legend">Options</legend>
|
||||
<form ng-submit="saveChallengeInfo()" class="card my-3">
|
||||
<div class="card-header">
|
||||
<button type="submit" class="btn btn-success float-right"><span class="glyphicon glyphicon-ok" aria-hidden="true"></span></button>
|
||||
<h3 class="mb-0">Infos challenge</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
|
||||
<div class="form-group row">
|
||||
<label for="challengeTitle" class="col-sm-3 col-form-label col-form-label-sm">Nom du challenge</label>
|
||||
<div class="col-sm-9">
|
||||
<input type="text" class="form-control form-control-sm" id="challengeTitle" ng-model="challenge.title">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label for="challengeAuthors" class="col-sm-3 col-form-label col-form-label-sm">Auteur du challenge</label>
|
||||
<div class="col-sm-9">
|
||||
<input type="text" class="form-control form-control-sm" id="challengeAuthors" ng-model="challenge.authors">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label for="challengeVideoslink" class="col-sm-3 col-form-label col-form-label-sm">Liens solutions</label>
|
||||
<div class="col-sm-9">
|
||||
<input type="text" class="form-control form-control-sm" id="challengeVideoslink" ng-model="challenge.videoslink">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label for="challengeDescription" class="col-sm-3 col-form-label col-form-label-sm">Description</label>
|
||||
<div class="col-sm-9">
|
||||
<textarea class="form-control form-control-sm" id="challengeDescription" ng-model="challenge.description">
|
||||
</textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label for="challengeRules" class="col-sm-3 col-form-label col-form-label-sm">Règles</label>
|
||||
<div class="col-sm-9">
|
||||
<textarea class="form-control form-control-sm" id="challengeRules" ng-model="challenge.rules">
|
||||
</textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label for="challengeYourMission" class="col-sm-3 col-form-label col-form-label-sm">Mission</label>
|
||||
<div class="col-sm-9">
|
||||
<textarea class="form-control form-control-sm" id="challengeYourMission" ng-model="challenge.your_mission">
|
||||
</textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<form ng-submit="saveSettings()" class="card my-3">
|
||||
<div class="card-header">
|
||||
<h2 class="mb-0">Options</h2>
|
||||
</div>
|
||||
<div class="card-body px-0 py-2">
|
||||
<div class="form-check">
|
||||
<label class="custom-control custom-checkbox">
|
||||
<input class="custom-control-input" type="checkbox" ng-model="config.allowRegistration">
|
||||
|
@ -211,9 +273,10 @@
|
|||
</label>
|
||||
</div>
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div class="card mb-5" ng-show="!config.wip && timeProgression && !displayDangerousActions">
|
||||
<div class="card-header bg-secondary text-light">
|
||||
|
|
Reference in a new issue