dashboard: add trophee scene

This commit is contained in:
nemunaire 2020-01-30 18:47:46 +01:00
parent 66a72633d6
commit 83ba3b88a5
3 changed files with 88 additions and 3 deletions

View File

@ -798,6 +798,7 @@ angular.module("FICApp")
};
$scope.rank_types = {
"general": "Classement général",
"final": "Classement final",
};
$scope.rank_types_side = {
"carousel": "Classement général carousel",
@ -865,6 +866,42 @@ angular.module("FICApp")
},
];
}
else if (scene == "end") {
$scope.display.scenes = [
{
type: "rank",
params: { which: "final" },
},
{
type: "table",
params: { kind: "teams", themes: $scope.themes.map(function(z, i) { return z.id; }), total: true, teams: [] },
},
];
angular.forEach($scope.teams, function(team, tid) {
if (team.rank >= 1 && team.rank <= 4)
$scope.display.scenes[1].params.teams.push(tid)
});
$scope.display.side = [
{
type: "rank",
params: { which: "carousel" },
},
{
type: "graph",
params: { teams: [], height: 400, legend: false, hide: true },
},
{
type: "message",
params: { html: '<div class="row"><div class="col"><a href="http://www.epita.fr/" class="align-middle text-center"><img class="mt-4" src="/img/epita.png" alt="Epita"></a></div><div class="col mr-3"> <a href="http://www.epita.fr/"><img src="/img/comcyber.png" alt="Réserves de cyberdéfense" style="height: 100px;"></a></div></div>', hide: true },
},
];
angular.forEach($scope.teams, function(team, tid) {
if (team.rank >= 1 && team.rank <= 9)
$scope.display.side[1].params.teams.push(tid)
});
$scope.display.hideEvents = true;
$scope.display.hideCountdown = true;
}
else if (scene == "summary") {
$scope.display.scenes = [
{
@ -886,6 +923,8 @@ angular.module("FICApp")
params: { },
},
];
$scope.display.hideEvents = false;
$scope.display.hideCountdown = false;
}
else if (scene == "summary2") {
$scope.display.scenes = [
@ -908,6 +947,8 @@ angular.module("FICApp")
params: { },
},
];
$scope.display.hideEvents = false;
$scope.display.hideCountdown = false;
}
else if (scene == "summary3") {
$scope.display.scenes = [
@ -926,6 +967,8 @@ angular.module("FICApp")
params: { },
},
];
$scope.display.hideEvents = false;
$scope.display.hideCountdown = false;
}
else if (scene == "happyhour") {
$scope.display.customCountdown = {

View File

@ -10,6 +10,7 @@
<a class="dropdown-item" ng-click="presetScene('registration')">Enregistrement équipes</a>
<a class="dropdown-item" ng-click="presetScene('welcome')">Accueil public</a>
<a class="dropdown-item" ng-click="presetScene('start')">Lancement</a>
<a class="dropdown-item" ng-click="presetScene('end')">Fin/Récompenses</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" ng-click="presetScene('summary')">Résumé</a>
<a class="dropdown-item" ng-click="presetScene('summary2')">Résumé 2</a>
@ -125,14 +126,14 @@
</div>
</div>
<div class="form-group row" ng-if="scene.type == 'rank'">
<div class="form-group row" ng-if="scene.type == 'rank' && scene.params.which == 'general'">
<label for="rlimit" class="col-sm-2 col-form-label col-form-label-sm">Nombre d'éléments</label>
<div class="col-sm-10">
<input type="text" id="rlimit" ng-model="scene.params.limit" class="form-control form-control-sm" integer>
</div>
</div>
<div class="form-group row" ng-if="scene.type == 'rank'">
<div class="form-group row" ng-if="scene.type == 'rank' && scene.params.which == 'general'">
<label for="begin" class="col-sm-2 col-form-label col-form-label-sm">Début du classement (à partir de 0)</label>
<div class="col-sm-10">
<input type="text" id="rbegin" ng-model="scene.params.begin" class="form-control form-control-sm" integer>

View File

@ -175,12 +175,53 @@
</tr>
</thead>
<tbody ng-if="s.params.which == 'general'">
<tr ng-repeat="r in rank | orderBy: 'rank' | limitTo: s.params.limit: s.params.begin">
<tr ng-repeat="r in rank | limitTo: s.params.limit: s.params.begin">
<th class="text-right">{{ r.rank }}<sup ng-if="r.rank == 1">er</sup><sup ng-if="r.rank > 1">e</sup></th>
<td><span class="badge" style="background-color: {{r.color}}" ng-if="s.params.legend">&nbsp;&nbsp;</span> {{ r.name }}</td>
<td>{{ r.score | number:0 }}</td>
</tr>
</tbody>
<tbody ng-if="s.params.which == 'final'">
<tr>
<th class="text-right">{{ rank[0].rank }}<sup>er</sup></th>
<td><span class="badge" style="background-color: {{rank[0].color}}" ng-if="s.params.legend">&nbsp;&nbsp;</span> {{ rank[0].name }}</td>
<td>{{ rank[0].score | number:0 }}</td>
</tr>
<tr>
<td colspan="3">
<ul class="list-inline text-center">
<li ng-repeat="member in rank[0].members">{{ member.firstname }} <em ng-bind="member.nickname"></em> <span style="font-variant: small-caps;">{{ member.lastname | capitalize }}</span> ({{ member.company }})</li>
</ul>
</td>
</tr>
<tr>
<th class="text-right">{{ rank[1].rank }}<sup>e</sup></th>
<td><span class="badge" style="background-color: {{rank[1].color}}" ng-if="s.params.legend">&nbsp;&nbsp;</span> {{ rank[1].name }}</td>
<td>{{ rank[1].score | number:0 }}</td>
</tr>
<tr>
<td colspan="3">
<ul class="list-inline text-center">
<li ng-repeat="member in rank[1].members">{{ member.firstname }} <em ng-bind="member.nickname"></em> <span style="font-variant: small-caps;">{{ member.lastname | capitalize }}</span> ({{ member.company }})</li>
</ul>
</td>
</tr>
<tr>
<th class="text-right">{{ rank[2].rank }}<sup>e</sup></th>
<td><span class="badge" style="background-color: {{rank[2].color}}" ng-if="s.params.legend">&nbsp;&nbsp;</span> {{ rank[2].name }}</td>
<td>{{ rank[2].score | number:0 }}</td>
</tr>
<tr>
<td colspan="3">
<ul class="list-inline text-center">
<li ng-repeat="member in rank[2].members">{{ member.firstname }} <em ng-bind="member.nickname"></em> <span style="font-variant: small-caps;">{{ member.lastname | capitalize }}</span> ({{ member.company }})</li>
</ul>
</td>
</tr>
</tbody>
</table>
</div>