Commit 16eb30b8 authored by LucMerceron's avatar LucMerceron

Ajout / Mod / Sup Equipes & Joueurs

parent 926e404c
......@@ -77,6 +77,11 @@
<script src="scripts/controllers/equipes.js"></script>
<script src="scripts/controllers/joueurs.js"></script>
<script src="scripts/controllers/ajoutJoueur.js"></script>
<script src="scripts/controllers/editerJoueur.js"></script>
<script src="scripts/controllers/supprimerJoueur.js"></script>
<script src="scripts/controllers/ajoutEquipe.js"></script>
<script src="scripts/controllers/editerEquipe.js"></script>
<script src="scripts/controllers/supprimerEquipe.js"></script>
<script src="scripts/services/apicall.js"></script>
<script src="scripts/directives/chargement.js"></script>
<script src="scripts/filters/slice.js"></script>
......
......@@ -6,6 +6,51 @@
* @description
* Module principal de l'application. Se charge de gérer les vues et controleurs a utiliser en fonction de la route
*/
angular.module('panelAdminApp', [], function($httpProvider) {
// Use x-www-form-urlencoded Content-Type
$httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';
/**
* The workhorse; converts an object to x-www-form-urlencoded serialization.
* @param {Object} obj
* @return {String}
*/
var param = function(obj) {
var query = '', name, value, fullSubName, subName, subValue, innerObj, i;
for(name in obj) {
value = obj[name];
if(value instanceof Array) {
for(i=0; i<value.length; ++i) {
subValue = value[i];
fullSubName = name + '[' + i + ']';
innerObj = {};
innerObj[fullSubName] = subValue;
query += param(innerObj) + '&';
}
}
else if(value instanceof Object) {
for(subName in value) {
subValue = value[subName];
fullSubName = name + '[' + subName + ']';
innerObj = {};
innerObj[fullSubName] = subValue;
query += param(innerObj) + '&';
}
}
else if(value !== undefined && value !== null)
query += encodeURIComponent(name) + '=' + encodeURIComponent(value) + '&';
}
return query.length ? query.substr(0, query.length - 1) : query;
};
// Override $http service's default transformRequest
$httpProvider.defaults.transformRequest = [function(data) {
return angular.isObject(data) && String(data) !== '[object File]' ? param(data) : data;
}];
});
angular
.module('panelAdminApp', ['ngRoute', 'ui.bootstrap'])
.config(function ($routeProvider) {
......@@ -39,4 +84,4 @@ angular
templateUrl: 'views/authentification.html',
controller: 'AuthentificationCtrl'
});
});
});
'use strict';
var app = angular.module('panelAdminApp');
//Configuration du service d'appel à l'API
app.config(function(apicallProvider, urlAPI){
apicallProvider.setUrl(urlAPI);
});
app.controller('AjoutEquipeCtrl', ['$scope','$modal','$log', 'apicall', function ($scope, $modal, $log, apicall) {
$scope.items = {name:'', points:'', drapeau:''};
$scope.open = function (size) {
var modalInstance = $modal.open({
templateUrl: 'views/ajoutEquipe.html',
controller: 'ModalInstanceCtrl',
size: size,
resolve: {
items: function () {
return $scope.items;
}
}
});
modalInstance.result.then(function () {
$log.info('Object envoyé au serveur :', $scope.items);
// ajout du joueur
apicall.addEquipe($scope.items)
.success(function(data){
$log.info(data);
// if(data.code == -1){$scope.alertes.push({type : 'danger', msg: 'Création du joueur impossible : Mauvais paramètres'});}
// else if(data.code == 0){$scope.alertes.push({type : 'success', msg: 'Création du joueur réussie'});}
// else if(data.code == -2){$scope.alertes.push({type : 'danger', msg: 'Création du joueur impossible : Database error'});}
// else{$scope.alertes.push({type : 'danger', msg: 'Création du joueur impossible : API error'});}
$scope.chargerEquipes();
})
.error(function(){$scope.alertes.push({type : 'danger', msg: 'Impossible de créer un joueur (cliquer pour essayer de recharger)'});
});
}, function () {
$log.info('Modal dismissed at: ' + new Date());
});
};
}]);
// Please note that $modalInstance represents a modal window (instance) dependency.
// It is not the same as the $modal service used above.
angular.module('ui.bootstrap').controller('ModalInstanceCtrl', function ($scope, $modalInstance, items) {
$scope.items=items;
$scope.ok = function () {
$modalInstance.close();
};
$scope.cancel = function () {
$modalInstance.dismiss('cancel');
};
});
\ No newline at end of file
......@@ -5,7 +5,6 @@ var app = angular.module('panelAdminApp');
//Configuration du service d'appel à l'API
app.config(function(apicallProvider, urlAPI){
apicallProvider.setUrl(urlAPI);
});
......@@ -13,14 +12,18 @@ app.controller('AjoutJoueurCtrl', ['$scope','$modal','$log', 'apicall', function
$scope.items = {name:'', firstname:'', sex:'', birthdate:'', team:'', list:[]};
//Récupération de la liste des equipes
apicall.getEquipes().success(function(data){
$scope.items.list = data.teams;
$log.info($scope.teams);
}).error(function(){
$scope.alertes.push({type : 'danger', msg: 'Impossible de récupérer la liste des equipes (cliquer pour essayer de recharger)'});
});
$scope.chargerTeam = function() {
$scope.items = {name:'', firstname:'', sex:'', birthdate:'', team:$scope.joueursEquipe[0].Team, list:[]};
}
//Récupération de la liste des equipes
$scope.chargerEquipesListe = function() {
apicall.getEquipes().success(function(data){
$scope.items.list = data.teams;
$log.info($scope.items.list);
}).error(function(){
$scope.alertes.push({type : 'danger', msg: 'Impossible de récupérer la liste des equipes (cliquer pour essayer de recharger)'});
});
};
$scope.open = function (size) {
var modalInstance = $modal.open({
......@@ -33,34 +36,42 @@ app.controller('AjoutJoueurCtrl', ['$scope','$modal','$log', 'apicall', function
}
}
});
modalInstance.result.then(function () {
var perso = {};
jQuery.extend(perso,$scope.items);
delete perso.list;
$log.info('Object envoyé au serveur :', perso);
modalInstance.result.then(function (object) {
$log.info(object);
apicall.AddJoueurs(object).success(function(data){
// ajout du joueur
apicall.addJoueurs(perso)
.success(function(data){
$log.info(data);
}).error(function(){
$scope.alertes.push({type : 'danger', msg: 'Impossible de créer un joueur (cliquer pour essayer de recharger)'});
});
// if(data.code == -1){$scope.alertes.push({type : 'danger', msg: 'Création du joueur impossible : Mauvais paramètres'});}
// else if(data.code == 0){$scope.alertes.push({type : 'success', msg: 'Création du joueur réussie'});}
// else if(data.code == -2){$scope.alertes.push({type : 'danger', msg: 'Création du joueur impossible : Database error'});}
// else{$scope.alertes.push({type : 'danger', msg: 'Création du joueur impossible : API error'});}
$scope.chargerJoueurs();
})
.error(function(){$scope.alertes.push({type : 'danger', msg: 'Impossible de créer un joueur (cliquer pour essayer de recharger)'});
});
}, function () {
$log.info('Modal dismissed at: ' + new Date());
});
};
}]);
// Please note that $modalInstance represents a modal window (instance) dependency.
// It is not the same as the $modal service used above.
angular.module('ui.bootstrap').controller('ModalInstanceCtrl', function ($scope, $modalInstance, items) {
$scope.items = items;
$scope.items=items;
$scope.ok = function () {
var perso = {};
jQuery.extend(perso,items);
delete perso.list;
$modalInstance.close(perso);
$modalInstance.close();
};
$scope.cancel = function () {
......
'use strict';
var app = angular.module('panelAdminApp');
//Configuration du service d'appel à l'API
app.config(function(apicallProvider, urlAPI){
apicallProvider.setUrl(urlAPI);
});
app.controller('EditerEquipeCtrl', ['$scope','$modal','$log', 'apicall', function ($scope, $modal, $log, apicall) {
$scope.items = {name:$scope.equipe.NameTeam, points:$scope.equipe.Points, drapeau:$scope.equipe.URL};
$scope.open = function (size) {
var modalInstance = $modal.open({
templateUrl: 'views/editerEquipe.html',
controller: 'ModalInstanceCtrl',
size: size,
resolve: {
items: function () {
return $scope.items;
}
}
});
modalInstance.result.then(function () {
$log.info('Object envoyé au serveur :', $scope.items);
// ajout du joueur
apicall.setEquipe($scope.items)
.success(function(data){
$log.info(data);
// if(data.code == -1){$scope.alertes.push({type : 'danger', msg: 'Création du joueur impossible : Mauvais paramètres'});}
// else if(data.code == 0){$scope.alertes.push({type : 'success', msg: 'Création du joueur réussie'});}
// else if(data.code == -2){$scope.alertes.push({type : 'danger', msg: 'Création du joueur impossible : Database error'});}
// else{$scope.alertes.push({type : 'danger', msg: 'Création du joueur impossible : API error'});}
$scope.chargerEquipes();
})
.error(function(){$scope.alertes.push({type : 'danger', msg: 'Impossible de créer un joueur (cliquer pour essayer de recharger)'});
});
}, function () {
$log.info('Modal dismissed at: ' + new Date());
});
};
}]);
// Please note that $modalInstance represents a modal window (instance) dependency.
// It is not the same as the $modal service used above.
angular.module('ui.bootstrap').controller('ModalInstanceCtrl', function ($scope, $modalInstance, items) {
$scope.items=items;
$scope.ok = function () {
$modalInstance.close();
};
$scope.cancel = function () {
$modalInstance.dismiss('cancel');
};
});
\ No newline at end of file
'use strict';
var app = angular.module('panelAdminApp');
//Configuration du service d'appel à l'API
app.config(function(apicallProvider, urlAPI){
apicallProvider.setUrl(urlAPI);
});
app.controller('EditerJoueurCtrl', ['$scope','$modal','$log', 'apicall', function ($scope, $modal, $log, apicall) {
$scope.items = {name:$scope.joueur.Name, firstname:$scope.joueur.FirstName, sex:$scope.joueur.Sex, birthdate:$scope.joueur.DateBirth, team:$scope.joueur.Team, list:[]};
//Récupération de la liste des equipes
$scope.chargerEquipesListe = function() {
apicall.getEquipes().success(function(data){
$scope.items.list = data.teams;
$log.info($scope.teams);
}).error(function(){
$scope.alertes.push({type : 'danger', msg: 'Impossible de récupérer la liste des equipes (cliquer pour essayer de recharger)'});
});
};
$scope.open = function (size) {
var modalInstance = $modal.open({
templateUrl: 'views/editerJoueur.html',
controller: 'ModalInstanceCtrl',
size: size,
resolve: {
items: function () {
return $scope.items;
}
}
});
modalInstance.result.then(function () {
var perso = {};
jQuery.extend(perso,$scope.items);
delete perso.list;
$log.info('Object envoyé au serveur :', perso);
apicall.setJoueurs(perso).success(function(data){
$log.info(data);
$scope.chargerJoueurs();
}).error(function(){
$scope.alertes.push({type : 'danger', msg: 'Impossible de modifier un joueur (cliquer pour essayer de recharger)'});
});
}, function () {
$log.info('Modal dismissed at: ' + new Date());
});
};
}]);
// Please note that $modalInstance represents a modal window (instance) dependency.
// It is not the same as the $modal service used above.
angular.module('ui.bootstrap').controller('ModalInstanceCtrl', function ($scope, $modalInstance, items) {
$scope.items=items;
$scope.ok = function () {
$modalInstance.close();
};
$scope.cancel = function () {
$modalInstance.dismiss('cancel');
};
});
\ No newline at end of file
......@@ -118,12 +118,6 @@ app.controller('JoueursCtrl', ['$scope', '$routeParams', '$filter', '$log', 'api
//Animation ?
};
// Lance l'appel à l'API pour l'ajout d'un joueur
$scope.ajouterJoueur = function(){
};
//Ajoute une ligne dan le tableau en vue de l'ajouter à la BDD via la fonction ajouterJoueur()
$scope.ajouterLigne = function(){
......
......@@ -66,7 +66,7 @@ app.controller('JoueursEquipeCtrl', ['$scope', '$routeParams', '$filter', '$log'
$scope.totalElements = 0;
$scope.joueursEquipe = [];
$scope.chargerJoueursEquipe = function(){
$scope.chargerJoueurs = function(){
$scope.chargement = true;
......@@ -110,7 +110,7 @@ app.controller('JoueursEquipeCtrl', ['$scope', '$routeParams', '$filter', '$log'
return;
}
$log.debug('Supression du joueur avec Id = ' + idJoueur);
// $log.debug('Supression du joueur avec Id = ' + idJoueur);
// Modification de la sélection
if($scope.joueursEquipe[index].selection){
......@@ -184,18 +184,6 @@ app.controller('JoueursEquipeCtrl', ['$scope', '$routeParams', '$filter', '$log'
}
};
// À définir
$scope.ajouterJoueur = function(){
};
// Ajoute une ligne dan le tableau en vue de l'ajouter à la BDD via la fonction ajouterJoueur()
$scope.ajouterLigne = function(){
};
/* Gestion de la pagination */
$scope.pagination = {
......@@ -229,11 +217,11 @@ app.controller('JoueursEquipeCtrl', ['$scope', '$routeParams', '$filter', '$log'
var dern = $scope.pagination.pageCourante*$scope.pagination.entreesPages[$scope.pagination.choixEntreesPages].valeur;
$log.debug(dern);
if(dern < $scope.totalElements){
$log.debug('Chemin1');
// $log.debug('Chemin1');
return dern;
}
else{
$log.debug('Chemin2 : '+ $scope.totalElements);
// $log.debug('Chemin2 : '+ $scope.totalElements);
return dern-(dern-$scope.totalElements);
}
};
......@@ -251,7 +239,7 @@ app.controller('JoueursEquipeCtrl', ['$scope', '$routeParams', '$filter', '$log'
debut--;
}
$log.debug('Debut :' + debut + '- fin : ' + fin);
// $log.debug('Debut :' + debut + '- fin : ' + fin);
$scope.selectionGlobale = (debut !== fin);
for(var i=debut; i<fin; i++){
......@@ -266,5 +254,5 @@ app.controller('JoueursEquipeCtrl', ['$scope', '$routeParams', '$filter', '$log'
// Traitements pour le démarrage
$scope.chargement= true;
$scope.chargerJoueursEquipe();
$scope.chargerJoueurs();
}]);
'use strict';
var app = angular.module('panelAdminApp');
//Configuration du service d'appel à l'API
app.config(function(apicallProvider, urlAPI){
apicallProvider.setUrl(urlAPI);
});
app.controller('SupprimerEquipeCtrl', ['$scope','$modal','$log', 'apicall', function ($scope, $modal, $log, apicall) {
$scope.items = {name:$scope.equipe.NameTeam, points:$scope.equipe.Points, drapeau:$scope.equipe.URL};
$scope.open = function (size) {
var modalInstance = $modal.open({
templateUrl: 'views/supprimerEquipe.html',
controller: 'ModalInstanceCtrl',
size: size,
resolve: {
items: function () {
return $scope.items;
}
}
});
modalInstance.result.then(function () {
$log.info('Object envoyé au serveur :', $scope.items);
// ajout du joueur
apicall.delEquipe($scope.items)
.success(function(data){
$log.info(data);
// if(data.code == -1){$scope.alertes.push({type : 'danger', msg: 'Création du joueur impossible : Mauvais paramètres'});}
// else if(data.code == 0){$scope.alertes.push({type : 'success', msg: 'Création du joueur réussie'});}
// else if(data.code == -2){$scope.alertes.push({type : 'danger', msg: 'Création du joueur impossible : Database error'});}
// else{$scope.alertes.push({type : 'danger', msg: 'Création du joueur impossible : API error'});}
$scope.chargerEquipes();
})
.error(function(){$scope.alertes.push({type : 'danger', msg: 'Impossible de créer un joueur (cliquer pour essayer de recharger)'});
});
}, function () {
$log.info('Modal dismissed at: ' + new Date());
});
};
}]);
// Please note that $modalInstance represents a modal window (instance) dependency.
// It is not the same as the $modal service used above.
angular.module('ui.bootstrap').controller('ModalInstanceCtrl', function ($scope, $modalInstance, items) {
$scope.items=items;
$scope.ok = function () {
$modalInstance.close();
};
$scope.cancel = function () {
$modalInstance.dismiss('cancel');
};
});
\ No newline at end of file
'use strict';
var app = angular.module('panelAdminApp');
//Configuration du service d'appel à l'API
app.config(function(apicallProvider, urlAPI){
apicallProvider.setUrl(urlAPI);
});
app.controller('SupprimerJoueurCtrl', ['$scope','$modal','$log', 'apicall', function ($scope, $modal, $log, apicall) {
$scope.items = {name:$scope.joueur.Name, firstname:$scope.joueur.FirstName, id:$scope.joueur.IdPlayer}
$scope.open = function (size) {
var modalInstance = $modal.open({
templateUrl: 'views/supprimerJoueur.html',
controller: 'ModalInstanceCtrl',
size: size,
resolve: {
items: function () {
return $scope.items;
}
}
});
modalInstance.result.then(function () {
$log.info('Suppression du joueur ID :', $scope.items.id);
apicall.delJoueurs($scope.items.id).success(function(data){
$log.info(data);
$scope.chargerJoueurs();
}).error(function(){
$scope.alertes.push({type : 'danger', msg: 'Impossible de supprimer un joueur'});
});
}, function () {
$log.info('Modal dismissed at: ' + new Date());
});
};
}]);
// Please note that $modalInstance represents a modal window (instance) dependency.
// It is not the same as the $modal service used above.
angular.module('ui.bootstrap').controller('ModalInstanceCtrl', function ($scope, $modalInstance, items) {
$scope.items=items;
$scope.ok = function () {
$modalInstance.close();
};
$scope.cancel = function () {
$modalInstance.dismiss('cancel');
};
});
\ No newline at end of file
......@@ -16,6 +16,8 @@ angular.module('panelAdminApp').
// Constructeur de l'objet
function ApiCaller($http) {
$http.defaults.headers.post["Content-Type"] = "application/json";
// Récupération des équipes
this.getEquipes = function() {
......@@ -42,11 +44,84 @@ angular.module('panelAdminApp').
};
// Création d'un joueur
this.AddJoueurs = function(object){
this.addJoueurs = function(object){
var data = JSON.stringify(object);
return $http({
method: 'POST',
url: url+'/players',
data : data
});
};
// Création d'une équipe
this.addEquipe = function(object){
var data = JSON.stringify(object);
// return $http({
// method: 'POST',