admin: display team history
This commit is contained in:
parent
41400a8710
commit
f2089c4d96
3 changed files with 60 additions and 29 deletions
|
@ -94,6 +94,9 @@ angular.module("FICApp")
|
||||||
.factory("Teams", function($resource) {
|
.factory("Teams", function($resource) {
|
||||||
return $resource("/api/teams.json")
|
return $resource("/api/teams.json")
|
||||||
})
|
})
|
||||||
|
.factory("TeamHistory", function($resource) {
|
||||||
|
return $resource("/api/teams/:teamId/history.json", { teamId: '@id' })
|
||||||
|
})
|
||||||
.factory("TeamStats", function($resource) {
|
.factory("TeamStats", function($resource) {
|
||||||
return $resource("/api/teams/:teamId/stats.json", { teamId: '@id' })
|
return $resource("/api/teams/:teamId/stats.json", { teamId: '@id' })
|
||||||
})
|
})
|
||||||
|
@ -678,6 +681,9 @@ angular.module("FICApp")
|
||||||
$location.url("/teams/" + $scope.team.id + "/stats");
|
$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) {
|
.controller("TeamStatsController", function($scope, TeamStats, $routeParams) {
|
||||||
$scope.teamstats = TeamStats.get({ teamId: $routeParams.teamId });
|
$scope.teamstats = TeamStats.get({ teamId: $routeParams.teamId });
|
||||||
$scope.teamstats.$promise.then(function(res) {
|
$scope.teamstats.$promise.then(function(res) {
|
||||||
|
|
|
@ -83,7 +83,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="list-group">
|
<div class="list-group">
|
||||||
<form ng-submit="saveKey()" class="list-group-item form-horizontal" ng-repeat="key in keys">
|
<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>
|
<label for="ktype{{key.id}}" class="col-xs-2 control-label">Intitulé</label>
|
||||||
<div class="col-xs-8">
|
<div class="col-xs-8">
|
||||||
<input type="text" id="ktype{{key.id}}" ng-model="key.type" class="form-control">
|
<input type="text" id="ktype{{key.id}}" ng-model="key.type" class="form-control">
|
||||||
|
|
|
@ -7,6 +7,8 @@
|
||||||
</a>
|
</a>
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
|
<div class="col-lg-8">
|
||||||
|
|
||||||
<form ng-submit="saveTeam()" class="form-horizontal">
|
<form ng-submit="saveTeam()" class="form-horizontal">
|
||||||
<div class="form-group" ng-if="team.id">
|
<div class="form-group" ng-if="team.id">
|
||||||
<label for="idTeam" class="col-sm-2 control-label">Identifiant</label>
|
<label for="idTeam" class="col-sm-2 control-label">Identifiant</label>
|
||||||
|
@ -38,7 +40,35 @@
|
||||||
|
|
||||||
<hr>
|
<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 panel-primary">
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
<div class="panel-title">
|
<div class="panel-title">
|
||||||
|
@ -57,30 +87,25 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<form ng-submit="saveTeamMembers()" class="col-sm-7 form-horizontal" ng-if="team.id" ng-controller="TeamMembersController">
|
</div>
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading">
|
<div class="col-lg-4">
|
||||||
<div class="panel-title">
|
<table ng-controller="TeamHistoryController" class="table table-hover table-striped table-bordered">
|
||||||
<span class="glyphicon glyphicon-user" aria-hidden="true"></span> Membres
|
<tbody>
|
||||||
<button type="submit" class="pull-right btn btn-xs btn-primary" style="margin-left: 10px">
|
<tr ng-repeat="row in history" ng-class="{success: row.kind == 'solved', info: row.kind == 'hint', warning: row.kind == 'key_found'}">
|
||||||
<span class="glyphicon glyphicon-save" aria-hidden="true"></span> Save members</button>
|
<td><nobr>{{ row.time | date:"mediumTime" }}</nobr><br>{{ row.kind }}</td>
|
||||||
<a ng-click="newMember()" class="pull-right btn btn-xs btn-default">
|
<td>
|
||||||
<span class="glyphicon glyphicon-plus" aria-hidden="true"></span> Add member</a>
|
<span ng-if="row.primary_title">
|
||||||
</div>
|
<a href="exercices/{{ row.primary }}">{{ row.primary_title }}</a>
|
||||||
</div>
|
</span>
|
||||||
<div class="panel-body" ng-if="members.length == 0">
|
<span ng-if="!row.primary_title">{{ row.primary }}</span>
|
||||||
This team has no member!
|
<span ng-if="row.secondary_title">
|
||||||
</div>
|
: <a href="exercices/{{ row.primary }}#key-{{ row.secondary }}" ng-if="row.kind == 'key_found'">{{ row.secondary_title }}</a>
|
||||||
<div class="list-group-item" ng-repeat="member in members">
|
</span>
|
||||||
<div class="form-group" ng-repeat="field in fields">
|
<span ng-if="!row.secondary_title && row.secondary && row.kind == 'solved'">(coeff x{{ row.secondary }})</span>
|
||||||
<label for="{{ field }}{{ member.id }}" class="col-sm-2 control-label">{{ field | capitalize }}</label>
|
<span ng-if="!row.secondary_title && row.secondary && row.kind != 'solved'">: {{ row.secondary }}</span>
|
||||||
<div class="col-sm-9">
|
</td>
|
||||||
<input type="text" class="form-control" id="{{ field }}{{ member.id }}" ng-model="member[field]">
|
</tr>
|
||||||
</div>
|
</tbody>
|
||||||
<div class="col-sm-1" ng-if="$first">
|
</table>
|
||||||
<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>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
|
|
Reference in a new issue