admin: Handle dashboard later publication through evdist

This commit is contained in:
nemunaire 2024-03-14 17:44:21 +01:00
commit 79afaa8fb2
4 changed files with 157 additions and 9 deletions

View file

@ -962,9 +962,12 @@ angular.module("FICApp")
})
.controller("PublicController", function($scope, $rootScope, $routeParams, $location, Scene, Theme, Teams, Exercice) {
$scope.propagationtime = null;
$scope.presetName = "";
$scope.screens = [0,1,2,3,4,5,6,7,8,9];
$scope.screenid = $routeParams.screenId;
$scope.display = Scene.get({ screenId: $routeParams.screenId });
$scope.listScenes = Scene.get();
$scope.themes = Theme.query();
$scope.teams = Teams.get();
@ -1221,6 +1224,32 @@ angular.module("FICApp")
}
}
$scope.loadFile = function(fname) {
$scope.display = Scene.get({ screenId: fname });
$scope.someUpdt = true;
};
$scope.deleteFile = function(fname) {
Scene.delete({ screenId: fname });
$scope.listScenes = Scene.get();
};
$scope.latePropagation = function() {
$scope.someUpdt = false;
var prms = Scene.update({ screenId: $scope.screenid, t: $scope.propagationTime }, $scope.display);
prms.$promise.then(function() {
$scope.addToast('success', 'Scene successfully planned!');
}, function(response) {
$scope.addToast('danger', 'An error occurs when planning scene:', response.data.errmsg);
});
};
$scope.savePreset = function() {
$scope.someUpdt = false;
var prms = Scene.update({ screenId: $scope.screenid, p: $scope.presetName }, $scope.display);
prms.$promise.then(function() {
$scope.addToast('success', 'Preset successfully saved!');
}, function(response) {
$scope.addToast('danger', 'An error occurs when saving preset:', response.data.errmsg);
});
};
$scope.saveScenes = function() {
$scope.someUpdt = false;
var prms = Scene.update({ screenId: $scope.screenid }, $scope.display);

View file

@ -4,7 +4,7 @@
<select class="custom-select" style="width: auto" id="screenid" ng-model="screenid" ng-options="k as 'Écran ' + v for (k, v) in screens" ng-change="chScreen()"></select>
<div class="float-right dropdown">
<button type="button" class="btn btn-secondary dropdown-toggle mr-sm-2" type="button" data-toggle="dropdown">
Charger scène
Scène prédéfinie
</button>
<div class="dropdown-menu">
<a class="dropdown-item" ng-click="presetScene('registration')">Enregistrement équipes</a>
@ -19,12 +19,44 @@
<a class="dropdown-item" ng-click="presetScene('freehintquarter')">Free Hint Quarter</a>
<a class="dropdown-item" ng-click="presetScene('happyhour')">Happy Hour</a>
<div class="dropdown-divider"></div>
<a href="#" class="dropdown-item" ng-repeat="preset in listScenes.presets" ng-click="loadFile('preset-' + preset)">
{{ preset }}
<button class="btn btn-sm btn-outline-danger" ng-click="deleteFile('preset-' + preset); $event.preventDefault();"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span></button>
</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" ng-click="clearScene()">Scène vide</a>
</div>
</div>
<button type="button" ng-click="addSide()" class="float-right btn btn-primary mr-sm-2"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> élm. côté</button>
<button type="button" ng-click="addScene()" class="float-right btn btn-primary mr-sm-2"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> élm. central</button>
<button type="submit" class="float-right btn mr-sm-2" ng-class="{'btn-success': someUpdt,'btn-secondary': !someUpdt}"><span class="glyphicon glyphicon-save" aria-hidden="true"></span> Publier cette scène</button>
<div class="float-right btn-group mr-sm-2">
<button type="submit" class="btn" ng-class="{'btn-success': someUpdt,'btn-secondary': !someUpdt}"><span class="glyphicon glyphicon-blackboard" aria-hidden="true"></span> Publier cette scène</button>
<button type="button" class="btn dropdown-toggle dropdown-toggle-split" ng-class="{'btn-success': someUpdt,'btn-secondary': !someUpdt}" data-toggle="dropdown" aria-expanded="false">
<span class="sr-only">Toggle Dropdown</span>
</button>
<div class="dropdown-menu">
<div class="px-3 py-1">
<div class="form-group">
<label for="public-propagation-time">Publier à :</label>
<input type="datetime-local" id="public-propagation-time" class="form-control" ng-model="propagationTime">
</div>
<button type="button" ng-disabled="!propagationTime" ng-click="latePropagation()" class="btn btn-primary w-100"><span class="glyphicon glyphicon-time" aria-hidden="true"></span> Publier plus tard</button>
</div>
<div class="dropdown-divider"></div>
<div class="px-3 py-1">
<div class="form-group">
<label for="public-preset-name">Sauvegarder comme :</label>
<input id="public-preset-name" class="form-control" placeholder="Scène de départ" ng-model="presetName">
</div>
<button type="button" ng-disabled="!presetName" ng-click="savePreset()" class="btn btn-primary w-100"><span class="glyphicon glyphicon-download-alt" aria-hidden="true"></span> Sauvegarder</button>
</div>
<div class="dropdown-divider"></div>
<a href="#" class="dropdown-item" ng-repeat="next in listScenes.nexts" ng-if="next.screen == screenid" ng-click="loadFile(next.name)">
{{ next.date | date:'dd/MM/yy HH:mm:ss' }}
<button class="btn btn-sm btn-outline-danger" ng-click="deleteFile(next.name); $event.preventDefault();"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span></button>
</a>
</div>
</div>
</h2>
<div class="row">