admin: Add a page to list teams and members
This commit is contained in:
parent
6148897dac
commit
31c079701f
|
@ -29,6 +29,14 @@ angular.module("FICApp", ["ngRoute", "ngResource", "ngSanitize"])
|
|||
controller: "TeamsListController",
|
||||
templateUrl: "views/team-list.html"
|
||||
})
|
||||
.when("/teams/new", {
|
||||
controller: "TeamNewController",
|
||||
templateUrl: "views/team-new.html"
|
||||
})
|
||||
.when("/teams/print", {
|
||||
controller: "TeamsListController",
|
||||
templateUrl: "views/team-print.html"
|
||||
})
|
||||
.when("/teams/:teamId", {
|
||||
controller: "TeamController",
|
||||
templateUrl: "views/team-edit.html"
|
||||
|
@ -37,10 +45,6 @@ angular.module("FICApp", ["ngRoute", "ngResource", "ngSanitize"])
|
|||
controller: "TeamController",
|
||||
templateUrl: "views/team-stats.html"
|
||||
})
|
||||
.when("/teams/new", {
|
||||
controller: "TeamNewController",
|
||||
templateUrl: "views/team-new.html"
|
||||
})
|
||||
.when("/public", {
|
||||
controller: "PublicController",
|
||||
templateUrl: "views/public.html"
|
||||
|
@ -521,14 +525,30 @@ angular.module("FICApp")
|
|||
$location.url("/teams/" + id);
|
||||
};
|
||||
})
|
||||
.controller("TeamMembersController", function($scope, TeamMember, $routeParams) {
|
||||
.controller("TeamMembersController", function($scope, TeamMember) {
|
||||
$scope.fields = ["firstname", "lastname", "nickname", "company"];
|
||||
if ($scope.team != null) {
|
||||
$scope.members = TeamMember.query({ teamId: $scope.team.id });
|
||||
|
||||
$scope.newMember = function() {
|
||||
$scope.members.push(new TeamMember());
|
||||
}
|
||||
$scope.saveTeamMembers = function() {
|
||||
if (this.team.id) {
|
||||
TeamMember.save({ teamId: this.team.id }, $scope.members);
|
||||
}
|
||||
}
|
||||
$scope.removeMember = function(member) {
|
||||
angular.forEach($scope.members, function(m, k) {
|
||||
if (member == m)
|
||||
$scope.members.splice(k, 1);
|
||||
});
|
||||
}
|
||||
}
|
||||
})
|
||||
.controller("TeamController", function($scope, $location, Team, TeamMember, $routeParams) {
|
||||
$scope.team = Team.get({ teamId: $routeParams.teamId });
|
||||
$scope.fields = ["name", "color"];
|
||||
$scope.members = TeamMember.query({ teamId: $routeParams.teamId });
|
||||
|
||||
$scope.saveTeam = function() {
|
||||
if (this.team.id) {
|
||||
|
@ -545,20 +565,6 @@ angular.module("FICApp")
|
|||
$scope.showStats = function() {
|
||||
$location.url("/teams/" + $scope.team.id + "/stats");
|
||||
}
|
||||
$scope.newMember = function() {
|
||||
$scope.members.push(new TeamMember());
|
||||
}
|
||||
$scope.saveTeamMembers = function() {
|
||||
if (this.team.id) {
|
||||
TeamMember.save({ teamId: this.team.id }, $scope.members);
|
||||
}
|
||||
}
|
||||
$scope.removeMember = function(member) {
|
||||
angular.forEach($scope.members, function(m, k) {
|
||||
if (member == m)
|
||||
$scope.members.splice(k, 1);
|
||||
});
|
||||
}
|
||||
})
|
||||
.controller("TeamStatsController", function($scope, TeamStats, $routeParams) {
|
||||
$scope.teamstats = TeamStats.get({ teamId: $routeParams.teamId });
|
||||
|
|
|
@ -1,4 +1,11 @@
|
|||
<h1>{{ team.name }}<span ng-show="team.name != team.initialName"> ({{ team.initialName}})</span> <small><span ng-repeat="member in members"><span ng-show="$last && !$first"> et </span><span ng-show="$middle">, </span>{{ member.firstname | capitalize }} <em ng-show="member.nickname">{{ member.nickname }}</em> {{ member.lastname | capitalize }}</span></small><a ng-click="showStats()" class="pull-right btn btn-primary" style="margin-right: 10px" ng-if="team.id"><span class="glyphicon glyphicon-list" aria-hidden="true"></span> Statistiques</a></h1>
|
||||
<h1>
|
||||
{{ team.name }}
|
||||
<span ng-show="team.name != team.initialName"> ({{ team.initialName}})</span>
|
||||
<a ng-click="showStats()" class="pull-right btn btn-primary" style="margin-right: 10px" ng-if="team.id">
|
||||
<span class="glyphicon glyphicon-list" aria-hidden="true"></span>
|
||||
Statistiques
|
||||
</a>
|
||||
</h1>
|
||||
|
||||
<form ng-submit="saveTeam()" class="form-horizontal">
|
||||
<div class="form-group">
|
||||
|
@ -31,10 +38,13 @@
|
|||
|
||||
<hr>
|
||||
|
||||
<form ng-submit="saveTeamMembers()" class="form-horizontal" ng-if="team.id">
|
||||
<form ng-submit="saveTeamMembers()" class="form-horizontal" ng-if="team.id" ng-controller="TeamMembersController">
|
||||
<h2>Membres <button type="submit" class="pull-right btn btn-success" 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-primary"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> Add member</a></h2>
|
||||
|
||||
<div class="well" ng-controller="TeamMembersController" ng-repeat="member in members">
|
||||
<div class="alert alert-info" ng-if="members.length == 0">
|
||||
This team has no member!
|
||||
</div>
|
||||
<div class="well" 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">
|
||||
|
|
|
@ -1,4 +1,8 @@
|
|||
<h2>Équipes<a ng-click="show('new')" class="pull-right btn btn-primary"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> Ajouter une équipe</a></h2>
|
||||
<h2>
|
||||
Équipes
|
||||
<a ng-click="show('new')" class="pull-right btn btn-primary"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> Ajouter une équipe</a>
|
||||
<a ng-click="show('print')" class="pull-right btn btn-default"><span class="glyphicon glyphicon-print" aria-hidden="true"></span> Imprimer les équipes</a>
|
||||
</h2>
|
||||
|
||||
<p><input type="search" class="form-control" placeholder="Search" ng-model="query"></p>
|
||||
<table class="table table-hover table-bordered">
|
||||
|
|
32
admin/static/views/team-print.html
Normal file
32
admin/static/views/team-print.html
Normal file
|
@ -0,0 +1,32 @@
|
|||
<h2 ng-controller="SettingsController">{{ config.title }} – Équipes</h2>
|
||||
|
||||
<p class="hidden-print"><input type="search" class="form-control" placeholder="Search" ng-model="query"></p>
|
||||
|
||||
<table class="table table-hover table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th ng-repeat="field in fields">
|
||||
{{ field }}
|
||||
</th>
|
||||
<th>
|
||||
members
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr ng-repeat="team in teams | filter: query" ng-click="show(team.id)">
|
||||
<td ng-repeat="field in fields">
|
||||
{{ team[field] }}
|
||||
</td>
|
||||
<td ng-controller="TeamMembersController" style="padding: 0;">
|
||||
<table class="table table-hover table-condensed" style="margin: 0;">
|
||||
<tr class="row" ng-repeat="member in members">
|
||||
<td class="col-sm-3" ng-repeat="field in fields">
|
||||
{{ member[field] }}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
Loading…
Reference in New Issue
Block a user