114 lines
5.3 KiB
HTML
114 lines
5.3 KiB
HTML
<h1>
|
|
{{ team.name }}
|
|
<span ng-show="team.name != team.initialName"> ({{ team.initialName}})</span>
|
|
<button ng-click="showStats()" class="float-right btn btn- btn-primary" style="margin-right: 10px" ng-if="team.id">
|
|
<span class="glyphicon glyphicon-list" aria-hidden="true"></span>
|
|
Statistiques
|
|
</button>
|
|
</h1>
|
|
|
|
<div class="row">
|
|
<div class="col-lg-8">
|
|
|
|
<form ng-submit="saveTeam()">
|
|
<div class="row" ng-if="team.id">
|
|
<label for="idTeam" class="col-sm-2 col-form-label-sm">Identifiant</label>
|
|
<div class="col-sm-10">
|
|
<input type="text" readonly class="form-control-sm form-control-plaintext" ng-model="team.id">
|
|
</div>
|
|
</div>
|
|
<div class="row" ng-if="team.id">
|
|
<label for="initialName" class="col-sm-2 col-form-label-sm">Nom initial</label>
|
|
<div class="col-sm-10">
|
|
<input type="text" readonly class="form-control-sm form-control-plaintext" ng-model="team.initialName">
|
|
</div>
|
|
</div>
|
|
<div class="row" ng-repeat="field in fields">
|
|
<label for="{{ field }}" class="col-sm-2 col-form-label-sm">{{ field | capitalize }}</label>
|
|
<div class="col-sm-10">
|
|
<input type="text" class="form-control form-control-sm" id="{{ field }}" ng-model="team[field]" ng-if="field != 'color'">
|
|
<input type="color" class="form-control form-control-sm" id="{{ field }}{{ member.id }}" ng-model="team[field]" ng-if="field == 'color'" color>
|
|
</div>
|
|
</div>
|
|
<div class="text-right" ng-show="team.id">
|
|
<button type="submit" class="btn btn-success"><span class="glyphicon glyphicon-save" aria-hidden="true"></span> Save</button>
|
|
<button class="btn btn-danger" ng-click="deleteTeam()"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span> Delete</button>
|
|
</div>
|
|
<div class="text-right" ng-show="!team.id">
|
|
<button type="submit" class="btn btn-primary"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> Create team</button>
|
|
</div>
|
|
</form>
|
|
|
|
<hr>
|
|
|
|
<div class="card-deck">
|
|
<form ng-submit="saveTeamMembers()" class="card" ng-if="team.id" ng-controller="TeamMembersController">
|
|
<div class="card-header bg-info text-light">
|
|
<button type="submit" class="float-right btn btn-sm btn-primary" style="margin-left: 10px">
|
|
<span class="glyphicon glyphicon-save" aria-hidden="true"></span> Save</button>
|
|
<button ng-click="newMember()" class="float-right btn btn-sm btn-secondary">
|
|
<span class="glyphicon glyphicon-plus" aria-hidden="true"></span></button>
|
|
<h4 style="margin:0"><span class="glyphicon glyphicon-user" aria-hidden="true"></span> Membres</h4>
|
|
</div>
|
|
<div class="card-body bg-light text-dark" ng-if="members.length == 0">
|
|
This team has no member!
|
|
</div>
|
|
<div class="list-group-item bg-light text-dark" ng-repeat="member in members">
|
|
<div class="row" ng-repeat="field in fields">
|
|
<label for="{{ field }}{{ member.id }}" class="col-auto col-form-label-sm">{{ field | capitalize }}</label>
|
|
<div class="col">
|
|
<input type="text" class="form-control form-control-sm" id="{{ field }}{{ member.id }}" ng-model="member[field]">
|
|
</div>
|
|
<div class="col-sm-2" ng-if="$first">
|
|
<button ng-click="removeMember(member)" class="float-right btn btn-sm btn-primary"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span></button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
|
|
<div class="card">
|
|
<div class="card-header bg-primary text-light">
|
|
<span class="glyphicon glyphicon-certificate" aria-hidden="true"></span>
|
|
Certificate
|
|
<span class="badge badge-success" ng-if="hasCertificate">Generated</span>
|
|
<span class="badge badge-danger" ng-if="!hasCertificate">Not found</span>
|
|
</div>
|
|
<div class="card-body bg-light text-dark">
|
|
<button ng-click="generateCertificate()" class="btn btn-success" ng-if="!hasCertificate">
|
|
<span class="glyphicon glyphicon-certificate" aria-hidden="true"></span> Generate certificate</button>
|
|
<button ng-click="revokeCertificate()" class="btn btn-danger" ng-if="hasCertificate">
|
|
<span class="glyphicon glyphicon-remove" aria-hidden="true"></span> Revoke certificate</button>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="col-lg-4">
|
|
<table ng-controller="TeamHistoryController" class="table table-hover table-striped table-bordered bg-primary text-light">
|
|
<tbody>
|
|
<tr ng-repeat="row in history" ng-class="{'bg-success': row.kind == 'solved', 'bg-info': row.kind == 'hint', 'bg-warning': row.kind == 'key_found'}">
|
|
<td>
|
|
<nobr>{{ row.time | date:"mediumTime" }}</nobr><br>{{ row.kind }}
|
|
</td>
|
|
<td>
|
|
<span ng-if="row.primary_title">
|
|
<a href="exercices/{{ row.primary }}">{{ row.primary_title }}</a>
|
|
</span>
|
|
<span ng-if="!row.primary_title">{{ row.primary }}</span>
|
|
<span ng-if="row.secondary_title">
|
|
: <a href="exercices/{{ row.primary }}#key-{{ row.secondary }}" ng-if="row.kind == 'key_found'">{{ row.secondary_title }}</a>
|
|
</span>
|
|
<span ng-if="!row.secondary_title && row.secondary && row.kind == 'solved'">(coeff x{{ row.secondary }})</span>
|
|
<span ng-if="!row.secondary_title && row.secondary && row.kind != 'solved'">: {{ row.secondary }}</span>
|
|
</td>
|
|
<td style="vertical-align: middle; padding: 0">
|
|
<button ng-click="delHistory(row)" class="float-right btn btn-sm btn-danger"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span></button>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|