fixup! fixup! WIP esthetic changes

This commit is contained in:
nemunaire 2017-01-15 23:56:28 +01:00 committed by nemunaire
parent ac3f9129b2
commit 974d474097
5 changed files with 37 additions and 31 deletions

View File

@ -15,7 +15,6 @@ body {
} }
.navbar #clock { .navbar #clock {
font-size: 70px; font-size: 70px;
text-align: center;
} }
.point, .expired { .point, .expired {
transition: color text-shadow 1s; transition: color text-shadow 1s;

View File

@ -46,7 +46,7 @@
<img src="/img/epita.png" alt="Epita" class="center-block"> <img src="/img/epita.png" alt="Epita" class="center-block">
</a> </a>
</div> </div>
<div id="clock" class="col-sm-7" ng-class="{expired: time.expired, end: time.end}" ng-show="time.start || my.team_id"> <div id="clock" class="col-sm-7 text-center" ng-class="{expired: time.expired, end: time.end}" ng-show="time.start || my.team_id">
<span id="hours">{{ time.hours | time }}</span> <span id="hours">{{ time.hours | time }}</span>
<span class="point">:</span> <span class="point">:</span>
<span id="min">{{ time.minutes | time }}</span> <span id="min">{{ time.minutes | time }}</span>
@ -107,7 +107,7 @@
<div class="col-sm-3"> <div class="col-sm-3">
<div class="list-group"> <div class="list-group">
<a ng-repeat="(k,theme) in themes" ng-class="{active: k == current_theme}" class="list-group-item" href="/{{ k }}"><span class="badge"><span class="glyphicon glyphicon-gift" aria-hidden="true"></span> <span ng-show="(my.team_id)">{{ theme.exercice_solved }}/</span>{{ theme.exercice_count }}</span>{{ theme.name }} <span class="glyphicon glyphicon-fire" aria-hidden="true"></span></a> <a ng-repeat="(k,theme) in themes" ng-class="{active: k == current_theme}" class="list-group-item" ng-href="/{{ k }}"><span class="badge"><span class="glyphicon glyphicon-fire" aria-hidden="true" ng-show="max_solved > 1 && theme.solved == max_solved" alt="Déjà {{ theme.solved }} challenges résolus dans ce thème"></span> <span class="glyphicon glyphicon-gift" aria-hidden="true" ng-show="theme.exercice_coeff_max > 1" alt="Des bonus existent pour au moins un challenge de ce thème"></span> <span ng-show="(my.team_id)">{{ theme.exercice_solved }}/</span>{{ theme.exercice_count }}</span>{{ theme.name }}</a>
</div> </div>
<a href="https://srs.epita.fr/"> <a href="https://srs.epita.fr/">

View File

@ -30,14 +30,12 @@ angular.module("FICApp", ["ngRoute", "ngSanitize"])
}); });
$locationProvider.html5Mode(true); $locationProvider.html5Mode(true);
}) })
.run(function($rootScope, $timeout) { .run(function($rootScope, $interval) {
$rootScope.current_theme = 0; $rootScope.current_theme = 0;
$rootScope.current_exercice = 0; $rootScope.current_exercice = 0;
$rootScope.time = {}; $rootScope.time = {};
function updTime() { function updTime() {
$timeout.cancel($rootScope.cbm);
$rootScope.cbm = $timeout(updTime, 1000);
if (sessionStorage.userService) { if (sessionStorage.userService) {
var time = angular.fromJson(sessionStorage.userService); var time = angular.fromJson(sessionStorage.userService);
var srv_cur = (Date.now() + (time.cu * 1000 - time.he)) / 1000; var srv_cur = (Date.now() + (time.cu * 1000 - time.he)) / 1000;
@ -68,6 +66,7 @@ angular.module("FICApp", ["ngRoute", "ngSanitize"])
} }
} }
updTime(); updTime();
$interval(updTime, 1000);
}) })
.controller("DataController", function($sce, $scope, $http, $rootScope, $timeout) { .controller("DataController", function($sce, $scope, $http, $rootScope, $timeout) {
var actMenu = function() { var actMenu = function() {

View File

@ -20,7 +20,7 @@
<base href="/"> <base href="/">
<script src="/js/angular.min.js"></script> <script src="/js/angular.min.js"></script>
</head> </head>
<body style="overflow: hidden" ng-controller="DataController"> <body style="overflow: hidden;" ng-controller="DataController">
<noscript> <noscript>
<div class="alert alert-danger"> <div class="alert alert-danger">
@ -28,27 +28,34 @@
</div> </div>
</noscript> </noscript>
<div class="navbar navbar-default" ng-controller="TimeController" style="position:relative;z-index:1;"> <div class="navbar navbar-default" ng-controller="TimeController" style="box-shadow: 0px 10px 10px 0px #313539; position:fixed; top:0; width:100vw; z-index:1;">
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="navbar-header col-sm-2"> <div class="navbar-header" style="width: 100px">
<a href="/"> <a href="/">
<img src="/img/fic.png" alt="Forum International de la Cybersécurité"> <img src="/img/fic.png" alt="Forum International de la Cybersécurité" class="center-block">
</a> </a>
</div> </div>
<div class="navbar-right col-sm-2"> <div class="navbar-right" style="width: 100px">
<a href="http://www.epita.fr/"> <a href="http://www.epita.fr/">
<img src="/img/epita.png" alt="Epita" class="center-block"> <img src="/img/epita.png" alt="Epita" class="center-block">
</a> </a>
</div> </div>
<div id="clock" class="col-sm-7" ng-class="{expired: time.expired, end: time.end}" ng-show="time.hours === 0 || time.hours"> <div class="text-center" ng-show="time.hours === 0 || time.hours" style="margin-top: -5px; ">
<span id="hours">{{ time.hours | time }}</span> <div id="clock" ng-class="{expired: time.expired, end: time.end}">
<span class="point">:</span> <span id="hours">{{ time.hours | time }}</span>
<span id="min">{{ time.minutes | time }}</span> <span class="point">:</span>
<span class="point">:</span> <span id="min">{{ time.minutes | time }}</span>
<span id="sec">{{ time.seconds | time }}</span> <span class="point">:</span>
<span id="sec">{{ time.seconds | time }}</span>
</div>
<div style="font-size: 18px; margin-top: -15px; text-shadow: 0 0 6px #446688;">
<span ng-show="!time.end && time.duration != time.remaining">Temps restant du challenge forensic</span>
<span ng-show="!time.end && time.duration == time.remaining">Le challenge forensic va bientôt commencer&nbsp;!</span>
<span ng-show="time.end">Le challenge forensic est terminé&nbsp;!</span>
</div>
</div> </div>
<div id="clock" class="col-sm-7" ng-show="!(time.hours === 0 || time.hours)"> <div id="clock" class="col-sm-8" ng-show="!(time.hours === 0 || time.hours)">
{{ time.start | date:"shortDate" }} {{ time.start | date:"shortDate" }}
</div> </div>
</div> </div>
@ -59,37 +66,38 @@
Bandeau Twitter catchant #FIC2016 Bandeau Twitter catchant #FIC2016
</div--> </div-->
<div class="text-justify" style="margin: 10px;"> <div class="container-fluid text-justify" style="margin-top: 110px; padding: 10px; width: 99%">
<div class="row"> <div class="row">
<div class="col-sm-8"> <div class="col-sm-8">
<div ng-repeat="(k,s) in scene" class="repeatedd-item"> <div ng-repeat="(k,s) in scene" class="repeatedd-item">
<div class="well" ng-show="s.type == 'welcome' && !s.go"> <div class="well" ng-show="true || s.type == 'welcome' && !s.go">
<h1>Bienvenue au challenge forensic !</h1> <h1>Bienvenue au challenge forensic&nbsp;!</h1>
<p class="lead text-justify"> <p class="lead text-justify">
Avant de vous installer, venez récupérer votre clef USB auprès Avant de vous installer, venez récupérer votre clef USB auprès
de notre équipe. Elle contient le certificat qui vous permettra de notre équipe. Elle contient le certificat qui vous permettra
de vous authentifier auprès de notre serveur. de vous authentifier auprès de notre serveur.
</p> </p>
<p class="lead text-justify"> <p class="lead text-justify">
Une fois connecté au réseau, vous pouvez accéder au serveur à : Une fois connecté au réseau, vous pouvez accéder au serveur à&nbsp;:
<span style="display: block; font-size: 200%" class="text-center"> <span style="display: block; font-size: 200%" class="text-center">
<a href="https://fic.srs.epita.fr/"><span class="text-info">https://fic.srs.epita.fr/</span></a> <a href="https://fic.srs.epita.fr/"><span class="text-info">https://fic.srs.epita.fr/</span></a>
</span> </span>
</p> </p>
</div> </div>
<div class="panel panel-success" ng-show="s.type == 'welcome' && s.go == 1 && startIn"> <div class="panel panel-success" ng-show="true || s.type == 'welcome' && s.go == 1 && startIn">
<div class="panel-heading"> <div class="panel-heading">
<h3 class="panel-title"><strong>Le challenge forensic 2017 est sur le point de démarrer !</strong></h3> <h3 class="panel-title"><strong>Le challenge forensic 2017 est sur le point de démarrer&nbsp;!</strong></h3>
</div> </div>
<div class="panel-body text-center point" style="font-size: 350%;">{{ startIn }}</div> <div class="panel-body text-center" style="font-size: 450%;" ng-show="startIn">{{ startIn }}</div>
<div class="panel-body text-center" style="font-size: 450%;" ng-show="!startIn">Go, go, go&nbsp;!</div>
</div> </div>
<div class="well" ng-show="s.type == 'welcome' && s.go == 2"> <div class="well" ng-show="true || s.type == 'welcome' && s.go == 2">
<h1>Bienvenue au challenge forensic !</h1> <h1>Bienvenue au challenge forensic&nbsp;!</h1>
<p class="lead text-justify"> <p class="lead text-justify">
Durant ce challenge, les équipes doivent remonter des scénarii Durant ce challenge, les équipes doivent remonter des scénarii
d'attaques auxquels nos systèmes d'information font faces d'attaques auxquels nos systèmes d'information font faces

View File

@ -1,5 +1,5 @@
<ul class="nav nav-tabs nav-justified"> <ul class="nav nav-tabs nav-justified">
<li ng-repeat="(k,exercice) in themes[current_theme].exercices" ng-class="{active: k == current_exercice, disabled: !my.exercices[k]}"><a ng-show="(!my.exercices[k])">{{ exercice.title }}</a><a href="/{{ current_theme }}/{{ k }}" ng-show="(my.exercices[k])">{{ exercice.title }} <span class="glyphicon glyphicon-ok" aria-hidden="true" ng-show="(my.team_id && my.exercices[k].solved)"></span></a></li> <li ng-repeat="(k,exercice) in themes[current_theme].exercices" ng-class="{active: k == current_exercice, disabled: !my.exercices[k]}"><a ng-show="(!my.exercices[k])">{{ exercice.title }}</a><a ng-href="/{{ current_theme }}/{{ k }}" ng-show="(my.exercices[k])">{{ exercice.title }} <span class="glyphicon glyphicon-ok" aria-hidden="true" ng-show="(my.team_id && my.exercices[k].solved)"></span></a></li>
</ul> </ul>
<div class="alert alert-warning" style="margin-top:15px;" ng-show="!(my.exercices[current_exercice])"> <div class="alert alert-warning" style="margin-top:15px;" ng-show="!(my.exercices[current_exercice])">
@ -8,7 +8,7 @@
<div style="margin-top: 15px" class="well well-lg" ng-show="(my.exercices[current_exercice])"> <div style="margin-top: 15px" class="well well-lg" ng-show="(my.exercices[current_exercice])">
<p ng-bind-html="my.exercices[current_exercice].statement"></p> <p ng-bind-html="my.exercices[current_exercice].statement"></p>
<ul> <ul>
<li><strong>Gain :</strong> <ng-pluralize count="themes[current_theme].exercices[current_exercice].gain" when="{'one': '{} point', 'other': '{} points'}"></ng-pluralize> <em ng-show="themes[current_theme].happy">+50% happy hour</em> <em ng-show="themes[current_theme].exercices[current_exercice].solved < 1">+50% first blood</em></li> <li><strong>Gain :</strong> <ng-pluralize count="themes[current_theme].exercices[current_exercice].gain" when="{'one': '{} point', 'other': '{} points'}"></ng-pluralize> <em ng-show="themes[current_theme].happy">+10% happy hour</em> <em ng-show="themes[current_theme].exercices[current_exercice].solved < 1">+15% first blood</em></li>
<li><strong>Résolu par :</strong> <ng-pluralize count="themes[current_theme].exercices[current_exercice].solved" when="{'0': 'aucune équipe', 'one': '{} équipe', 'other': '{} équipes'}"></ng-pluralize>.</li> <li><strong>Résolu par :</strong> <ng-pluralize count="themes[current_theme].exercices[current_exercice].solved" when="{'0': 'aucune équipe', 'one': '{} équipe', 'other': '{} équipes'}"></ng-pluralize>.</li>
</ul> </ul>
</div> </div>
@ -18,7 +18,7 @@
<div class="panel-title"><span class="glyphicon glyphicon-download-alt" aria-hidden="true"></span> Téléchargements</div> <div class="panel-title"><span class="glyphicon glyphicon-download-alt" aria-hidden="true"></span> Téléchargements</div>
</div> </div>
<div class="list-group"> <div class="list-group">
<a href="{{ file.path }}" target="_self" class="list-group-item" ng-repeat="file in my.exercices[current_exercice].files"> <a ng-href="{{ file.path }}" target="_self" class="list-group-item" ng-repeat="file in my.exercices[current_exercice].files">
<h1 class="pull-left" style="margin: 7px 7px 5px -5px"><span class="glyphicon glyphicon-download" aria-hidden="true"></span></h1> <h1 class="pull-left" style="margin: 7px 7px 5px -5px"><span class="glyphicon glyphicon-download" aria-hidden="true"></span></h1>
<h4 class="list-group-item-heading"><strong><samp>{{ file.name }}</samp></strong></h4> <h4 class="list-group-item-heading"><strong><samp>{{ file.name }}</samp></strong></h4>
<p class="list-group-item-text">Taille : <span title="{{ file.size }} octets">{{ file.size | size }}</span> &ndash; SHA-1 : <samp>{{ file.checksum }}</samp></p> <p class="list-group-item-text">Taille : <span title="{{ file.size }} octets">{{ file.size | size }}</span> &ndash; SHA-1 : <samp>{{ file.checksum }}</samp></p>
@ -54,7 +54,7 @@
<form ng-controller="SubmissionController" ng-submit="ssubmit()"> <form ng-controller="SubmissionController" ng-submit="ssubmit()">
<div class="form-group" ng-repeat="key in flags" ng-class="{'has-success': key.found, 'has-feedback': key.found}"> <div class="form-group" ng-repeat="key in flags" ng-class="{'has-success': key.found, 'has-feedback': key.found}">
<label for="sol_{{ key.id }}">{{ key.name }} :</label> <label for="sol_{{ key.id }}">{{ key.name }} :</label>
<input type="text" class="form-control" id="sol_{{ key.id }}" name="sol_{{ index }}" ng-model="key.value" ng-disabled="key.found"> <input type="text" class="form-control" id="sol_{{ key.id }}" name="sol_{{ key.id }}" ng-model="key.value" ng-disabled="key.found">
<span class="glyphicon glyphicon-ok form-control-feedback" aria-hidden="true" ng-show="key.found"></span> <span class="glyphicon glyphicon-ok form-control-feedback" aria-hidden="true" ng-show="key.found"></span>
</div> </div>
<div class="form-group text-right"> <div class="form-group text-right">