admin: display team history

This commit is contained in:
nemunaire 2017-11-13 00:57:48 +01:00 committed by Pierre-Olivier Mercier
parent 41400a8710
commit f2089c4d96
3 changed files with 60 additions and 29 deletions

View file

@ -94,6 +94,9 @@ angular.module("FICApp")
.factory("Teams", function($resource) {
return $resource("/api/teams.json")
})
.factory("TeamHistory", function($resource) {
return $resource("/api/teams/:teamId/history.json", { teamId: '@id' })
})
.factory("TeamStats", function($resource) {
return $resource("/api/teams/:teamId/stats.json", { teamId: '@id' })
})
@ -678,6 +681,9 @@ angular.module("FICApp")
$location.url("/teams/" + $scope.team.id + "/stats");
}
})
.controller("TeamHistoryController", function($scope, TeamHistory, $routeParams) {
$scope.history = TeamHistory.query({ teamId: $routeParams.teamId });
})
.controller("TeamStatsController", function($scope, TeamStats, $routeParams) {
$scope.teamstats = TeamStats.get({ teamId: $routeParams.teamId });
$scope.teamstats.$promise.then(function(res) {

View file

@ -83,7 +83,7 @@
</div>
<div class="list-group">
<form ng-submit="saveKey()" class="list-group-item form-horizontal" ng-repeat="key in keys">
<div class="form-group">
<div class="form-group" id="key-{{key.id}}">
<label for="ktype{{key.id}}" class="col-xs-2 control-label">Intitulé</label>
<div class="col-xs-8">
<input type="text" id="ktype{{key.id}}" ng-model="key.type" class="form-control">

View file

@ -7,6 +7,8 @@
</a>
</h1>
<div class="col-lg-8">
<form ng-submit="saveTeam()" class="form-horizontal">
<div class="form-group" ng-if="team.id">
<label for="idTeam" class="col-sm-2 control-label">Identifiant</label>
@ -38,7 +40,35 @@
<hr>
<div class="col-sm-5" ng-if="team.id">
<form ng-submit="saveTeamMembers()" class="col-md-7 form-horizontal" ng-if="team.id" ng-controller="TeamMembersController">
<div class="panel panel-default">
<div class="panel-heading">
<div class="panel-title">
<span class="glyphicon glyphicon-user" aria-hidden="true"></span> Membres
<button type="submit" class="pull-right btn btn-xs btn-primary" style="margin-left: 10px">
<span class="glyphicon glyphicon-save" aria-hidden="true"></span> Save members</button>
<a ng-click="newMember()" class="pull-right btn btn-xs btn-default">
<span class="glyphicon glyphicon-plus" aria-hidden="true"></span> Add member</a>
</div>
</div>
<div class="panel-body" ng-if="members.length == 0">
This team has no member!
</div>
<div class="list-group-item" ng-repeat="member in members">
<div class="form-group" ng-repeat="field in fields">
<label for="{{ field }}{{ member.id }}" class="col-sm-3 control-label">{{ field | capitalize }}</label>
<div class="col-sm-8">
<input type="text" class="form-control" id="{{ field }}{{ member.id }}" ng-model="member[field]">
</div>
<div class="col-sm-1" ng-if="$first">
<a ng-click="removeMember(member)" class="pull-right btn btn-primary"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span></a>
</div>
</div>
</div>
</div>
</form>
<div class="col-md-5" ng-if="team.id">
<div class="panel panel-primary">
<div class="panel-heading">
<div class="panel-title">
@ -57,30 +87,25 @@
</div>
</div>
<form ng-submit="saveTeamMembers()" class="col-sm-7 form-horizontal" ng-if="team.id" ng-controller="TeamMembersController">
<div class="panel panel-default">
<div class="panel-heading">
<div class="panel-title">
<span class="glyphicon glyphicon-user" aria-hidden="true"></span> Membres
<button type="submit" class="pull-right btn btn-xs btn-primary" style="margin-left: 10px">
<span class="glyphicon glyphicon-save" aria-hidden="true"></span> Save members</button>
<a ng-click="newMember()" class="pull-right btn btn-xs btn-default">
<span class="glyphicon glyphicon-plus" aria-hidden="true"></span> Add member</a>
</div>
</div>
<div class="panel-body" ng-if="members.length == 0">
This team has no member!
</div>
<div class="list-group-item" ng-repeat="member in members">
<div class="form-group" ng-repeat="field in fields">
<label for="{{ field }}{{ member.id }}" class="col-sm-2 control-label">{{ field | capitalize }}</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="{{ field }}{{ member.id }}" ng-model="member[field]">
</div>
<div class="col-sm-1" ng-if="$first">
<a ng-click="removeMember(member)" class="pull-right btn btn-primary"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span></a>
</div>
</div>
</div>
</div>
</form>
</div>
<div class="col-lg-4">
<table ng-controller="TeamHistoryController" class="table table-hover table-striped table-bordered">
<tbody>
<tr ng-repeat="row in history" ng-class="{success: row.kind == 'solved', info: row.kind == 'hint', 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>
</tr>
</tbody>
</table>
</div>