78 lines
5.2 KiB
HTML
78 lines
5.2 KiB
HTML
<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>
|
|
</ul>
|
|
|
|
<div class="alert alert-warning" style="margin-top:15px;" ng-show="!(my.exercices[current_exercice])">
|
|
Vous n'avez pas encore accès à cet exercice.
|
|
</div>
|
|
<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>
|
|
<blockquote ng-show="(my.exercices[current_exercice].hint)" ng-bind-html="my.exercices[current_exercice].hint"></blockquote>
|
|
<hr ng-show="!(my.exercices[current_exercice].hint)">
|
|
<ul>
|
|
<li><strong>Gain :</strong> {{ themes[current_theme].exercices[current_exercice].gain }} points</li>
|
|
<li><strong>Résolu par :</strong> {{ themes[current_theme].exercices[current_exercice].solved }} équipes</li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="panel panel-default" ng-show="(my.exercices[current_exercice] && my.exercices[current_exercice].files.length)">
|
|
<div class="panel-heading">
|
|
<div class="panel-title"><span class="glyphicon glyphicon-download-alt" aria-hidden="true"></span> Téléchargements</div>
|
|
</div>
|
|
<div class="list-group">
|
|
<a 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>
|
|
<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> – SHA-1 : <samp>{{ file.checksum }}</samp></p>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="panel panel-danger" ng-show="my.team_id && my.exercices[current_exercice] && !(my.exercices[current_exercice].solved)">
|
|
<div class="panel-heading">
|
|
<div class="panel-title"><span class="glyphicon glyphicon-flag" aria-hidden="true"></span> Soumettre une solution</div>
|
|
</div>
|
|
<ul class="list-group" ng-show="(my.exercices[current_exercice].solved_number || my.exercices[current_exercice].submitted || sberr)">
|
|
<li class="list-group-item text-warning" ng-show="my.exercices[current_exercice].solved_number">{{ my.exercices[current_exercice].solved_number }} tentative(s) effectuée(s). Dernière solution envoyée à {{ my.exercices[current_exercice].solved_time | date:"fullDate" }}.</li>
|
|
<li class="list-group-item" ng-class="messageClass" ng-show="my.exercices[current_exercice].submitted || sberr"><strong ng-show="!sberr">Votre solution a bien été envoyée !</strong><strong ng-show="sberr">{{ sberr }}</strong> {{ message }}</li>
|
|
</ul>
|
|
<div class="panel-body" ng-show="!my.exercices[current_exercice].submitted || sberr">
|
|
<form ng-controller="SubmissionController" ng-submit="ssubmit()">
|
|
<div class="form-group" ng-repeat="key in flags">
|
|
<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">
|
|
</div>
|
|
<div class="form-group text-right">
|
|
<button type="submit" class="btn btn-danger" id="sbmt">Soumettre</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="panel panel-success" ng-show="(my.team_id && my.exercices[current_exercice].solved)">
|
|
<div class="panel-heading">
|
|
<div class="panel-title"><span class="glyphicon glyphicon-flag" aria-hidden="true"></span> Challenge réussi !</div>
|
|
</div>
|
|
<div class="panel-body">
|
|
Vous êtes la {{ my.exercices[current_exercice].solved_number }}<sup>e</sup> équipe à avoir résolu ce challenge à {{ my.exercices[current_exercice].solved_time | date:"fullDate" }}. Vous avez marqué {{ themes[current_theme].exercices[current_exercice].gain }} points !
|
|
</div>
|
|
</div>
|
|
|
|
<div class="panel panel-success" ng-show="(!my.team_id && my.exercices[current_exercice].keys)">
|
|
<div class="panel-heading">
|
|
<div class="panel-title"><span class="glyphicon glyphicon-flag" aria-hidden="true"></span> Solution du challenge</div>
|
|
</div>
|
|
<div class="panel-body">
|
|
<p>
|
|
Vérifiez les clefs que vous trouvez en comparant leur SHA-512 :
|
|
</p>
|
|
<dl class="dl-horizontal" ng-repeat="key in my.exercices[current_exercice].keys">
|
|
<dt title="{{ key.slice(128) }}">{{ key.slice(128) }}</dt>
|
|
<dd class="samp"><samp>{{ key.slice(0, 128) }}</samp></dd>
|
|
</dl>
|
|
<iframe type="text/html" ng-show="my.exercices[current_exercice].video_uri" ng-src="{{ my.exercices[current_exercice].video_uri }}" frameborder="0" style="width: 100%; height: 35vw">
|
|
Regardez la vidéo de résolution de cet exercice : <a ng-href="{{ my.exercices[current_exercice].video_uri }}">{{ my.exercices[current_exercice].video_uri }}</a>.
|
|
</iframe>
|
|
</div>
|
|
</div>
|