Commit f661af157d66eb1c1fa75f0ad01613d7f98bff75

Authored by Geoffrey PREUD'HOMME
1 parent 9a18ee30

Amelioré la gestion des membres

* Renvoi uniquement de ce qui est nécessaire lors
	de l'ajout ou de la suppression
* Animations
app/routes/ApiRtes.js
... ... @@ -75,11 +75,8 @@ api.post('/membres', function (req, res) { // Ajout d'un membre
75 75 MembresServ.add(req.body, function (err, membre) {
76 76 if (err)
77 77 res.send(err);
78   - MembresServ.list(function (err, membres) {
79   - if (err)
80   - res.send(err);
81   - res.json(membres);
82   - });
  78 + else
  79 + res.json(membre);
83 80 });
84 81 });
85 82 });
... ... @@ -89,11 +86,8 @@ api.delete('/membres/:membre_id', function (req, res) { // Supression d'un membr
89 86 MembresServ.remove(req.params.membre_id, function (err, membre) {
90 87 if (err)
91 88 res.send(err);
92   - MembresServ.list(function (err, membres) {
93   - if (err)
94   - res.send(err);
95   - res.json(membres);
96   - });
  89 + else
  90 + res.json(null);
97 91 });
98 92 });
99 93 });
... ...
app/services/MembresServ.js
... ... @@ -2,36 +2,48 @@ var MembreModl = require('../models/MembreModl');
2 2 var NomsServ = require('../services/NomsServ');
3 3 var async = require('async');
4 4  
5   -var membres = {};
  5 +var MembresServ = {};
6 6  
7   -membres.list = function (cb) {
  7 +MembresServ.addData = function (membre, cb) {
  8 + NomsServ.get(membre.login, function (nom) {
  9 + if (nom) {
  10 + membre.nom = nom;
  11 + } else {
  12 + membre.nom = membre.login;
  13 + }
  14 + cb(null, membre);
  15 + });
  16 +};
  17 +
  18 +MembresServ.get = function(id, cb) {
  19 + MembreModl.findById(id).lean().exec(function (err, membre) {
  20 + if (err)
  21 + cb(err);
  22 + else
  23 + MembresServ.addData(membre, cb);
  24 + });
  25 +};
  26 +
  27 +MembresServ.list = function (cb) {
8 28 MembreModl.find({}).lean().exec(function (err, membres) {
9   - addNom = function (membre, cbA) {
10   - NomsServ.get(membre.login, function (nom) {
11   - if (nom) {
12   - membre.nom = nom;
13   - } else {
14   - membre.nom = membre.login;
15   - }
16   - cbA(null, membre);
17   - });
18   - };
19   - async.mapSeries(membres, addNom, cb);
  29 + async.mapSeries(membres, MembresServ.addData, cb);
20 30 });
21 31 };
22 32  
23   -membres.add = function (data, cb) {
  33 +MembresServ.add = function (data, cb) {
24 34 MembreModl.create({
25 35 login: data.login,
26 36 role: data.role,
27 37 section: data.section,
28   - }, cb);
  38 + }, function(err, membre) {
  39 + MembresServ.get(membre._id, cb);
  40 + });
29 41 };
30 42  
31   -membres.remove = function (id, cb) {
  43 +MembresServ.remove = function (id, cb) {
32 44 MembreModl.remove({
33 45 _id: id
34 46 }, cb);
35 47 };
36 48  
37   -module.exports = membres;
  49 +module.exports = MembresServ;
... ...
public/css/style.css
... ... @@ -29,3 +29,13 @@ body {
29 29 #membre-list {
30 30 width: 90%;
31 31 }
  32 +
  33 +#membre-list .ng-enter {
  34 + -webkit-animation: fadeInLeft 0.5s;
  35 + animation: fadeInLeft 0.5s;
  36 +}
  37 +
  38 +#membre-list .ng-leave {
  39 + -webkit-animation: fadeOutLeft 0.5s;
  40 + animation: fadeOutLeft 0.5s;
  41 +}
... ...
public/js/controllers/MembreCtrl.js
... ... @@ -18,9 +18,9 @@ angular.module('MembreCtrl', ['SessionsServ', 'NotifyServ']).controller('MembreC
18 18 $scope.createMembre = function () {
19 19 var not = NotifyServ.promise("Ajout du membre...");
20 20 $http.post('/api/membres', $scope.formData)
21   - .success(function (data) {
  21 + .success(function (membre) {
22 22 $scope.formData = {};
23   - $scope.membres = data;
  23 + $scope.membres.push(membre);
24 24 not.success("Membre ajouté");
25 25 })
26 26 .error(function (data) {
... ... @@ -28,11 +28,11 @@ angular.module('MembreCtrl', ['SessionsServ', 'NotifyServ']).controller('MembreC
28 28 });
29 29 };
30 30  
31   - $scope.deleteMembre = function (id) {
  31 + $scope.deleteMembre = function (index) {
32 32 var not = NotifyServ.promise("Suppression du membre...");
33   - $http.delete('/api/membres/' + id)
34   - .success(function (data) {
35   - $scope.membres = data;
  33 + $http.delete('/api/membres/' + $scope.membres[index]._id)
  34 + .success(function (membre) {
  35 + $scope.membres.splice(index, 1);
36 36 not.success("Membre supprimé");
37 37 })
38 38 .error(function (data) {
... ...
public/views/membres.html
1 1 <div class="container">
2   - <!-- HEADER AND TODO COUNT -->
3 2 <div class="jumbotron text-center">
4 3 <h1>Il y a
5 4 <span id="membre-qt" class="label label-info">{{ membres.length }}</span> personnes au Club Info !</h1>
... ... @@ -20,7 +19,7 @@
20 19 <td>{{ membre.section }}</td>
21 20 <td>{{ membre.role }}</td>
22 21 <td ng-if="session.canDelMembre">
23   - <button type="button" class="btn btn-danger" aria-label="Expulser" ng-click="deleteMembre(membre._id)">
  22 + <button type="button" class="btn btn-danger" aria-label="Expulser" ng-click="deleteMembre($index)">
24 23 <span class="glyphicon glyphicon-remove" aria-hidden="true"></span>
25 24 </button>
26 25 </td>
... ...