admin: manage team certificate from interface

This commit is contained in:
nemunaire 2017-04-05 01:56:14 +02:00
parent 2e8d28542e
commit 2235470d9d
2 changed files with 79 additions and 14 deletions

View File

@ -546,10 +546,47 @@ angular.module("FICApp")
}
}
})
.controller("TeamController", function($scope, $location, Team, TeamMember, $routeParams) {
.controller("TeamController", function($scope, $location, Team, TeamMember, $routeParams, $http) {
$scope.team = Team.get({ teamId: $routeParams.teamId });
$scope.fields = ["name", "color"];
$scope.hasCertificate = false;
$http({
url: "/api/teams/" + Math.floor($routeParams.teamId) + "/certificate.p12",
method: "HEAD",
transformResponse: null
}).then(function(response) {
$scope.hasCertificate = true;
}, function(response) {
$scope.hasCertificate = false;
});
$scope.generateCertificate = function() {
$http({
url: "/api/teams/" + Math.floor($routeParams.teamId) + "/certificate/generate",
method: "GET",
transformResponse: null
}).then(function(response) {
$scope.hasCertificate = true;
}, function(response) {
console.log(response.data);
});
}
$scope.revokeCertificate = function() {
if (!confirm("Are you sure you want to revoke this certificate?"))
return false;
$http({
url: "/api/teams/" + Math.floor($routeParams.teamId) + "/certificate.p12",
method: "DELETE",
transformResponse: null
}).then(function(response) {
$scope.hasCertificate = false;
}, function(response) {
console.log(response.data);
});
}
$scope.saveTeam = function() {
if (this.team.id) {
this.team.$update();

View File

@ -38,20 +38,48 @@
<hr>
<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="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">
<input type="text" class="form-control" id="{{ field }}{{ member.id }}" ng-model="member[field]">
<div class="col-sm-5">
<div class="panel panel-primary">
<div class="panel-heading">
<div class="panel-title">
<span class="glyphicon glyphicon-certificate" aria-hidden="true"></span>
Certificate
<span class="label label-success" ng-if="hasCertificate">Generated</span>
<span class="label label-danger" ng-if="!hasCertificate">Not found</span>
</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 class="panel-body">
<a ng-click="generateCertificate()" class="btn btn-success" ng-if="!hasCertificate">
<span class="glyphicon glyphicon-certificate" aria-hidden="true"></span> Generate certificate</a>
<a ng-click="revokeCertificate()" class="btn btn-danger" ng-if="hasCertificate">
<span class="glyphicon glyphicon-remove" aria-hidden="true"></span> Revoke certificate</a>
</div>
</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>