Commit 9378de0d18440dfdc250ca4884eebae89055cae2

Authored by Geoffrey PREUD'HOMME
1 parent 12162cc1

Affichage d'une conversation

app/routes/ApiRtes.js
... ... @@ -104,6 +104,15 @@ api.get('/convs', function (req, res) { // Liste des convs
104 104 });
105 105 });
106 106  
  107 +api.get('/convs/:conv_id', function (req, res) { // Une conv
  108 + ConvsServ.get(req.params.conv_id, function (err, conv) {
  109 + if (err)
  110 + res.send(err);
  111 + else
  112 + res.json(conv);
  113 + });
  114 +});
  115 +
107 116 api.post('/convs', function (req, res) { // Ajout d'un conv
108 117 ifPermission(req, res, 'canAddConv', function () {
109 118 ConvsServ.add(req.body, function (err, conv) {
... ...
app/services/ConvsServ.js
... ... @@ -4,7 +4,7 @@ var async = require('async');
4 4  
5 5 var ConvsServ = {};
6 6  
7   -ConvsServ.addData = function (Conv, cb) {
  7 +ConvsServ.addData = function (conv, cb) {
8 8 // NomsServ.get(Conv.login, function (nom) {
9 9 // if (nom) {
10 10 // Conv.nom = nom;
... ... @@ -15,15 +15,15 @@ ConvsServ.addData = function (Conv, cb) {
15 15 // });
16 16 // TODO Démarré par
17 17 // TODO Dernier message
18   - cb(null, Conv);
  18 + cb(null, conv);
19 19 };
20 20  
21 21 ConvsServ.get = function(id, cb) {
22   - ConvModl.findById(id).lean().exec(function (err, Conv) {
  22 + ConvModl.findById(id).lean().exec(function (err, conv) {
23 23 if (err)
24 24 cb(err);
25 25 else
26   - ConvsServ.addData(Conv, cb);
  26 + ConvsServ.addData(conv, cb);
27 27 });
28 28 };
29 29  
... ...
public/js/app.js
1   -angular.module('ciApp', ['ngAnimate', 'ngRoute', 'ConnectCtrl', 'MembreCtrl', 'ForumDirCtrl', 'SessionsCtrl']).config(['$routeProvider', '$locationProvider',
  1 +angular.module('ciApp', ['ngAnimate', 'ngRoute', 'ConnectCtrl', 'MembreCtrl', 'ForumDirCtrl', 'ForumConvCtrl', 'SessionsCtrl']).config(['$routeProvider', '$locationProvider',
2 2 function ($routeProvider, $locationProvider) {
3 3 $routeProvider
4 4 .when('/', {
... ... @@ -9,9 +9,16 @@ angular.module('ciApp', ['ngAnimate', 'ngRoute', 'ConnectCtrl', 'MembreCtrl', 'F
9 9 controller: 'MembreCtrl'
10 10 })
11 11 .when('/forum', {
  12 + redirectTo: 'forum/dir/0'
  13 + })
  14 + .when('/forum/dir/:dir_id', {
12 15 templateUrl: 'views/forumDir.html',
13 16 controller: 'ForumDirCtrl'
14 17 })
  18 + .when('/forum/conv/:conv_id', {
  19 + templateUrl: 'views/forumConv.html',
  20 + controller: 'ForumConvCtrl'
  21 + })
15 22 .when('/connect', {
16 23 templateUrl: 'views/connect.html',
17 24 controller: 'ConnectCtrl'
... ...
public/js/controllers/ForumConvCtrl.js 0 → 100644
... ... @@ -0,0 +1,31 @@
  1 +angular.module('ForumConvCtrl', ['SessionsServ', 'ForumServ', 'NotifyServ']).controller('ForumConvCtrl', ['$scope', '$routeParams', 'SessionServ', 'ForumServ', 'NotifyServ',
  2 + function ($scope, $routeParams, SessionServ, ForumServ, NotifyServ) {
  3 + $scope.conv = {};
  4 + // $scope.formData = {};
  5 +
  6 + $scope.session = SessionServ.cur;
  7 + SessionServ.onChange(function () {
  8 + $scope.session = SessionServ.cur;
  9 + });
  10 + ForumServ.getConv($routeParams.conv_id, function(err, conv) {
  11 + if (!err)
  12 + $scope.conv = conv;
  13 + });
  14 + //
  15 + // $scope.createConv = function () {
  16 + // ForumServ.createConv($scope.formData, function(err, conv) {
  17 + // if (!err)
  18 + // $scope.formData = {};
  19 + // $scope.convs.push(conv);
  20 + // });
  21 + // };
  22 + //
  23 + // $scope.deleteConv = function (index) {
  24 + // ForumServ.deleteConv($scope.convs[index]._id, function(err) {
  25 + // if (!err)
  26 + // $scope.convs.splice(index, 1);
  27 + // });
  28 + // };
  29 +
  30 + }
  31 +]);
... ...
public/js/controllers/ForumDirCtrl.js
... ... @@ -16,6 +16,7 @@ angular.module('ForumDirCtrl', ['SessionsServ', 'ForumServ', 'NotifyServ']).cont
16 16 $scope.createConv = function () {
17 17 ForumServ.createConv($scope.formData, function(err, conv) {
18 18 if (!err)
  19 + $scope.formData = {};
19 20 $scope.convs.push(conv);
20 21 });
21 22 };
... ...
public/js/services/ForumServ.js
1 1 angular.module('ForumServ', ['NotifyServ']).service('ForumServ', ['$http', 'NotifyServ',
2 2 function ($http, NotifyServ) {
3 3 a = {
  4 + getConv: function (id, cb) {
  5 + $http.get('/api/convs/' + id)
  6 + .success(function (data) {
  7 + cb(null, data);
  8 + })
  9 + .error(function (data) {
  10 + NotifyServ.error("Impossible d'obtenir la conv", data);
  11 + });
  12 + },
  13 +
4 14 getConvs: function (cb) {
5 15 // TODO Dirs
6 16 $http.get('/api/convs')
... ...
public/views/forumConv.html 0 → 100644
... ... @@ -0,0 +1,27 @@
  1 +<div class="container">
  2 + <ol class="breadcrumb">
  3 + <li><a href="#">Home</a></li>
  4 + <li><a href="#">Library</a></li>
  5 + <li class="active">Conv</li>
  6 + </ol>
  7 + <h1>{{ conv.titre }}</h1>
  8 + <nav>
  9 + <ul class="pagination">
  10 + <li>
  11 + <a href="#" aria-label="Previous">
  12 + <span aria-hidden="true">&laquo;</span>
  13 + </a>
  14 + </li>
  15 + <li><a href="#">1</a></li>
  16 + <li><a href="#">2</a></li>
  17 + <li><a href="#">3</a></li>
  18 + <li><a href="#">4</a></li>
  19 + <li><a href="#">5</a></li>
  20 + <li>
  21 + <a href="#" aria-label="Next">
  22 + <span aria-hidden="true">&raquo;</span>
  23 + </a>
  24 + </li>
  25 + </ul>
  26 + </nav>
  27 +</div>
... ...
public/views/forumDir.html
... ... @@ -6,7 +6,9 @@
6 6 </ol>
7 7 <div class="panel panel-default" ng-repeat="conv in convs">
8 8 <div class="panel-heading">
9   - <h3 class="panel-title">{{ conv.titre }}</h3>
  9 + <a href="/forum/conv/{{ conv._id }}">
  10 + <h3 class="panel-title">{{ conv.titre }}</h3>
  11 + </a>
10 12 </div>
11 13 <div class="panel-body">
12 14 <strong>Date : </strong>{{ conv.date }}
... ...
public/views/index.html
... ... @@ -27,6 +27,7 @@
27 27 <script src="js/controllers/ConnectCtrl.js"></script>
28 28 <script src="js/controllers/MembreCtrl.js"></script>
29 29 <script src="js/controllers/ForumDirCtrl.js"></script>
  30 + <script src="js/controllers/ForumConvCtrl.js"></script>
30 31 <script src="js/app.js"></script>
31 32 </head>
32 33  
... ...