Commit f661af157d66eb1c1fa75f0ad01613d7f98bff75
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
Showing
5 changed files
with
50 additions
and
35 deletions
Show diff stats
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> | ... | ... |