Commit 8d80b60f authored by El-gitano's avatar El-gitano

Passage de l'affichage des alertes en absolu (toujours affiché à l'écran)

Modification des directives : remplacement de l'élement d'origine par le template
Ajout de la gestion des erreurs retournée par l'API (code HTTP différent de 200)
Corrections dans le code de tirage.js
parent 7590eaaa
......@@ -4,12 +4,12 @@ Rajouter export CSV
=== JOUEURS & JOUEURS ÉQUIPES & ÉQUIPES ===
Vérifier les suppression/ajouts/édition après appel à l'API
Ajouter les photos des joueurs (dans les formulaires et via un bouton sur une ligne du tableau)
Dans les calendrier ne pas pouvoir utiliser des dates > à la date courante et inférieur à 1900
=== GENERAL ===
Supprimer l'ancien plugin de drag&drop
Intégrer le nouveau logo
Fonctionnalité de vérification du tournois avant lancement
Différence entre phase init. et phase competition
Faire la documentation
......@@ -24,9 +24,6 @@ Informations classement (non obligatoire)
Différencier affichage des stats selon le public
Grand écran pour l'affichage des stats et matchs (x4)
=== TIRAGE ===
Corriger le bug de màj côté API/BDD
=== AUTH ===
Remettre l'authentification quand nécessaire
......@@ -27,7 +27,7 @@
<li ng-class="{ active: estActive('/accueil')}"><a ng-href="#/accueil">Accueil</a></li>
<li ng-class="{ active: estActive('/equipes')}"><a ng-href="#/equipes">Équipes</a></li>
<li ng-class="{ active: estActive('/joueurs')}"><a ng-href="#/joueurs">Joueurs</a></li>
<li ng-class="{ active: estActive('/tournois')}"><a ng-href="#/tournois">Tournois</a></li>
<li ng-class="{ active: estActive('/tirage')}"><a ng-href="#/tirage">Tirage</a></li>
<li ng-class="{ active: estActive('/statistiques')}"><a ng-href="#/statistiques">Statistiques</a></li>
</ul>
<img id="logo" src="images/logo.png" alt="logo"/><h3 class="text-muted">AceCream</h3>
......@@ -71,7 +71,6 @@
<script src="bower_components/angular-route/angular-route.js"></script>
<script src="bower_components/angular-bootstrap/ui-bootstrap-tpls.js"></script>
<script src="bower_components/angular-animate/angular-animate.js"></script>
<script src="bower_components/ngDraggable/ngDraggable.js"></script>
<script src="bower_components/jquery-ui/jquery-ui.js"></script>
<script src="bower_components/angular-dragdrop/src/angular-dragdrop.js"></script>
<!-- endbower -->
......
......@@ -43,7 +43,7 @@ angular
templateUrl: 'views/joueursEquipe.html',
controller: 'JoueursEquipeCtrl'
})
.when('/tournois', {
.when('/tirage', {
templateUrl: 'views/tirage.html',
controller: 'TirageCtrl'
})
......
......@@ -9,8 +9,7 @@
*/
angular.module('panelAdminApp')
.controller('TirageCtrl', ['$scope', '$log', '$filter', 'apicall', 'informer', function ($scope, $log, $filter, apicall, informer) {
// Récupération des équipes
apicall.getEquipes().success(function(donnees){
......@@ -19,21 +18,37 @@ angular.module('panelAdminApp')
// Récupération du tirage
apicall.getTirage().success(function(donnees){
$scope.tirage = $filter('applatirTirage')(donnees.matches);
$scope.tirage = [];
var tirageTemp = $filter('applatirTirage')(donnees.matches);
// Association des objets équipes aux entrées du tirage + suppression dans $scope.equipe
angular.forEach($scope.tirage, function(valeur, index){
for(var i = $scope.equipes.length - 1; i >= 0; i--) {
if(valeur){
var indexTirages = tirageTemp.indexOf($scope.equipes[i].NameTeam);
var temp = $filter('filter')($scope.equipes, {NameTeam:valeur});
// L'équipe est déjà dans l'arbre
if(temp){
$scope.tirage[index] = temp;
$scope.equipes.splice($scope.equipes.indexOf(temp), 1);
}
if(indexTirages !== -1){
$scope.tirage[indexTirages] = $scope.equipes[i];
$scope.equipes.splice(i, 1);
}
}
$scope.$watchCollection('tirage', function(oldTirage, newTirage){
//console.log($scope.tirage);
if(!angular.equals(oldTirage, newTirage)){
$log.info('Mise à jour du tirage');
apicall.setTirage($scope.tirage).success(function(){
informer.informer('success', 'Tirage mis à jour avec succès');
}).error(function(){
informer.informer('danger', 'La mise à jour du tirage a rencontré une erreur');
});
}
});
......@@ -47,22 +62,25 @@ angular.module('panelAdminApp')
informer.informer('danger', 'Impossible de récupérer la liste des équipes');
});
$scope.$watchCollection('tirage', function(oldTirage, newTirage){
$scope.objectEmpty = function(obj){
console.log($scope.tirage);
if(obj){
return Object.keys(obj).length === 0;
}
if(!angular.equals(oldTirage, newTirage) && $scope.tirage.indexOf(null) === -1){
return true;
};
var checkTirage = function(){
$log.info('Mise à jour du tirage');
for(var i=0; i<8; i+=1){
apicall.setTirage($scope.tirage).success(function(){
informer.informer('success', 'Tirage mis à jour avec succès');
}).error(function(){
informer.informer('danger', 'La mise à jour du tirage a rencontré une erreur');
});
if($scope.objectEmpty($scope.tirage[i])){
return false;
}
}
});
return true;
};
}]);
......@@ -9,9 +9,10 @@
angular.module('panelAdminApp')
.directive('afficheurInfos', ['informer', function (informer) {
return {
templateUrl: '/views/directives/afficheurAlertes.html',
templateUrl: '/views/directives/afficheurInfos.html',
restrict: 'E',
scope:{},
replace:true,
link: function($scope) {
$scope.alertes = informer.getInformations();
......
......@@ -16,7 +16,7 @@ angular.module('panelAdminApp')
elemSelection:'='
},
replace:true,
link: function($scope){
$scope.selectionnerEquipe = function(equipe){
......
......@@ -28,7 +28,7 @@ angular.module('panelAdminApp')
titre:'@'
},
replace:true,
templateUrl: 'views/directives/tableau.html',
link: function($scope) {
......
......@@ -22,8 +22,7 @@ angular.module('panelAdminApp')
};
this.messages.push(info);
$timeout(informer.supprimer, 5000, true, info);
//$timeout(informer.supprimer, 5000, true, info);
};
informer.getInformations = function() {
......
......@@ -108,21 +108,25 @@ angular.module('panelAdminApp')
case -2:
msg = 'Erreur inconnue avec la BDD';
msg = 'Erreur inconnue avec la base de données';
break;
case -3: // Erreur gérée (à traiter de façon générique => default)
msg = 'Erreur avec la BDD : ' + response.data.message;
msg = 'Erreur avec la base de données';
break;
// TODO À définir
default:
msg = 'Erreur : ' + response.data.message;
msg = 'Erreur inconnue';
break;
}
if(response.data.message){
msg += ' : ' + response.data.message;
}
$log.error(msg);
informer.informer('danger', msg);
......@@ -138,6 +142,11 @@ angular.module('panelAdminApp')
return $q.when(response);
}
},
'responseError':function(rejection){
informer.informer('danger', 'Erreur inconnue lors de la requête');
return $q.reject(rejection);
}
};
}]);
......@@ -336,14 +336,20 @@ div.centrer-cal table{
.conteneur-alertes{
position:absolute;
width:100%;
position:fixed;
top:10px;
right:0px;
left:0px;
margin:0 auto;
width:99%;
}
.design-alertes{
position:relative;
margin-right:30px;
opacity:0.9;
z-index:1001;
}
......
<div class="row conteneur-alertes">
<div class="conteneur-alertes">
<div ng-repeat="alerte in alertes" class="alert alert-dismiss {{alerte.type}} anim-alerte design-alertes" role="alert">
<span class="glyphicon glyphicon-exclamation-sign"></span>
{{alerte.msg}}
<!-- <button type="button" class="close" ng-click="fermerAlerte(alerte)" aria-label="Close">
<span> &times; </span>
</button> -->
{{alerte.msg}}
</div>
</div>
......@@ -12,8 +12,8 @@
<div class="drapeaux-drop" jqyoui-droppable="{multiple:true, onDrop:majTirage()}" data-drop="true" ng-model="equipes">
<div ng-repeat="equipe in equipes" >
<div class="emplacement-tirage emplacement-tirage-rempli" data-drag="true" ng-model="equipes" jqyoui-draggable="{index: {{$index}}}" data-jqyoui-options="{revert: 'invalid'}">
<img ng-src="http://5.196.21.161/drapeaux/{{equipe.NameTeam | lowercase}}.png" alt="{{equipe.CompleteName}}" class="drapeau-tirage" />
<div class="emplacement-tirage emplacement-tirage-rempli" data-drag="true" ng-model="equipes" ng-if="equipe.URL" jqyoui-draggable="{index: {{$index}}}" data-jqyoui-options="{revert: 'invalid'}">
<img ng-src="{{equipe.URL}}" alt="{{equipe.CompleteName}}" class="drapeau-tirage" />
</div>
</div>
</div>
......@@ -36,15 +36,15 @@
<div>
<div class="container-rencontre">
<div class="emplacement-drop" data-drop="true" jqyoui-droppable="{index: 0}" ng-model="tirage">
<div class="emplacement-tirage emplacement-tirage-rempli" data-drag="true" ng-model="tirage" jqyoui-draggable="{index: 0}" ng-if="tirage[0]" data-jqyoui-options="{revert: 'invalid'}">
<div class="emplacement-tirage emplacement-tirage-rempli" data-drag="true" ng-model="tirage" jqyoui-draggable="{index: 0, placeholder:true}" ng-if="!objectEmpty(tirage[0])" data-jqyoui-options="{revert: 'invalid'}">
<img ng-src="http://5.196.21.161/drapeaux/{{tirage[0].NameTeam | lowercase}}.png" alt="{{tirage[0].CompleteName}}" class="drapeau-tirage" />
<img ng-src="{{tirage[0].URL}}" alt="{{tirage[0].CompleteName}}" class="drapeau-tirage" />
</div>
</div>
<div class="emplacement-drop" data-drop="true" jqyoui-droppable="{index: 1}" ng-model="tirage">
<div class="emplacement-tirage emplacement-tirage-rempli" data-drag="true" ng-model="tirage" jqyoui-draggable="{index: 1}" ng-if="tirage[1]" data-jqyoui-options="{revert: 'invalid'}">
<div class="emplacement-tirage emplacement-tirage-rempli" data-drag="true" ng-model="tirage" jqyoui-draggable="{index: 1, placeholder:true}" ng-if="!objectEmpty(tirage[1])" data-jqyoui-options="{revert: 'invalid'}">
<img ng-src="http://5.196.21.161/drapeaux/{{tirage[1].NameTeam | lowercase}}.png" alt="{{tirage[1].CompleteName}}" class="drapeau-tirage" />
<img ng-src="{{tirage[1].URL}}" alt="{{tirage[1].CompleteName}}" class="drapeau-tirage" />
</div>
</div>
</div>
......@@ -56,15 +56,15 @@
<div>
<div class="container-rencontre">
<div class="emplacement-drop" data-drop="true" jqyoui-droppable="{index: 2}" ng-model="tirage">
<div class="emplacement-tirage emplacement-tirage-rempli" data-drag="true" ng-model="tirage" jqyoui-draggable="{index: 2}" ng-if="tirage[2]" data-jqyoui-options="{revert: 'invalid'}">
<div class="emplacement-tirage emplacement-tirage-rempli" data-drag="true" ng-model="tirage" jqyoui-draggable="{index: 2, placeholder:true}" ng-if="!objectEmpty(tirage[2])" data-jqyoui-options="{revert: 'invalid'}">
<img ng-src="http://5.196.21.161/drapeaux/{{tirage[2].NameTeam | lowercase}}.png" alt="{{tirage[2].CompleteName}}" class="drapeau-tirage" />
<img ng-src="{{tirage[2].URL}}" alt="{{tirage[2].CompleteName}}" class="drapeau-tirage" />
</div>
</div>
<div class="emplacement-drop" data-drop="true" jqyoui-droppable="{index: 3}" ng-model="tirage">
<div class="emplacement-tirage emplacement-tirage-rempli" data-drag="true" ng-model="tirage" jqyoui-draggable="{index: 3}" ng-if="tirage[3]" data-jqyoui-options="{revert: 'invalid'}">
<div class="emplacement-tirage emplacement-tirage-rempli" data-drag="true" ng-model="tirage" jqyoui-draggable="{index: 3, placeholder:true}" ng-if="!objectEmpty(tirage[3])" data-jqyoui-options="{revert: 'invalid'}">
<img ng-src="http://5.196.21.161/drapeaux/{{tirage[3].NameTeam | lowercase}}.png" alt="{{tirage[3].CompleteName}}" class="drapeau-tirage" />
<img ng-src="{{tirage[3].URL}}" alt="{{tirage[3].CompleteName}}" class="drapeau-tirage" />
</div>
</div>
</div>
......@@ -83,15 +83,15 @@
<div>
<div class="container-rencontre">
<div class="emplacement-drop" data-drop="true" jqyoui-droppable="{index: 4}" ng-model="tirage">
<div class="emplacement-tirage emplacement-tirage-rempli" data-drag="true" ng-model="tirage" jqyoui-draggable="{index: 4}" ng-if="tirage[4]" data-jqyoui-options="{revert: 'invalid'}">
<div class="emplacement-tirage emplacement-tirage-rempli" data-drag="true" ng-model="tirage" jqyoui-draggable="{index: 4, placeholder:true}" ng-if="!objectEmpty(tirage[4])" data-jqyoui-options="{revert: 'invalid'}">
<img ng-src="http://5.196.21.161/drapeaux/{{tirage[4].NameTeam | lowercase}}.png" alt="{{tirage[4].CompleteName}}" class="drapeau-tirage" />
<img ng-src="{{tirage[4].URL}}" alt="{{tirage[4].CompleteName}}" class="drapeau-tirage" />
</div>
</div>
<div class="emplacement-drop" data-drop="true" jqyoui-droppable="{index: 5}" ng-model="tirage">
<div class="emplacement-tirage emplacement-tirage-rempli" data-drag="true" ng-model="tirage" jqyoui-draggable="{index: 5}" ng-if="tirage[5]" data-jqyoui-options="{revert: 'invalid'}">
<div class="emplacement-tirage emplacement-tirage-rempli" data-drag="true" ng-model="tirage" jqyoui-draggable="{index: 5, placeholder:true}" ng-if="!objectEmpty(tirage[5])" data-jqyoui-options="{revert: 'invalid'}">
<img ng-src="http://5.196.21.161/drapeaux/{{tirage[5].NameTeam | lowercase}}.png" alt="{{tirage[5].CompleteName}}" class="drapeau-tirage" />
<img ng-src="{{tirage[5].URL}}" alt="{{tirage[5].CompleteName}}" class="drapeau-tirage" />
</div>
</div>
</div>
......@@ -103,15 +103,15 @@
<div>
<div class="container-rencontre">
<div class="emplacement-drop" data-drop="true" jqyoui-droppable="{index: 6}" ng-model="tirage">
<div class="emplacement-tirage emplacement-tirage-rempli" data-drag="true" ng-model="tirage" jqyoui-draggable="{index: 6}" ng-if="tirage[6]" data-jqyoui-options="{revert: 'invalid'}">
<div class="emplacement-tirage emplacement-tirage-rempli" data-drag="true" ng-model="tirage" jqyoui-draggable="{index: 6, placeholder:true}" ng-if="!objectEmpty(tirage[6])" data-jqyoui-options="{revert: 'invalid'}">
<img ng-src="http://5.196.21.161/drapeaux/{{tirage[6].NameTeam | lowercase}}.png" alt="{{tirage[6].CompleteName}}" class="drapeau-tirage" />
<img ng-src="{{tirage[6].URL}}" alt="{{tirage[6].CompleteName}}" class="drapeau-tirage" />
</div>
</div>
<div class="emplacement-drop" data-drop="true" jqyoui-droppable="{index: 7}" ng-model="tirage">
<div class="emplacement-tirage emplacement-tirage-rempli" data-drag="true" ng-model="tirage" jqyoui-draggable="{index: 7}" ng-if="tirage[7]" data-jqyoui-options="{revert: 'invalid'}">
<div class="emplacement-tirage emplacement-tirage-rempli" data-drag="true" ng-model="tirage" jqyoui-draggable="{index: 7, placeholder:true}" ng-if="!objectEmpty(tirage[7])" data-jqyoui-options="{revert: 'invalid'}">
<img ng-src="http://5.196.21.161/drapeaux/{{tirage[7].NameTeam | lowercase}}.png" alt="{{tirage[7].CompleteName}}" class="drapeau-tirage" />
<img ng-src="{{tirage[7].URL}}" alt="{{tirage[7].CompleteName}}" class="drapeau-tirage" />
</div>
</div>
</div>
......
......@@ -9,7 +9,6 @@
"angular-route": "1.3.10",
"angular-bootstrap": "~0.12.0",
"angular-animate": "~1.3.15",
"ngDraggable": "~0.1.3",
"angular-dragdrop": "~1.0.11"
},
"devDependencies": {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment