From 4ed2f4d388a1f36e838f1131813c3ab77fe3db21 Mon Sep 17 00:00:00 2001 From: LSSArosa Date: Wed, 3 May 2017 10:43:55 +0200 Subject: [PATCH 01/19] EXO-5 add publishedAt field/input --- app/models/post.js | 3 +++ public/js/components/blog/blogItem/blogItem.html | 13 ++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/app/models/post.js b/app/models/post.js index 06fe4da..8db69cf 100755 --- a/app/models/post.js +++ b/app/models/post.js @@ -11,6 +11,9 @@ module.exports = mongoose.model('Post', new mongoose.Schema({ }, content: { type: String + }, + publishedAt: { + type: Date } }, { timestamps: true diff --git a/public/js/components/blog/blogItem/blogItem.html b/public/js/components/blog/blogItem/blogItem.html index b83316f..dd1db1d 100755 --- a/public/js/components/blog/blogItem/blogItem.html +++ b/public/js/components/blog/blogItem/blogItem.html @@ -2,7 +2,7 @@
- +
@@ -11,12 +11,23 @@ + + + +

+ + Publié le {{$ctrl.post.publishedAt | date: "dd-MM-yyyy"}} +

+
{{$ctrl.post.content | limitTo: ($ctrl.editable ? $ctrl.post.content.length : 110)}}
+ + +
From 25ce5880fbb9235db5a6c4c262a0596ef6c311ef Mon Sep 17 00:00:00 2001 From: LSSArosa Date: Wed, 3 May 2017 14:44:31 +0200 Subject: [PATCH 02/19] add route ALGO1 but doesent display Html --- public/js/app.js | 6 ++- public/js/components/algo1/algo1.html | 12 ++++++ public/js/components/algo1/algo1.js | 37 +++++++++++++++++++ public/js/components/algo1/algo1.md.js | 25 +++++++++++++ .../components/blog/blogItem/blogItemMenu.js | 2 +- .../js/components/blog/blogList/blogList.js | 3 +- public/js/config/routes.js | 8 ++++ public/js/services/algo1Service.js | 11 ++++++ public/js/services/services.md.js | 2 + 9 files changed, 101 insertions(+), 5 deletions(-) create mode 100644 public/js/components/algo1/algo1.html create mode 100644 public/js/components/algo1/algo1.js create mode 100644 public/js/components/algo1/algo1.md.js create mode 100644 public/js/services/algo1Service.js diff --git a/public/js/app.js b/public/js/app.js index 72c1c02..07a6c09 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -15,10 +15,11 @@ import services from './services/services.md' import common from './components/common/common.md' import login from './components/login/login.md' import blog from './components/blog/blog.md' +import algo1 from './components/algo1/algo1.md' console.log("In app.js") console.log(services) - + angular.module('app', [ angularUIRouter, angularCookies, @@ -27,5 +28,6 @@ angular.module('app', [ services, common, login, - blog + blog, + algo1 ]) diff --git a/public/js/components/algo1/algo1.html b/public/js/components/algo1/algo1.html new file mode 100644 index 0000000..2bf6049 --- /dev/null +++ b/public/js/components/algo1/algo1.html @@ -0,0 +1,12 @@ +
+ +
+
+
+

algo1

+ +
+
+ +
+
diff --git a/public/js/components/algo1/algo1.js b/public/js/components/algo1/algo1.js new file mode 100644 index 0000000..fa00ae5 --- /dev/null +++ b/public/js/components/algo1/algo1.js @@ -0,0 +1,37 @@ +/* +Create Angular component algo1 into module app.blog +*/ +let algo1 = { + templateUrl: 'js/components/algo1/algo1.html', + controller: [ 'UsersService', '$state', function( UsersService, $state ) { + 'use strict' + console.log("algo1.js"); + angular.extend( this, { + $onInit() { + UsersService.getCurrent().then( ( user ) => { + this.user = user + } ).catch( ( err ) => { + + } ) + }, + disconnect() { + UsersService.disconnect().then( () => { + Materialize.toast( 'Disconnected', 4000, 'toast-warning' ) + this.user = null + $state.reload() + } ) + } + } ) + + let friends = ["Ryan", "Kieran", "Mark"] + let isFriend = []; + friends.forEach( function( y ) { + if ( y.length === 4 ) { isFriend.push( y ) } + } ) + console.log("I have this friends: ", isFriend ); + + + } ] +} + +export default algo1 diff --git a/public/js/components/algo1/algo1.md.js b/public/js/components/algo1/algo1.md.js new file mode 100644 index 0000000..bc089f7 --- /dev/null +++ b/public/js/components/algo1/algo1.md.js @@ -0,0 +1,25 @@ +/* +Create Angular module app.blog and define all states +blog : parent state, is an abstrat state too with templateUrl +*/ + +import algo1Component from './algo1' + +let algo1Module = angular.module('app.algo1', []) + .component('algo1', algo1Component) + .config(['$stateProvider', ($stateProvider, $urlRouterProvider, $locationProvider) => { + console.log("algo1.md.js"); + /* + Define a state with name 'blog' this state is abstract and url is empty (root of application) + template is ui-view it's used to display nested views + */ + // $stateProvider + // .state('algo1', { + // url: '/algo1', + // abstract: true, + // templateUrl: 'js/components/algo1/algo1.html' + // }) + }]) + .name + +export default algo1Module diff --git a/public/js/components/blog/blogItem/blogItemMenu.js b/public/js/components/blog/blogItem/blogItemMenu.js index e3fb662..b021690 100755 --- a/public/js/components/blog/blogItem/blogItemMenu.js +++ b/public/js/components/blog/blogItem/blogItemMenu.js @@ -5,7 +5,7 @@ Create Angular component blogItemMenu into module app.blog with databindings pro - onEdit : function - onDelete : function - onSave : function -About bindings: +About bindings: http://stackoverflow.com/questions/37818740/use-of-symbols-and-in-custom-directives-scope-binding-angula */ let blogItemMenu = { diff --git a/public/js/components/blog/blogList/blogList.js b/public/js/components/blog/blogList/blogList.js index ab19e29..2a778b1 100755 --- a/public/js/components/blog/blogList/blogList.js +++ b/public/js/components/blog/blogList/blogList.js @@ -22,7 +22,7 @@ let blogList = { this.posts = res.data }).catch((err) => { this.posts = [{ - title: "Hello There", + title: "Hello There", content: "I am an intersting article. There was an error by the way because API doesn't exist yet" }] }) @@ -33,7 +33,6 @@ let blogList = { // Add 3 to startIndex this.startIndex += 3 } - }] } diff --git a/public/js/config/routes.js b/public/js/config/routes.js index 84745e8..12cad73 100755 --- a/public/js/config/routes.js +++ b/public/js/config/routes.js @@ -16,6 +16,14 @@ export default ['$stateProvider', '$urlRouterProvider', '$locationProvider', ($s abstract: true, template: '
' }) + .state('algo1', { + url: '/algo1/', + template: '', + controller: ['Algo1Service', "$stateParams", '$state', function(Algo1Service, $stateParams, $state) { + $state.go('algo1') + + }] + }) .state('callback', { url: '/auth/callback/:token', template: '', diff --git a/public/js/services/algo1Service.js b/public/js/services/algo1Service.js new file mode 100644 index 0000000..2b6d4ba --- /dev/null +++ b/public/js/services/algo1Service.js @@ -0,0 +1,11 @@ +export default ['$http', class Algo1Service { + + constructor($http) { + this.$http = $http + console.log("Algo1Service"); + } + // get() { + // // HTTP Request method GET to our express API + // return this.$http.get('/api/algo1') + // } +}] diff --git a/public/js/services/services.md.js b/public/js/services/services.md.js index f2aa35f..9957148 100644 --- a/public/js/services/services.md.js +++ b/public/js/services/services.md.js @@ -3,10 +3,12 @@ Create app.service module */ import postsService from './postsService' import usersService from './usersService' +import algo1Service from './algo1Service' let servicesModule = angular.module('app.services', []) .service('PostsService', postsService) .service('UsersService', usersService) + .service('Algo1Service', algo1Service) .name export default servicesModule From b6b7187361820223ba90ac3aba95ca9a0c5bb48c Mon Sep 17 00:00:00 2001 From: LSSArosa Date: Wed, 3 May 2017 14:52:37 +0200 Subject: [PATCH 03/19] move Up input field PublishedAt --- public/js/components/blog/blogItem/blogItem.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/public/js/components/blog/blogItem/blogItem.html b/public/js/components/blog/blogItem/blogItem.html index dd1db1d..adf2ee6 100755 --- a/public/js/components/blog/blogItem/blogItem.html +++ b/public/js/components/blog/blogItem/blogItem.html @@ -17,7 +17,9 @@

Publié le {{$ctrl.post.publishedAt | date: "dd-MM-yyyy"}} -

+ + +

@@ -26,8 +28,6 @@ - -
From 1e7e662b00b2a30831d80cef0493762231ce164b Mon Sep 17 00:00:00 2001 From: LSSArosa Date: Wed, 3 May 2017 15:04:53 +0200 Subject: [PATCH 04/19] correction ok, page Algo1 OK --- public/js/components/algo1/algo1.html | 2 +- public/js/components/algo1/algo1.js | 19 ++++++++++++------- public/js/config/routes.js | 2 +- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/public/js/components/algo1/algo1.html b/public/js/components/algo1/algo1.html index 2bf6049..98a48f0 100644 --- a/public/js/components/algo1/algo1.html +++ b/public/js/components/algo1/algo1.html @@ -4,7 +4,7 @@

algo1

- +

{{$ctrl.myFriend}}

diff --git a/public/js/components/algo1/algo1.js b/public/js/components/algo1/algo1.js index fa00ae5..08986c4 100644 --- a/public/js/components/algo1/algo1.js +++ b/public/js/components/algo1/algo1.js @@ -23,13 +23,18 @@ let algo1 = { } } ) - let friends = ["Ryan", "Kieran", "Mark"] - let isFriend = []; - friends.forEach( function( y ) { - if ( y.length === 4 ) { isFriend.push( y ) } - } ) - console.log("I have this friends: ", isFriend ); - + function friend(friends){ + //your code here + // for each friend in array friends + // test if lenght = 4 then push it in return array + let isFriend = []; + friends.forEach(function(y) { + if (y.length === 4) { isFriend.push(y)} + }) + return isFriend ; + } + this.myFriend = friend(["Ryan", "Kieran", "Mark"]); + console.log("I have this friends: ", this.myFriend ); } ] } diff --git a/public/js/config/routes.js b/public/js/config/routes.js index 12cad73..e1cfcac 100755 --- a/public/js/config/routes.js +++ b/public/js/config/routes.js @@ -18,7 +18,7 @@ export default ['$stateProvider', '$urlRouterProvider', '$locationProvider', ($s }) .state('algo1', { url: '/algo1/', - template: '', + template: '', controller: ['Algo1Service', "$stateParams", '$state', function(Algo1Service, $stateParams, $state) { $state.go('algo1') From 79fa5c972fb8e67329b3a7512df531ea12364259 Mon Sep 17 00:00:00 2001 From: LSSArosa Date: Wed, 3 May 2017 15:22:07 +0200 Subject: [PATCH 05/19] install package moment.js --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index dc0a4ae..b0809ab 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,7 @@ "express-jwt": "^5.1.0", "jsonwebtoken": "^7.3.0", "method-override": "~2.3.6", + "moment": "^2.18.1", "mongoose": "^4.8.7", "morgan": "~1.7.0", "passport": "^0.3.2", From bd979603b6d2509637ed2c47f4256ae01f37eeea Mon Sep 17 00:00:00 2001 From: LSSArosa Date: Wed, 3 May 2017 16:04:24 +0200 Subject: [PATCH 06/19] display time OK; refresh KO --- public/js/components/common/navbar.html | 27 +++++++++++++++---------- public/js/components/common/navbar.js | 9 +++++++++ 2 files changed, 25 insertions(+), 11 deletions(-) diff --git a/public/js/components/common/navbar.html b/public/js/components/common/navbar.html index 7c2ca66..b8d945c 100755 --- a/public/js/components/common/navbar.html +++ b/public/js/components/common/navbar.html @@ -1,25 +1,30 @@ diff --git a/public/js/components/common/navbar.js b/public/js/components/common/navbar.js index c994d8c..cf89ec9 100755 --- a/public/js/components/common/navbar.js +++ b/public/js/components/common/navbar.js @@ -1,3 +1,6 @@ + +import moment from 'moment'; + let navbar = { templateUrl: 'js/components/common/navbar.html', controller: ['UsersService', '$state', function(UsersService, $state) { @@ -19,6 +22,12 @@ let navbar = { } }) + let moment = require('moment'); + this.currentDate = moment() + + this.curentTime = moment().format('MMMM Do YYYY, h:mm:ss a'); + console.log("this.curentTime", this.curentTime); + }] } From f98b0460283300c9ace20d14aea21952387f69e7 Mon Sep 17 00:00:00 2001 From: LSSArosa Date: Wed, 3 May 2017 16:29:25 +0200 Subject: [PATCH 07/19] refresh OK --- public/js/components/common/navbar.html | 3 +-- public/js/components/common/navbar.js | 10 ++++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/public/js/components/common/navbar.html b/public/js/components/common/navbar.html index b8d945c..e3c0d35 100755 --- a/public/js/components/common/navbar.html +++ b/public/js/components/common/navbar.html @@ -8,13 +8,12 @@
diff --git a/public/js/components/blog/blogItem/blogItem.js b/public/js/components/blog/blogItem/blogItem.js index 97d54ee..c59b72b 100755 --- a/public/js/components/blog/blogItem/blogItem.js +++ b/public/js/components/blog/blogItem/blogItem.js @@ -85,6 +85,16 @@ let blogItem = { return (this.user.bookmarks.find((post_id) => post_id.id === this.post._id)) } + this.isPublished = () => { + var checkbox = this.mycheckbox; + alert('checkbox value: ' + checkbox.checked); + console.log("checkbox.checked", checkbox.checked); + + } + + + + this.addOrRemoveToBookmark = () => { // Try to find post in bookmarks let postFound = this.user.bookmarks.find((post) => post.id === this.post._id) From 90e0b2d2419272a992fb5ce30e5445f756c59802 Mon Sep 17 00:00:00 2001 From: LSSArosa Date: Wed, 3 May 2017 17:28:46 +0200 Subject: [PATCH 09/19] corr bug date exo5 --- public/js/components/blog/blogItem/blogItem.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/public/js/components/blog/blogItem/blogItem.html b/public/js/components/blog/blogItem/blogItem.html index 77b26e1..8d0f8f2 100755 --- a/public/js/components/blog/blogItem/blogItem.html +++ b/public/js/components/blog/blogItem/blogItem.html @@ -16,7 +16,9 @@

- Publié le {{$ctrl.post.publishedAt | date: "dd-MM-yyyy"}} + + Publié le {{$ctrl.post.publishedAt | date: "dd-MM-yyyy"}} + From 446106fa8cbafa020665e8338e4e07f54588b065 Mon Sep 17 00:00:00 2001 From: LSSArosa Date: Wed, 3 May 2017 17:40:47 +0200 Subject: [PATCH 10/19] exo6 c est pas encore ca --- public/js/components/blog/blogItem/blogItem.html | 2 +- public/js/components/blog/blogItem/blogItem.js | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/public/js/components/blog/blogItem/blogItem.html b/public/js/components/blog/blogItem/blogItem.html index 8d0f8f2..d8f9016 100755 --- a/public/js/components/blog/blogItem/blogItem.html +++ b/public/js/components/blog/blogItem/blogItem.html @@ -25,7 +25,7 @@

diff --git a/public/js/components/blog/blogItem/blogItem.js b/public/js/components/blog/blogItem/blogItem.js index c59b72b..aad4588 100755 --- a/public/js/components/blog/blogItem/blogItem.js +++ b/public/js/components/blog/blogItem/blogItem.js @@ -89,8 +89,7 @@ let blogItem = { var checkbox = this.mycheckbox; alert('checkbox value: ' + checkbox.checked); console.log("checkbox.checked", checkbox.checked); - - } + } From a6c340ec2ed43d6ae85c4133914c75259f8d94ec Mon Sep 17 00:00:00 2001 From: LSSArosa Date: Wed, 3 May 2017 17:42:17 +0200 Subject: [PATCH 11/19] exo6 c est pas encore ca --- public/js/components/blog/blogItem/blogItem.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/public/js/components/blog/blogItem/blogItem.js b/public/js/components/blog/blogItem/blogItem.js index aad4588..211ca1a 100755 --- a/public/js/components/blog/blogItem/blogItem.js +++ b/public/js/components/blog/blogItem/blogItem.js @@ -87,13 +87,10 @@ let blogItem = { this.isPublished = () => { var checkbox = this.mycheckbox; - alert('checkbox value: ' + checkbox.checked); + return checkbox.checked console.log("checkbox.checked", checkbox.checked); } - - - this.addOrRemoveToBookmark = () => { // Try to find post in bookmarks let postFound = this.user.bookmarks.find((post) => post.id === this.post._id) From 0ae9d387e1f72065de576789917943e6af740f80 Mon Sep 17 00:00:00 2001 From: LSSArosa Date: Wed, 3 May 2017 17:51:20 +0200 Subject: [PATCH 12/19] exo5 date edit OK --- public/js/components/blog/blogItem/blogItem.js | 1 + 1 file changed, 1 insertion(+) diff --git a/public/js/components/blog/blogItem/blogItem.js b/public/js/components/blog/blogItem/blogItem.js index 97d54ee..c569452 100755 --- a/public/js/components/blog/blogItem/blogItem.js +++ b/public/js/components/blog/blogItem/blogItem.js @@ -35,6 +35,7 @@ let blogItem = { PostsService.getById($stateParams.id).then((res) => { // when this request receives response we affect response data to this controller variable post this.post = res.data; + this.post.publishedAt = new Date(this.post.publishedAt) // save into initialPost a copy of this post (used for undo) initialPost = angular.copy(this.post) }) From 3aa4721bfc5c1c0820e92907d489af3e1bec1eda Mon Sep 17 00:00:00 2001 From: LSSArosa Date: Wed, 3 May 2017 18:23:54 +0200 Subject: [PATCH 13/19] export mongo TEST --- posts.json | 5 +++++ users.json | 1 + 2 files changed, 6 insertions(+) create mode 100644 posts.json create mode 100644 users.json diff --git a/posts.json b/posts.json new file mode 100644 index 0000000..833290d --- /dev/null +++ b/posts.json @@ -0,0 +1,5 @@ +{"_id":{"$oid":"59098efab395541750ab50a1"},"updatedAt":{"$date":"2017-05-03T08:50:39.820Z"},"createdAt":{"$date":"2017-05-03T08:04:10.369Z"},"title":"Exercice 1","content":"elsadd@hotmail.fr \nle mot de passe c'est la première lettre de l'alphabet\n\n1. Ce qu’est un fork Github ?\n c'est quand on duplique un projet présent sur GitHub afin de le faire évoluer de son coté différemment de la version originale.\n\\n\n2. A quoi sert-il ?\n cela permet de faire des évolutions sans qu'li n'y ait d'impact sur la version d'origine tout en gardant un lien avec elle. De nombreux logiciels sont issus de Forks. \n\n3. Qu’est-ce qu’une pull request ? Quel est l’intérêt ?\n c'est du code qui est présenté aux propriétaires du projet afin d’être validé publiquement avant de l'intégrer (merge) dans le code existant du projet. Ce peut être en interne ou en externe. Cela permet d'intégrer des contributions.\n \n4. Qu’est-ce qu’une branche ?\n\"Créer une branche signifie diverger de la ligne principale de développement et continuer à travailler sans se préoccuper de cette ligne principale.\"\n cela permet de séparer le modifications de code et de les fusionner plus tard si on le souhaite\n\n5. Quelle est la différence entre une branche et un fork ? \nune branche appartient à un projet donné, un fork c'est un autre projet, qui a lui même ses propres branches.","__v":0,"publishedAt":{"$date":"2017-05-02T22:00:00.000Z"}} +{"_id":{"$oid":"5909946c41cbd21c20468bc8"},"updatedAt":{"$date":"2017-05-03T08:42:16.624Z"},"createdAt":{"$date":"2017-05-03T08:27:24.820Z"},"title":"exo 5 ajout champ date","content":"Instructions : \nLors de l’ajout/édition d’un article, un troisième champ « date de publication » doit être visible et on doit pouvoir y inscrire une date\nL’usage d’un Datepicker est un gros plus mais pas indispensable. Si vous n’utilisez pas de datepicker, mettez au moins un message d’aide pour que l’utilisateur renseigne la date sous le bon format. \nLe contenu de ce champ doit apparaître sur la page de visualisation d’un article, en dessous de son titre : « publié le JJ-MM-AAAA »\nPensez à la mise à jour du schéma Mongoose pour l’enregistrement, réfléchissez à un bon nom de champs, en prenant exemple sur les « createdAt » / « updatedAt »","publishedAt":{"$date":"2017-05-02T22:00:00.000Z"},"__v":0} +{"_id":{"$oid":"5909963341cbd21c20468bc9"},"updatedAt":{"$date":"2017-05-03T08:34:59.426Z"},"createdAt":{"$date":"2017-05-03T08:34:59.426Z"},"title":"exo5","content":"Nous aimerions ajouter une date de publication à l’article sous la forme «JJ-MM-AAAA », par exemple : 03-05-2017.","publishedAt":{"$date":"2017-05-02T22:00:00.000Z"},"__v":0} +{"_id":{"$oid":"5909ee89848fc51ce01353b6"},"updatedAt":{"$date":"2017-05-03T14:51:53.136Z"},"createdAt":{"$date":"2017-05-03T14:51:53.136Z"},"title":"EXO 6","publishedAt":{"$date":"2017-05-03T22:00:00.000Z"},"content":"Ajouter un champ « publié » à l’article","__v":0} +{"_id":{"$oid":"5909feacdd2af62e3fe6253d"},"updatedAt":{"$date":"2017-05-03T16:00:44.519Z"},"createdAt":{"$date":"2017-05-03T16:00:44.519Z"},"title":"exo16 export mongo","publishedAt":{"$date":"2017-05-02T22:00:00.000Z"},"content":"mongoexport --db blog --collection posts --out posts.json","__v":0} diff --git a/users.json b/users.json new file mode 100644 index 0000000..80def41 --- /dev/null +++ b/users.json @@ -0,0 +1 @@ +{"_id":{"$oid":"590989d4b395541750ab50a0"},"updatedAt":{"$date":"2017-05-03T07:42:13.448Z"},"createdAt":{"$date":"2017-05-03T07:42:13.448Z"},"salt":"7713a5d3e38c6e0373073be108a657712ea1b5a3cb94b17895b2cf392b8f4238","email":"elsadd@hotmail.fr","name":"elsa","isAdmin":false,"bookmarks":[],"encryptedPassword":"4fae489a7f5dccff7689fd4d501c1568c592b79640b200d6e80ba8f39e68555fa981f2f15de09c6a0d4de9b94ca52a04fd72068e1fefc70cde329b481d31e1fd570de71be8890588eeb8f3faee2758e52443c39dfae8d95ddea254108bf0f24efb7e20cc72c58fdf2f86d79ec8eddcafaba388c97a25e05e7e0d811a3ba6fb414516b2dcdf7cc539f66b73117ef4c5560c861a026bc0ffebf4b5c7ca4d3bdaad4ea71caa8bf868352e7334c65f51ef6d58f6f08c57b3f1c567838257802ae346bb522b54cd0fe2629e39d13638e420d36401c34ff3a4a53a0c87ca2cefc70b6dab72145f4b9652c482e5e81264e05cb46f7c5f2b784450854853b2c62bbeb435","__v":0} From 9c41d7faff64803b2cddac834a89b7026753cd49 Mon Sep 17 00:00:00 2001 From: LSSArosa Date: Wed, 3 May 2017 18:33:10 +0200 Subject: [PATCH 14/19] corr bugg edit date OK --- public/js/components/blog/blogItem/blogItem.js | 1 + 1 file changed, 1 insertion(+) diff --git a/public/js/components/blog/blogItem/blogItem.js b/public/js/components/blog/blogItem/blogItem.js index 97d54ee..c569452 100755 --- a/public/js/components/blog/blogItem/blogItem.js +++ b/public/js/components/blog/blogItem/blogItem.js @@ -35,6 +35,7 @@ let blogItem = { PostsService.getById($stateParams.id).then((res) => { // when this request receives response we affect response data to this controller variable post this.post = res.data; + this.post.publishedAt = new Date(this.post.publishedAt) // save into initialPost a copy of this post (used for undo) initialPost = angular.copy(this.post) }) From 1b0f30ffeeebe27371b2785ea8e1c0abd415c467 Mon Sep 17 00:00:00 2001 From: LSSArosa Date: Wed, 3 May 2017 22:07:26 +0200 Subject: [PATCH 15/19] add field 'publish' in post model --- app/models/post.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/models/post.js b/app/models/post.js index 8db69cf..bd38fc9 100755 --- a/app/models/post.js +++ b/app/models/post.js @@ -14,6 +14,9 @@ module.exports = mongoose.model('Post', new mongoose.Schema({ }, publishedAt: { type: Date + }, + publish: { + type: Boolean } }, { timestamps: true From 55577636c2ea3acf383be33ef5d81116a2548d8c Mon Sep 17 00:00:00 2001 From: LSSArosa Date: Wed, 3 May 2017 22:58:17 +0200 Subject: [PATCH 16/19] add field 'publish' in post model --- app/controllers/PostsController.js | 17 +++++++++++++++++ app/routes/posts.js | 5 +++++ .../js/components/blog/blogItem/blogItem.html | 3 +-- public/js/components/blog/blogItem/blogItem.js | 6 ------ public/js/services/postsService.js | 3 ++- 5 files changed, 25 insertions(+), 9 deletions(-) diff --git a/app/controllers/PostsController.js b/app/controllers/PostsController.js index 98181a2..5406b78 100755 --- a/app/controllers/PostsController.js +++ b/app/controllers/PostsController.js @@ -13,8 +13,25 @@ class PostsController extends Controller { constructor() { super(Post) + console.log("I am in PostsController"); } + findPublished(req, res, next) { + // Get all documents and filter with queries string (req.query : ex. http://domain.ext/api/?query=string) + // this.model.find(req.query, (err, documents) => { + console.log("in findPublished "); + // GET /search?q=tobi+ferret + // req.query.q + // => "tobi ferret" + this.model.find('req.query.publish' , (err, documents) => { + // this.model.find('/app/blog/posts/?publish=true' , (err, documents) => { + res.json(documents) + console.log("posts.publish", req.query.publish); + + }) + } + + } module.exports = PostsController diff --git a/app/routes/posts.js b/app/routes/posts.js index 672c9a2..025b77b 100755 --- a/app/routes/posts.js +++ b/app/routes/posts.js @@ -10,6 +10,11 @@ module.exports = (app) => { let ctrl = new PostsController(); //GET (for READ) method + // app.get('/posts/search?publish', (req, res, next) => { + // return ctrl.findPublished(req, res, next) + // console.log("I am in route/posts app.get('/posts' "); + // }) + // //GET (for READ) method app.get('/posts', (req, res, next) => { return ctrl.find(req, res, next) }) diff --git a/public/js/components/blog/blogItem/blogItem.html b/public/js/components/blog/blogItem/blogItem.html index d8f9016..8e21c57 100755 --- a/public/js/components/blog/blogItem/blogItem.html +++ b/public/js/components/blog/blogItem/blogItem.html @@ -25,12 +25,11 @@
- published

diff --git a/public/js/components/blog/blogItem/blogItem.js b/public/js/components/blog/blogItem/blogItem.js index 3a7599f..c569452 100755 --- a/public/js/components/blog/blogItem/blogItem.js +++ b/public/js/components/blog/blogItem/blogItem.js @@ -86,12 +86,6 @@ let blogItem = { return (this.user.bookmarks.find((post_id) => post_id.id === this.post._id)) } - this.isPublished = () => { - var checkbox = this.mycheckbox; - return checkbox.checked - console.log("checkbox.checked", checkbox.checked); - } - this.addOrRemoveToBookmark = () => { // Try to find post in bookmarks let postFound = this.user.bookmarks.find((post) => post.id === this.post._id) diff --git a/public/js/services/postsService.js b/public/js/services/postsService.js index ac1f9dd..633319c 100755 --- a/public/js/services/postsService.js +++ b/public/js/services/postsService.js @@ -9,7 +9,8 @@ export default ['$http', class PostsService { get() { // HTTP Request method GET to our express API - return this.$http.get('/api/posts') + // return this.$http.get('/api/posts') + return this.$http.get('/api/posts/?publish=true') } getById(id) { // HTTP Request method GET with param (post id) to our express API From 72483332a36be18a007e2ebd651080cec83f8c1c Mon Sep 17 00:00:00 2001 From: LSSArosa Date: Wed, 3 May 2017 23:11:19 +0200 Subject: [PATCH 17/19] TODO filter Publish by id --- app/routes/posts.js | 5 ----- public/js/components/blog/blogItem/blogItem.js | 1 + public/js/services/postsService.js | 6 +++++- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/routes/posts.js b/app/routes/posts.js index 025b77b..6479a40 100755 --- a/app/routes/posts.js +++ b/app/routes/posts.js @@ -9,11 +9,6 @@ module.exports = (app) => { // Create new controller let ctrl = new PostsController(); - //GET (for READ) method - // app.get('/posts/search?publish', (req, res, next) => { - // return ctrl.findPublished(req, res, next) - // console.log("I am in route/posts app.get('/posts' "); - // }) // //GET (for READ) method app.get('/posts', (req, res, next) => { return ctrl.find(req, res, next) diff --git a/public/js/components/blog/blogItem/blogItem.js b/public/js/components/blog/blogItem/blogItem.js index c569452..8cb5961 100755 --- a/public/js/components/blog/blogItem/blogItem.js +++ b/public/js/components/blog/blogItem/blogItem.js @@ -43,6 +43,7 @@ let blogItem = { } else { //If $stateParams.id doesn't exist we change state to app.blog.list (redirection to list) $state.go('blog.list') + console.log("redirect to blog.list"); } // Create delete function. diff --git a/public/js/services/postsService.js b/public/js/services/postsService.js index 633319c..75f9e80 100755 --- a/public/js/services/postsService.js +++ b/public/js/services/postsService.js @@ -14,7 +14,11 @@ export default ['$http', class PostsService { } getById(id) { // HTTP Request method GET with param (post id) to our express API - return this.$http.get('/api/posts/' + id) + // if ( ) { + return this.$http.get('/api/posts/' + id) + // } else { + // console.log("« Article not published yet » "); + //} } save(post) { if (post._id) { From 6d10721f543da9a8f49c50e033f7a55ae52feeb4 Mon Sep 17 00:00:00 2001 From: LSSArosa Date: Wed, 3 May 2017 23:24:44 +0200 Subject: [PATCH 18/19] new DB export --- posts.json | 15 ++++++++++----- users.json | 2 +- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/posts.json b/posts.json index 833290d..b259f6f 100644 --- a/posts.json +++ b/posts.json @@ -1,5 +1,10 @@ -{"_id":{"$oid":"59098efab395541750ab50a1"},"updatedAt":{"$date":"2017-05-03T08:50:39.820Z"},"createdAt":{"$date":"2017-05-03T08:04:10.369Z"},"title":"Exercice 1","content":"elsadd@hotmail.fr \nle mot de passe c'est la première lettre de l'alphabet\n\n1. Ce qu’est un fork Github ?\n c'est quand on duplique un projet présent sur GitHub afin de le faire évoluer de son coté différemment de la version originale.\n\\n\n2. A quoi sert-il ?\n cela permet de faire des évolutions sans qu'li n'y ait d'impact sur la version d'origine tout en gardant un lien avec elle. De nombreux logiciels sont issus de Forks. \n\n3. Qu’est-ce qu’une pull request ? Quel est l’intérêt ?\n c'est du code qui est présenté aux propriétaires du projet afin d’être validé publiquement avant de l'intégrer (merge) dans le code existant du projet. Ce peut être en interne ou en externe. Cela permet d'intégrer des contributions.\n \n4. Qu’est-ce qu’une branche ?\n\"Créer une branche signifie diverger de la ligne principale de développement et continuer à travailler sans se préoccuper de cette ligne principale.\"\n cela permet de séparer le modifications de code et de les fusionner plus tard si on le souhaite\n\n5. Quelle est la différence entre une branche et un fork ? \nune branche appartient à un projet donné, un fork c'est un autre projet, qui a lui même ses propres branches.","__v":0,"publishedAt":{"$date":"2017-05-02T22:00:00.000Z"}} -{"_id":{"$oid":"5909946c41cbd21c20468bc8"},"updatedAt":{"$date":"2017-05-03T08:42:16.624Z"},"createdAt":{"$date":"2017-05-03T08:27:24.820Z"},"title":"exo 5 ajout champ date","content":"Instructions : \nLors de l’ajout/édition d’un article, un troisième champ « date de publication » doit être visible et on doit pouvoir y inscrire une date\nL’usage d’un Datepicker est un gros plus mais pas indispensable. Si vous n’utilisez pas de datepicker, mettez au moins un message d’aide pour que l’utilisateur renseigne la date sous le bon format. \nLe contenu de ce champ doit apparaître sur la page de visualisation d’un article, en dessous de son titre : « publié le JJ-MM-AAAA »\nPensez à la mise à jour du schéma Mongoose pour l’enregistrement, réfléchissez à un bon nom de champs, en prenant exemple sur les « createdAt » / « updatedAt »","publishedAt":{"$date":"2017-05-02T22:00:00.000Z"},"__v":0} -{"_id":{"$oid":"5909963341cbd21c20468bc9"},"updatedAt":{"$date":"2017-05-03T08:34:59.426Z"},"createdAt":{"$date":"2017-05-03T08:34:59.426Z"},"title":"exo5","content":"Nous aimerions ajouter une date de publication à l’article sous la forme «JJ-MM-AAAA », par exemple : 03-05-2017.","publishedAt":{"$date":"2017-05-02T22:00:00.000Z"},"__v":0} -{"_id":{"$oid":"5909ee89848fc51ce01353b6"},"updatedAt":{"$date":"2017-05-03T14:51:53.136Z"},"createdAt":{"$date":"2017-05-03T14:51:53.136Z"},"title":"EXO 6","publishedAt":{"$date":"2017-05-03T22:00:00.000Z"},"content":"Ajouter un champ « publié » à l’article","__v":0} -{"_id":{"$oid":"5909feacdd2af62e3fe6253d"},"updatedAt":{"$date":"2017-05-03T16:00:44.519Z"},"createdAt":{"$date":"2017-05-03T16:00:44.519Z"},"title":"exo16 export mongo","publishedAt":{"$date":"2017-05-02T22:00:00.000Z"},"content":"mongoexport --db blog --collection posts --out posts.json","__v":0} +{"_id":{"$oid":"59098efab395541750ab50a1"},"updatedAt":{"$date":"2017-05-03T08:50:39.820Z"},"createdAt":{"$date":"2017-05-03T08:04:10.369Z"},"title":"Exercice 1","content":"elsadd@hotmail.fr \nle mot de passe c'est la première lettre de l'alphabet\n\n1. Ce qu’est un fork Github ?\n c'est quand on duplique un projet présent sur GitHub afin de le faire évoluer de son coté différemment de la version originale.\n\\n\n2. A quoi sert-il ?\n cela permet de faire des évolutions sans qu'li n'y ait d'impact sur la version d'origine tout en gardant un lien avec elle. De nombreux logiciels sont issus de Forks. \n\n3. Qu’est-ce qu’une pull request ? Quel est l’intérêt ?\n c'est du code qui est présenté aux propriétaires du projet afin d’être validé publiquement avant de l'intégrer (merge) dans le code existant du projet. Ce peut être en interne ou en externe. Cela permet d'intégrer des contributions.\n \n4. Qu’est-ce qu’une branche ?\n\"Créer une branche signifie diverger de la ligne principale de développement et continuer à travailler sans se préoccuper de cette ligne principale.\"\n cela permet de séparer le modifications de code et de les fusionner plus tard si on le souhaite\n\n5. Quelle est la différence entre une branche et un fork ? \nune branche appartient à un projet donné, un fork c'est un autre projet, qui a lui même ses propres branches.","__v":0,"publishedAt":{"$date":"2017-05-02T22:00:00.000Z"},"publish":true} +{"_id":{"$oid":"5909946c41cbd21c20468bc8"},"updatedAt":{"$date":"2017-05-03T18:07:03.677Z"},"createdAt":{"$date":"2017-05-03T08:27:24.820Z"},"title":"exo 5 publishedAt","content":"Instructions : \nLors de l’ajout/édition d’un article, un troisième champ « date de publication » doit être visible et on doit pouvoir y inscrire une date\nL’usage d’un Datepicker est un gros plus mais pas indispensable. Si vous n’utilisez pas de datepicker, mettez au moins un message d’aide pour que l’utilisateur renseigne la date sous le bon format. \nLe contenu de ce champ doit apparaître sur la page de visualisation d’un article, en dessous de son titre : « publié le JJ-MM-AAAA »\nPensez à la mise à jour du schéma Mongoose pour l’enregistrement, réfléchissez à un bon nom de champs, en prenant exemple sur les « createdAt » / « updatedAt »","publishedAt":{"$date":"2017-05-02T22:00:00.000Z"},"__v":0,"publish":true} +{"_id":{"$oid":"5909963341cbd21c20468bc9"},"updatedAt":{"$date":"2017-05-03T20:54:32.295Z"},"createdAt":{"$date":"2017-05-03T08:34:59.426Z"},"title":"exo5","content":"Nous aimerions ajouter une date de publication à l’article sous la forme «JJ-MM-AAAA », par exemple : 03-05-2017.","publishedAt":{"$date":"2017-05-02T22:00:00.000Z"},"__v":0,"publish":true} +{"_id":{"$oid":"5909ee89848fc51ce01353b6"},"updatedAt":{"$date":"2017-05-03T18:31:38.771Z"},"createdAt":{"$date":"2017-05-03T14:51:53.136Z"},"title":"EXO 6","publishedAt":{"$date":"2017-05-03T22:00:00.000Z"},"content":"Ajouter un champ « publié » à l’article","__v":0,"publish":true} +{"_id":{"$oid":"5909feacdd2af62e3fe6253d"},"updatedAt":{"$date":"2017-05-03T16:04:30.339Z"},"createdAt":{"$date":"2017-05-03T16:00:44.519Z"},"title":"exo16 export mongo","publishedAt":{"$date":"2017-05-02T22:00:00.000Z"},"content":"mongoexport --db blog --collection posts --out posts.json\nmongoexport --db blog --collection users --out users.json","__v":0,"publish":true} +{"_id":{"$oid":"590a0a4782f7713bdcac8f45"},"updatedAt":{"$date":"2017-05-03T18:11:19.947Z"},"createdAt":{"$date":"2017-05-03T16:50:15.392Z"},"title":"exo 11 debugg","publishedAt":{"$date":"2017-05-02T22:00:00.000Z"},"__v":0,"content":"pb dans Mongo, arrive pas à faire ménage des anciens Id bookmark en double","publish":true} +{"_id":{"$oid":"590a1cfb4fa3a545d429d612"},"updatedAt":{"$date":"2017-05-03T18:10:03.606Z"},"createdAt":{"$date":"2017-05-03T18:10:03.606Z"},"title":"test favori","publishedAt":{"$date":"2017-05-02T22:00:00.000Z"},"__v":0,"publish":true} +{"_id":{"$oid":"590a41e01aa4026008f6af0d"},"updatedAt":{"$date":"2017-05-03T20:47:28.893Z"},"createdAt":{"$date":"2017-05-03T20:47:28.893Z"},"title":"EXO6 not Published","publishedAt":{"$date":"2017-05-02T22:00:00.000Z"},"content":"this article is not published","__v":0,"publish":false} +{"_id":{"$oid":"590a42281aa4026008f6af0e"},"updatedAt":{"$date":"2017-05-03T20:48:40.042Z"},"createdAt":{"$date":"2017-05-03T20:48:40.042Z"},"title":"EXO6 Published yes","publishedAt":{"$date":"2017-05-02T22:00:00.000Z"},"content":"article publié","__v":0,"publish":true} +{"_id":{"$oid":"590a43b81aa4026008f6af0f"},"updatedAt":{"$date":"2017-05-03T20:55:45.723Z"},"createdAt":{"$date":"2017-05-03T20:55:20.955Z"},"title":"exo6","publishedAt":{"$date":"2017-05-02T22:00:00.000Z"},"content":"this.Publish no","publish":false,"__v":0} diff --git a/users.json b/users.json index 80def41..a888292 100644 --- a/users.json +++ b/users.json @@ -1 +1 @@ -{"_id":{"$oid":"590989d4b395541750ab50a0"},"updatedAt":{"$date":"2017-05-03T07:42:13.448Z"},"createdAt":{"$date":"2017-05-03T07:42:13.448Z"},"salt":"7713a5d3e38c6e0373073be108a657712ea1b5a3cb94b17895b2cf392b8f4238","email":"elsadd@hotmail.fr","name":"elsa","isAdmin":false,"bookmarks":[],"encryptedPassword":"4fae489a7f5dccff7689fd4d501c1568c592b79640b200d6e80ba8f39e68555fa981f2f15de09c6a0d4de9b94ca52a04fd72068e1fefc70cde329b481d31e1fd570de71be8890588eeb8f3faee2758e52443c39dfae8d95ddea254108bf0f24efb7e20cc72c58fdf2f86d79ec8eddcafaba388c97a25e05e7e0d811a3ba6fb414516b2dcdf7cc539f66b73117ef4c5560c861a026bc0ffebf4b5c7ca4d3bdaad4ea71caa8bf868352e7334c65f51ef6d58f6f08c57b3f1c567838257802ae346bb522b54cd0fe2629e39d13638e420d36401c34ff3a4a53a0c87ca2cefc70b6dab72145f4b9652c482e5e81264e05cb46f7c5f2b784450854853b2c62bbeb435","__v":0} +{"_id":{"$oid":"590989d4b395541750ab50a0"},"updatedAt":{"$date":"2017-05-03T20:00:01.004Z"},"createdAt":{"$date":"2017-05-03T07:42:13.448Z"},"salt":"7713a5d3e38c6e0373073be108a657712ea1b5a3cb94b17895b2cf392b8f4238","email":"elsadd@hotmail.fr","name":"elsa","isAdmin":false,"bookmarks":[{"$oid":"5909963341cbd21c20468bc9"},{"$oid":"5909963341cbd21c20468bc9"},{"$oid":"5909963341cbd21c20468bc9"},{"$oid":"5909946c41cbd21c20468bc8"},{"$oid":"5909946c41cbd21c20468bc8"},{"$oid":"5909946c41cbd21c20468bc8"},{"$oid":"5909946c41cbd21c20468bc8"},{"$oid":"5909946c41cbd21c20468bc8"},{"$oid":"5909feacdd2af62e3fe6253d"},{"$oid":"5909946c41cbd21c20468bc8"},{"$oid":"5909946c41cbd21c20468bc8"},{"$oid":"5909946c41cbd21c20468bc8"},{"$oid":"590a1cfb4fa3a545d429d612"},{"$oid":"590a0a4782f7713bdcac8f45"}],"encryptedPassword":"4fae489a7f5dccff7689fd4d501c1568c592b79640b200d6e80ba8f39e68555fa981f2f15de09c6a0d4de9b94ca52a04fd72068e1fefc70cde329b481d31e1fd570de71be8890588eeb8f3faee2758e52443c39dfae8d95ddea254108bf0f24efb7e20cc72c58fdf2f86d79ec8eddcafaba388c97a25e05e7e0d811a3ba6fb414516b2dcdf7cc539f66b73117ef4c5560c861a026bc0ffebf4b5c7ca4d3bdaad4ea71caa8bf868352e7334c65f51ef6d58f6f08c57b3f1c567838257802ae346bb522b54cd0fe2629e39d13638e420d36401c34ff3a4a53a0c87ca2cefc70b6dab72145f4b9652c482e5e81264e05cb46f7c5f2b784450854853b2c62bbeb435","__v":0} From 04086e97b4a3e78d5f2cb34cb6c436d766bf7995 Mon Sep 17 00:00:00 2001 From: LSSArosa Date: Wed, 3 May 2017 23:53:18 +0200 Subject: [PATCH 19/19] download DB for EXO2 --- posts.json | 16 +++++++++++----- users.json | 2 +- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/posts.json b/posts.json index 833290d..61d3e10 100644 --- a/posts.json +++ b/posts.json @@ -1,5 +1,11 @@ -{"_id":{"$oid":"59098efab395541750ab50a1"},"updatedAt":{"$date":"2017-05-03T08:50:39.820Z"},"createdAt":{"$date":"2017-05-03T08:04:10.369Z"},"title":"Exercice 1","content":"elsadd@hotmail.fr \nle mot de passe c'est la première lettre de l'alphabet\n\n1. Ce qu’est un fork Github ?\n c'est quand on duplique un projet présent sur GitHub afin de le faire évoluer de son coté différemment de la version originale.\n\\n\n2. A quoi sert-il ?\n cela permet de faire des évolutions sans qu'li n'y ait d'impact sur la version d'origine tout en gardant un lien avec elle. De nombreux logiciels sont issus de Forks. \n\n3. Qu’est-ce qu’une pull request ? Quel est l’intérêt ?\n c'est du code qui est présenté aux propriétaires du projet afin d’être validé publiquement avant de l'intégrer (merge) dans le code existant du projet. Ce peut être en interne ou en externe. Cela permet d'intégrer des contributions.\n \n4. Qu’est-ce qu’une branche ?\n\"Créer une branche signifie diverger de la ligne principale de développement et continuer à travailler sans se préoccuper de cette ligne principale.\"\n cela permet de séparer le modifications de code et de les fusionner plus tard si on le souhaite\n\n5. Quelle est la différence entre une branche et un fork ? \nune branche appartient à un projet donné, un fork c'est un autre projet, qui a lui même ses propres branches.","__v":0,"publishedAt":{"$date":"2017-05-02T22:00:00.000Z"}} -{"_id":{"$oid":"5909946c41cbd21c20468bc8"},"updatedAt":{"$date":"2017-05-03T08:42:16.624Z"},"createdAt":{"$date":"2017-05-03T08:27:24.820Z"},"title":"exo 5 ajout champ date","content":"Instructions : \nLors de l’ajout/édition d’un article, un troisième champ « date de publication » doit être visible et on doit pouvoir y inscrire une date\nL’usage d’un Datepicker est un gros plus mais pas indispensable. Si vous n’utilisez pas de datepicker, mettez au moins un message d’aide pour que l’utilisateur renseigne la date sous le bon format. \nLe contenu de ce champ doit apparaître sur la page de visualisation d’un article, en dessous de son titre : « publié le JJ-MM-AAAA »\nPensez à la mise à jour du schéma Mongoose pour l’enregistrement, réfléchissez à un bon nom de champs, en prenant exemple sur les « createdAt » / « updatedAt »","publishedAt":{"$date":"2017-05-02T22:00:00.000Z"},"__v":0} -{"_id":{"$oid":"5909963341cbd21c20468bc9"},"updatedAt":{"$date":"2017-05-03T08:34:59.426Z"},"createdAt":{"$date":"2017-05-03T08:34:59.426Z"},"title":"exo5","content":"Nous aimerions ajouter une date de publication à l’article sous la forme «JJ-MM-AAAA », par exemple : 03-05-2017.","publishedAt":{"$date":"2017-05-02T22:00:00.000Z"},"__v":0} -{"_id":{"$oid":"5909ee89848fc51ce01353b6"},"updatedAt":{"$date":"2017-05-03T14:51:53.136Z"},"createdAt":{"$date":"2017-05-03T14:51:53.136Z"},"title":"EXO 6","publishedAt":{"$date":"2017-05-03T22:00:00.000Z"},"content":"Ajouter un champ « publié » à l’article","__v":0} -{"_id":{"$oid":"5909feacdd2af62e3fe6253d"},"updatedAt":{"$date":"2017-05-03T16:00:44.519Z"},"createdAt":{"$date":"2017-05-03T16:00:44.519Z"},"title":"exo16 export mongo","publishedAt":{"$date":"2017-05-02T22:00:00.000Z"},"content":"mongoexport --db blog --collection posts --out posts.json","__v":0} +{"_id":{"$oid":"59098efab395541750ab50a1"},"updatedAt":{"$date":"2017-05-03T08:50:39.820Z"},"createdAt":{"$date":"2017-05-03T08:04:10.369Z"},"title":"Exercice 1","content":"elsadd@hotmail.fr \nle mot de passe c'est la première lettre de l'alphabet\n\n1. Ce qu’est un fork Github ?\n c'est quand on duplique un projet présent sur GitHub afin de le faire évoluer de son coté différemment de la version originale.\n\\n\n2. A quoi sert-il ?\n cela permet de faire des évolutions sans qu'li n'y ait d'impact sur la version d'origine tout en gardant un lien avec elle. De nombreux logiciels sont issus de Forks. \n\n3. Qu’est-ce qu’une pull request ? Quel est l’intérêt ?\n c'est du code qui est présenté aux propriétaires du projet afin d’être validé publiquement avant de l'intégrer (merge) dans le code existant du projet. Ce peut être en interne ou en externe. Cela permet d'intégrer des contributions.\n \n4. Qu’est-ce qu’une branche ?\n\"Créer une branche signifie diverger de la ligne principale de développement et continuer à travailler sans se préoccuper de cette ligne principale.\"\n cela permet de séparer le modifications de code et de les fusionner plus tard si on le souhaite\n\n5. Quelle est la différence entre une branche et un fork ? \nune branche appartient à un projet donné, un fork c'est un autre projet, qui a lui même ses propres branches.","__v":0,"publishedAt":{"$date":"2017-05-02T22:00:00.000Z"},"publish":true} +{"_id":{"$oid":"5909946c41cbd21c20468bc8"},"updatedAt":{"$date":"2017-05-03T18:07:03.677Z"},"createdAt":{"$date":"2017-05-03T08:27:24.820Z"},"title":"exo 5 publishedAt","content":"Instructions : \nLors de l’ajout/édition d’un article, un troisième champ « date de publication » doit être visible et on doit pouvoir y inscrire une date\nL’usage d’un Datepicker est un gros plus mais pas indispensable. Si vous n’utilisez pas de datepicker, mettez au moins un message d’aide pour que l’utilisateur renseigne la date sous le bon format. \nLe contenu de ce champ doit apparaître sur la page de visualisation d’un article, en dessous de son titre : « publié le JJ-MM-AAAA »\nPensez à la mise à jour du schéma Mongoose pour l’enregistrement, réfléchissez à un bon nom de champs, en prenant exemple sur les « createdAt » / « updatedAt »","publishedAt":{"$date":"2017-05-02T22:00:00.000Z"},"__v":0,"publish":true} +{"_id":{"$oid":"5909963341cbd21c20468bc9"},"updatedAt":{"$date":"2017-05-03T20:54:32.295Z"},"createdAt":{"$date":"2017-05-03T08:34:59.426Z"},"title":"exo5","content":"Nous aimerions ajouter une date de publication à l’article sous la forme «JJ-MM-AAAA », par exemple : 03-05-2017.","publishedAt":{"$date":"2017-05-02T22:00:00.000Z"},"__v":0,"publish":true} +{"_id":{"$oid":"5909ee89848fc51ce01353b6"},"updatedAt":{"$date":"2017-05-03T18:31:38.771Z"},"createdAt":{"$date":"2017-05-03T14:51:53.136Z"},"title":"EXO 6","publishedAt":{"$date":"2017-05-03T22:00:00.000Z"},"content":"Ajouter un champ « publié » à l’article","__v":0,"publish":true} +{"_id":{"$oid":"5909feacdd2af62e3fe6253d"},"updatedAt":{"$date":"2017-05-03T16:04:30.339Z"},"createdAt":{"$date":"2017-05-03T16:00:44.519Z"},"title":"exo16 export mongo","publishedAt":{"$date":"2017-05-02T22:00:00.000Z"},"content":"mongoexport --db blog --collection posts --out posts.json\nmongoexport --db blog --collection users --out users.json","__v":0,"publish":true} +{"_id":{"$oid":"590a0a4782f7713bdcac8f45"},"updatedAt":{"$date":"2017-05-03T18:11:19.947Z"},"createdAt":{"$date":"2017-05-03T16:50:15.392Z"},"title":"exo 11 debugg","publishedAt":{"$date":"2017-05-02T22:00:00.000Z"},"__v":0,"content":"pb dans Mongo, arrive pas à faire ménage des anciens Id bookmark en double","publish":true} +{"_id":{"$oid":"590a1cfb4fa3a545d429d612"},"updatedAt":{"$date":"2017-05-03T18:10:03.606Z"},"createdAt":{"$date":"2017-05-03T18:10:03.606Z"},"title":"test favori","publishedAt":{"$date":"2017-05-02T22:00:00.000Z"},"__v":0,"publish":true} +{"_id":{"$oid":"590a41e01aa4026008f6af0d"},"updatedAt":{"$date":"2017-05-03T20:47:28.893Z"},"createdAt":{"$date":"2017-05-03T20:47:28.893Z"},"title":"EXO6 not Published","publishedAt":{"$date":"2017-05-02T22:00:00.000Z"},"content":"this article is not published","__v":0,"publish":false} +{"_id":{"$oid":"590a42281aa4026008f6af0e"},"updatedAt":{"$date":"2017-05-03T20:48:40.042Z"},"createdAt":{"$date":"2017-05-03T20:48:40.042Z"},"title":"EXO6 Published yes","publishedAt":{"$date":"2017-05-02T22:00:00.000Z"},"content":"article publié","__v":0,"publish":true} +{"_id":{"$oid":"590a43b81aa4026008f6af0f"},"updatedAt":{"$date":"2017-05-03T20:55:45.723Z"},"createdAt":{"$date":"2017-05-03T20:55:20.955Z"},"title":"exo6","publishedAt":{"$date":"2017-05-02T22:00:00.000Z"},"content":"this.Publish no","publish":false,"__v":0} +{"_id":{"$oid":"590a4b8d64ded768e72a0da9"},"updatedAt":{"$date":"2017-05-03T21:51:37.449Z"},"createdAt":{"$date":"2017-05-03T21:28:45.738Z"},"publish":true,"publishedAt":{"$date":"2017-05-02T22:00:00.000Z"},"title":"La MEAN Stack","content":"Angular\n1. A quoi elle sert ? C'est un framework MVC pour définir l'architecture du projet\n2. Où va-t-on l’utiliser (côté front, côté back, front \u0026 back, terminal…) ? On peut l'utiliser des 2 cotés front \u0026 back mais pas obligé\n3. Si elle est facultative ou non pour ce projet : non\nAngular UI Router\n1. A quoi elle sert ? C'est un outil qui permet de faciliter la navigation sur un site sans avoir à recharger toute la page, très pratique pour les sites Single page\n2. Où va-t-on l’utiliser (côté front, côté back, front \u0026 back, terminal…) ? En front car c'est pour afficher\n3. Si elle est facultative ou non pour ce projet, si on l'en lève on n'affiche plus rien sur notre site, il aurait fallu le concevoir différement.\nExpress\n1. A quoi elle sert ? C'est un framework basé sur Node .js pour construire le serveur\n2. Où va-t-on l’utiliser (côté front, côté back, front \u0026 back, terminal…) ? En back\n3. Si elle est facultative ou non pour ce projet, Non, si on n'a pas de serveur on n'a pas de données à afficher\nJSONWebToken\n1. A quoi elle sert ? C'est un standard utilisé pour l'authentification\n2. Où va-t-on l’utiliser (côté front, côté back, front \u0026 back, terminal…) ? front \u0026 back\n3. Si elle est facultative ou non pour ce projet. On peut faire autrement oui\nMongoose\n1. A quoi elle sert ? C'est pour l'accès à la base de données\n2. Où va-t-on l’utiliser (côté front, côté back, front \u0026 back, terminal…) ? Accès par le back et par le terminal on peut aussi\n3. Si elle est facultative ou non pour ce projet . Si on utilise une autre DB NoSQL oui\nMaterializeCSS\n1. A quoi elle sert ? C'est un framework pour le CSS\n2. Où va-t-on l’utiliser (côté front, côté back, front \u0026 back, terminal…) ? Coté front\n3. Si elle est facultative ou non pour ce projet, oui mais c'est moins joli et pratique à coder, on pourrait changer pour bootstrap\nPassport\n1. A quoi elle sert ? C'est pout l'authentification\n2. Où va-t-on l’utiliser (côté front, côté back, front \u0026 back, terminal…) ? Les deux\n3. Si elle est facultative ou non pour ce projet, on pourrait\nBabel\n1. A quoi elle sert ? C'est un compilateur pour la rétrocompatibilité avec d'anciens navigateurs\n2. Où va-t-on l’utiliser (côté front, côté back, front \u0026 back, terminal…) ? front\n3. Si elle est facultative ou non pour ce projet. Oui si notre navigateur est à jour avec les technos utilisées\nSCSS\n1. A quoi elle sert ? Ça prend moins de place que le css\n2. Où va-t-on l’utiliser (côté front, côté back, front \u0026 back, terminal…) ? front\n3. Si elle est facultative ou non pour ce projet. oui\nNodemon\n1. A quoi elle sert ? Ça sert au dev . C'est un service qui relance les scripts en cas de modifications, on voit les résultats (ok ou Ko) sur le terminal\n2. Où va-t-on l’utiliser (côté front, côté back, front \u0026 back, terminal…) ? Que en dev - Back affiché sur terminal. Se trouve dans \"devDependencies\" du package.json\n3. Si elle est facultative ou non pour ce projet, oui mais pour tester et débuger c'est plus pratique\nWebpack\n1. A quoi elle sert ? Comme audessus mais coté front Ça sert au dev, regénère le js pour l'afficher sans tout rafraichir\n2. Où va-t-on l’utiliser  ? Que en dev- Front affiché sur terminal. Se trouve dans \"devDependencies\" du package.json\n3. Si elle est facultative ou non pour ce projet, oui mais pour tester et débuger c'est plus pratique\n\nLivereload \n1. A quoi elle sert ? pour rafraichir le navigateur automatiquement (au lieu de faire F5)\n2. Où va-t-on l’utiliser (côté front, côté back, front \u0026 back, terminal…) ? Que en dev- Front \n3. Si elle est facultative ou non pour ce projet, oui mais pour tester et débuger c'est plus pratique","__v":0} diff --git a/users.json b/users.json index 80def41..a888292 100644 --- a/users.json +++ b/users.json @@ -1 +1 @@ -{"_id":{"$oid":"590989d4b395541750ab50a0"},"updatedAt":{"$date":"2017-05-03T07:42:13.448Z"},"createdAt":{"$date":"2017-05-03T07:42:13.448Z"},"salt":"7713a5d3e38c6e0373073be108a657712ea1b5a3cb94b17895b2cf392b8f4238","email":"elsadd@hotmail.fr","name":"elsa","isAdmin":false,"bookmarks":[],"encryptedPassword":"4fae489a7f5dccff7689fd4d501c1568c592b79640b200d6e80ba8f39e68555fa981f2f15de09c6a0d4de9b94ca52a04fd72068e1fefc70cde329b481d31e1fd570de71be8890588eeb8f3faee2758e52443c39dfae8d95ddea254108bf0f24efb7e20cc72c58fdf2f86d79ec8eddcafaba388c97a25e05e7e0d811a3ba6fb414516b2dcdf7cc539f66b73117ef4c5560c861a026bc0ffebf4b5c7ca4d3bdaad4ea71caa8bf868352e7334c65f51ef6d58f6f08c57b3f1c567838257802ae346bb522b54cd0fe2629e39d13638e420d36401c34ff3a4a53a0c87ca2cefc70b6dab72145f4b9652c482e5e81264e05cb46f7c5f2b784450854853b2c62bbeb435","__v":0} +{"_id":{"$oid":"590989d4b395541750ab50a0"},"updatedAt":{"$date":"2017-05-03T20:00:01.004Z"},"createdAt":{"$date":"2017-05-03T07:42:13.448Z"},"salt":"7713a5d3e38c6e0373073be108a657712ea1b5a3cb94b17895b2cf392b8f4238","email":"elsadd@hotmail.fr","name":"elsa","isAdmin":false,"bookmarks":[{"$oid":"5909963341cbd21c20468bc9"},{"$oid":"5909963341cbd21c20468bc9"},{"$oid":"5909963341cbd21c20468bc9"},{"$oid":"5909946c41cbd21c20468bc8"},{"$oid":"5909946c41cbd21c20468bc8"},{"$oid":"5909946c41cbd21c20468bc8"},{"$oid":"5909946c41cbd21c20468bc8"},{"$oid":"5909946c41cbd21c20468bc8"},{"$oid":"5909feacdd2af62e3fe6253d"},{"$oid":"5909946c41cbd21c20468bc8"},{"$oid":"5909946c41cbd21c20468bc8"},{"$oid":"5909946c41cbd21c20468bc8"},{"$oid":"590a1cfb4fa3a545d429d612"},{"$oid":"590a0a4782f7713bdcac8f45"}],"encryptedPassword":"4fae489a7f5dccff7689fd4d501c1568c592b79640b200d6e80ba8f39e68555fa981f2f15de09c6a0d4de9b94ca52a04fd72068e1fefc70cde329b481d31e1fd570de71be8890588eeb8f3faee2758e52443c39dfae8d95ddea254108bf0f24efb7e20cc72c58fdf2f86d79ec8eddcafaba388c97a25e05e7e0d811a3ba6fb414516b2dcdf7cc539f66b73117ef4c5560c861a026bc0ffebf4b5c7ca4d3bdaad4ea71caa8bf868352e7334c65f51ef6d58f6f08c57b3f1c567838257802ae346bb522b54cd0fe2629e39d13638e420d36401c34ff3a4a53a0c87ca2cefc70b6dab72145f4b9652c482e5e81264e05cb46f7c5f2b784450854853b2c62bbeb435","__v":0}