Pierre-Olivier Mercier
357035deba
All checks were successful
continuous-integration/drone/push Build is passing
111 lines
5.3 KiB
HTML
111 lines
5.3 KiB
HTML
<h2>
|
|
{{exercice.title}}
|
|
<small ng-if="themes && themes[exercice.id_theme]"><a href="themes/{{ exercice.id_theme }}" title="{{themes[exercice.id_theme].authors | stripHTML}}">{{themes[exercice.id_theme].name}}</a></small>
|
|
<div class="btn-group" role="group" ng-if="themes[exercice.id_theme].exercices[exercice.id]">
|
|
<a href="exercices/{{ themes[exercice.id_theme].exercices[exercice.id].previous }}" title="Exercice précédent" ng-class="{'disabled': !themes[exercice.id_theme].exercices[exercice.id].previous}" class="btn btn-sm btn-light"><span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span></a>
|
|
<a href="exercices/{{ themes[exercice.id_theme].exercices[exercice.id].next }}" title="Exercice suivant" ng-class="{'disabled': !themes[exercice.id_theme].exercices[exercice.id].next}" class="btn btn-sm btn-light"><span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span></a>
|
|
</div>
|
|
<a href="../{{themes[exercice.id_theme].urlid}}/{{exercice.urlid}}" target="_self" class="float-right ml-2 btn btn-sm btn-info"><span class="glyphicon glyphicon-road" aria-hidden="true"></span> Site du challenge</a>
|
|
</h2>
|
|
|
|
<div class="row mb-3">
|
|
<div class="col-md-6" ng-bind-html="exercice.statement"></div>
|
|
<div class="col-md-6" ng-bind-html="exercice.overview"></div>
|
|
</div>
|
|
|
|
<div ng-controller="ExerciceQAController" class="mb-5">
|
|
<form ng-submit="saveQuery()" class="card mb-3">
|
|
<div class="card-header">
|
|
Qu'avez-vous pensé de ce défi ?
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="form-group row" ng-repeat="(field, namedField) in namedFields">
|
|
<label for="{{ field }}" class="col-2 col-form-label col-form-label-sm">{{ namedField }}</label>
|
|
<div class="col-10">
|
|
<input type="text" class="form-control form-control-sm" id="{{ field }}" ng-model="newQuery[field]" ng-if="field != 'state' && field != 'content'">
|
|
<select class="custom-select custom-select-sm" id="{{ field }}" ng-model="newQuery[field]" ng-options="k as v for (k, v) in states" ng-if="field == 'state'"></select>
|
|
<textarea class="form-control form-control-sm" placeholder="Ajouter un commentaire" rows="2" id="{{ field }}" ng-model="newQuery[field]" ng-if="field == 'content' && !newQuery.id"></textarea>
|
|
</div>
|
|
</div>
|
|
<button type="submit" class="btn btn-primary float-right">
|
|
Soumettre
|
|
</button>
|
|
</div>
|
|
</form>
|
|
|
|
<table class="table table-bordered table-striped" ng-class="{'table-hover': queries.length, 'table-sm': queries.length}">
|
|
<thead class="thead-dark">
|
|
<tr>
|
|
<th ng-repeat="field in fields">
|
|
{{ field }}
|
|
</th>
|
|
<th></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody ng-if="queries.length">
|
|
<tr ng-repeat="(qid, q) in queries" ng-click="showComments(qid)" ng-class="{'bg-warning': qid == query_selected}">
|
|
<td ng-repeat="field in fields" ng-bind-html="q[field]"></td>
|
|
<td>
|
|
<button type="button" ng-click="thumbUp(qid)" class="btn btn-sm btn-light"><span class="glyphicon glyphicon-thumbs-up" aria-hidden="true"></span></button>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
<tbody ng-if="!queries.length">
|
|
<tr>
|
|
<td colspan="{{ fields.length }}" class="font-weight-bold text-info text-center">Aucun requête enregistrée</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<div ng-if="query_selected !== null" class="card">
|
|
<div class="card-header">
|
|
<h4>{{ queries[query_selected].subject }}</h4>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="row">
|
|
<dl class="col-9 row">
|
|
<dt class="col-3">Qui ?</dt>
|
|
<dd class="col-9">{{ queries[query_selected].user }} (team #{{ queries[query_selected].id_team}})</dd>
|
|
|
|
<dt class="col-3">État</dt>
|
|
<dd class="col-9">{{ queries[query_selected].state }}</dd>
|
|
|
|
<dt class="col-3">Date de création</dt>
|
|
<dd class="col-9">{{ queries[query_selected].creation }}</dd>
|
|
|
|
<dt class="col-3">Date de résolution</dt>
|
|
<dd class="col-9">{{ queries[query_selected].solved }}</dd>
|
|
|
|
<dt class="col-3">Date de clôture</dt>
|
|
<dd class="col-9">{{ queries[query_selected].closed }}</dd>
|
|
</dl>
|
|
<div class="col-3">
|
|
<button ng-click="updateQA(queries[query_selected].id)" class="btn btn-secondary">
|
|
Mettre à jour
|
|
</button>
|
|
<button ng-click="solveQA(queries[query_selected].id)" class="btn btn-info">
|
|
Marqué comme résolu
|
|
</button>
|
|
<button ng-click="deleteQA(queries[query_selected].id)" class="btn btn-danger">
|
|
Supprimer
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<table class="table table-striped">
|
|
<tr ng-repeat="comment in queries_comments">
|
|
<td style="white-space: pre-line">
|
|
Le {{ comment.date }}, <strong>{{ comment.user }}</strong> a écrit : {{ comment.content }}
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<form ng-submit="addComment()">
|
|
<labe for="newComment">Répondre :</label>
|
|
<textarea class="form-control" placeholder="Ajouter un commentaire" rows="2" id="newComment" ng-model="newComment.content"></textarea>
|
|
<button type="submit" class="btn btn-primary mt-1 float-right">
|
|
Ajouter le commentaire
|
|
</button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|