{"version":3,"sources":["commentaires.js"],"names":["undefined","moment","locale","Vue","component","template","props","commentaire","type","Object","required","user","methods","comment_date","dateC","fromNow","comment_edit","console","info","el","data","config","urlWebServices","page","showCommentModule","commentaires","likes","hero","isCommentsLoaded","noComment","isLikesLoaded","hasCommentaires","isIdentified","nom","idUser","isAdmin","liked","userComment","isEdit","editId","localId","webService","params","$","ajax","url","dataType","contentType","promise","dateCommentaire","this","DateMAJ","format","cancelEdit","removeClass","getComments","_this","then","response","jdata","parseJSON","d","dir","Data","_","isEmpty","warn","isLoaded","wsData","User","IsAdmin","IdUser","UserName","Comments","sortBy","reverse","error","autoGet","log","getLikes","Likes","like","findIndex","toggleLike","token","maxBy","o","id","isUndefined","$set","length","$delete","delComment","commentDeletedId","_this2","param","addComment","_this3","edited","idCommentaire","body","Body","JSON","stringify","newComment","NameUserMAJ","IdUserMAJ","jComment","editComment","idComment","indexInStateCommentaire","editedComment","window","scrollTop","offset","top","addClass","computed","nb_commentaires","nbComments","notEmpty","trim","nb_likes","commentLength","beforeMount","SHOWCOMMENTS"],"mappings":"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","sourcesContent":["/**\r\n * Module de commentaires\r\n * @version du 25/01/2019 11:25:37\r\n * @author SD 2018\r\n */\r\n\"use strict\";\r\n\r\nif(moment !== undefined ) {\r\n moment.locale('fr');\r\n}\r\n\r\nVue.component('commentaire-comp', {\r\n template: `\r\n
\r\n
\r\n

Posté par : {{ commentaire.NameUserMAJ }} {{ comment_date(commentaire.DateMAJ) }}

\r\n
{{ commentaire.Body }}
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n `,\r\n props: {\r\n commentaire: {\r\n type: Object,\r\n required: true\r\n },\r\n user: {\r\n type: Object,\r\n required: true\r\n }\r\n },\r\n methods: {\r\n comment_date: function (dateC) {\r\n return moment(dateC, \"DD/MM/YYYY HH:mm:ss\").fromNow();\r\n },\r\n comment_edit: function (id) {\r\n console.info('Edit');\r\n }\r\n }\r\n}); // fin du composant 'comment'\r\n\r\nlet vue = new Vue({\r\n el: \"#module__commentaires\",\r\n\r\n // =========================\r\n //\r\n // state de l'application\r\n //\r\n // =========================\r\n data: {\r\n config: {\r\n urlWebServices: \"/modules/commentaires/wsCommentaires.asmx/\"\r\n },\r\n \r\n \r\n page: {\r\n showCommentModule: false,\r\n commentaires: [],\r\n likes: [],\r\n hero: \"hero\",\r\n \r\n isCommentsLoaded: false, // le chargement des commentaires de départ a-t-il bien eu lieu ?\r\n noComment: true, //\r\n isLikesLoaded: false, // le chargement des likes de départ a-t-il bien eu lieu ?\r\n hasCommentaires: false, // des commentaires à afficher ?\r\n },\r\n \r\n \r\n user: {\r\n isIdentified: false, // l'utilisateur est-il connu ?\r\n nom: null,\r\n idUser: null,\r\n isAdmin: false,\r\n liked: false, // par défaut la personne n'aime pas la page\r\n userComment:\"\", // binding du champs de saisie des commentaire\r\n isEdit: false, // est-on en train d'éditer un commentaire existant ?\r\n editId: null, // id du commentaire existant que l'on édite\r\n localId: null // index local du commentaire édité\r\n }\r\n },\r\n \r\n // ==========================\r\n // méthodes de l'application\r\n // ==========================\r\n methods: {\r\n /**\r\n * @description méthode générique d'appel au webservices\r\n * @param webService\r\n * @param params\r\n * @return {promise}\r\n */\r\n webService: function (webService, params) {\r\n params = params || {};\r\n \r\n return $.ajax({\r\n url: webService,\r\n data: params,\r\n type: 'POST',\r\n dataType: \"json\",\r\n contentType: \"application/json; charset=utf-8\"\r\n }).promise();\r\n }, // fin methode webService\r\n \r\n /**\r\n * @description formatage de la date d'un commentaire\r\n * @param id\r\n * @return string\r\n */\r\n dateCommentaire: function(localId) {\r\n return moment(this.page.commentaires[localId].DateMAJ, \"DD/MM/YYYY HH:mm:ss\").format(\"LLL\");\r\n },\r\n \r\n /**\r\n * @description provoque l'abandon de l'édition d'un commentaire\r\n * @version 0.1\r\n */\r\n cancelEdit: function() {\r\n this.user.userComment = \"\";\r\n this.user.isEdit = false;\r\n $('.commentaire__form').removeClass('hero');\r\n },\r\n \r\n /**\r\n * @description récupération des données utilisateur courant et des commentaires\r\n * @version 0.9\r\n */\r\n getComments: function() {\r\n const _this = this; // utilis si la méthode est appelée depuis un hook\r\n // récupération des commentaires depuis le webservice\r\n \r\n this.webService(_this.config.urlWebServices + 'getComments').then(\r\n (response) => {\r\n console.info(\"WS getComments\");\r\n \r\n let jdata = $.parseJSON(response.d);\r\n \r\n console.dir(jdata);\r\n \r\n if (jdata.Data === null || _.isEmpty(jdata.Data)) {\r\n console.warn(\"Pas de commentaires\");\r\n _this.isLoaded = true;\r\n _this.page.isCommentsLoaded = false;\r\n _this.page.noComment = true;\r\n \r\n } else {\r\n console.info(\"Y'a des commentaires\");\r\n let wsData = $.parseJSON(jdata.Data);\r\n \r\n // binding du user\r\n if(!_.isEmpty(wsData.User)) {\r\n _this.user.isAdmin = wsData.User.IsAdmin;\r\n _this.user.idUser= wsData.User.IdUser;\r\n _this.user.nom = wsData.User.UserName;\r\n _this.user.isIdentified = true;\r\n }\r\n \r\n //binding des commentaires\r\n _this.page.commentaires = wsData.Comments;\r\n _this.page.commentaires = _.sortBy(_this.page.commentaires, 'date').reverse();\r\n _this.page.isCommentsLoaded = true;\r\n _this.page.noComment = false;\r\n } // endif\r\n },\r\n (error) => {\r\n console.error(\"Le Webservice getComment a renvoyé l'erreur suivante : \", error);\r\n }\r\n ); // fin de la récupération du user et des commentaires\r\n },\r\n \r\n autoGet: function() {\r\n console.log(\"Auto GET Comments\");\r\n this.getComments();\r\n },\r\n \r\n /**\r\n * @description récupération des likes par webservice\r\n * @version 0.2\r\n */\r\n getLikes: function() {\r\n let _this = this; // utilis si la méthode est appelée depuis un hook\r\n // récupération des likes\r\n _this.webService(this.config.urlWebServices + 'getLikes').then(\r\n function (response) {\r\n let jdata = $.parseJSON(response.d);\r\n \r\n // console.dir(jdata);\r\n \r\n if (jdata.Data === null || _.isEmpty(jdata.Data)) {\r\n console.info(\"Pas de likes\");\r\n } else {\r\n console.info(\"Y'a des likes\");\r\n let wsData = $.parseJSON(jdata.Data);\r\n _this.page.likes = wsData.Likes;\r\n \r\n let like = _.findIndex(_this.page.likes, ['idUser', _this.user.idUser]); // l'utilisateur a-t-il liké ?\r\n \r\n _this.user.liked = like >= 0 ? true : false;\r\n \r\n _this.page.isLikesLoaded = true;\r\n } // endif\r\n },\r\n function(error) {\r\n console.error(\"Le Webservice getLikes à renvoyé l'erreur suivante : \", error);\r\n }\r\n ); // fin récupération des likes\r\n },\r\n \r\n /**\r\n * @description gestion du bouton like\r\n * @version 1.9\r\n */\r\n toggleLike: function() {\r\n if(this.user.isIdentified) {\r\n console.log(\"Like !!\");\r\n let token = _.maxBy(this.page.likes, (o) => {\r\n return o.id;\r\n });\r\n const // pour calculer le point d'insertion dans le store de l'application\r\n idUser = this.user.idUser,\r\n like = _.findIndex(this.page.likes, ['idUser', idUser]); // l'utilisateur a-t-il liké ?\r\n \r\n if (like === -1) { // la personne aime la page\r\n console.info(\"Like +1\");\r\n token = _.isUndefined(token) ? 0 : token.id;\r\n this.$set(this.page.likes, this.page.likes.length, {id: token + 1, idUser: idUser});\r\n this.user.liked = true;\r\n \r\n this.webService(this.config.urlWebServices + 'toggleLike').then(\r\n (response) => {\r\n console.log(\"Page likée \", response);\r\n },\r\n (error) => {\r\n console.error(\"Le Webservice toggleLike a renvoyé l'erreur suivante : \", error);\r\n }\r\n );\r\n \r\n }\r\n else { // la personne n'aime plus la page\r\n console.info(\"Like -1\");\r\n // debugger;\r\n this.$delete(this.page.likes, like);\r\n this.user.liked = false;\r\n \r\n this.webService(this.config.urlWebServices + 'toggleLike').then(\r\n (response) => {\r\n console.log(\"Page délikée \", response);\r\n },\r\n (error) => {\r\n console.error(\"Le Webservice toggleLike a renvoyé l'erreur suivante : \", error);\r\n }\r\n );\r\n } // endif\r\n }// endif\r\n }, // fin methode toggleLike\r\n \r\n /**\r\n * @description Effacement d'un commentaire\r\n * @param commentDeletedId\r\n * @version 1.1\r\n */\r\n delComment: function (commentDeletedId) {\r\n console.log(\"Effacement commentaire :\", commentDeletedId);\r\n // on retire le commentaire de la collection pour un rendu immédiat\r\n // this.page.commentaires = this.page.commentaires.filter((el) => {\r\n // return el.IdCommentaire !== commentDeletedId;\r\n // });\r\n\r\n //this.$delete(this.commentaires, delC);\r\n \r\n const param = `{idCommentaire: ${commentDeletedId}}`;\r\n // on envois l'effacement du commentaire au serveur\r\n \r\n this.webService(this.config.urlWebServices + 'delComment', param).then(\r\n (response) => {\r\n console.info(\"l'effacement du commentaire s'est bien déroulée.\", response);\r\n // this.page.isCommentsLoaded = false;\r\n this.getComments();\r\n },\r\n (error) => {\r\n console.error(\"Le Webservice delComment à renvoyé l'erreur suivante : \", error);\r\n }\r\n )\r\n }, // fin methode delComment\r\n \r\n /**\r\n * @description récupère l'édition d'un commentaire (nouveau ou commentaire existant)\r\n * @version 1.6\r\n */\r\n addComment: function () {\r\n if (this.user.isEdit) { // edition d'un commentaire existant\r\n const edited = {\r\n idCommentaire: this.user.editId,\r\n body: this.user.userComment\r\n };\r\n \r\n this.page.commentaires[this.user.localId].Body = edited.body;\r\n \r\n const param = JSON.stringify(edited);\r\n \r\n console.log(param);\r\n \r\n this.webService(this.config.urlWebServices + \"updateComment\", param).then(\r\n (response) => {\r\n console.log(\"l'insertion du commentaire s'est bien déroulée\", response);\r\n this.cancelEdit();\r\n },\r\n (error) => {\r\n console.error(\"Le Webservice addComment à renvoyé l'erreur suivante : \", error);\r\n }\r\n );\r\n } else { // insertion d'un nouveau commentaire\r\n const newComment = {\r\n \"NameUserMAJ\": this.user.nom,\r\n \"IdUserMAJ\": this.user.idUser,\r\n \"Body\": this.user.userComment,\r\n \"DateMAJ\": moment().format(\"DD/MM/YYYY HH:mm:ss\")\r\n };\r\n \r\n console.log(newComment);\r\n // this.page.commentaires.unshift(newComment);\r\n this.user.userComment = \"\";\r\n $('.commentaire__form').removeClass('hero');\r\n //this.$set(this.commentaires, 0, newComment)\r\n \r\n const comment = JSON.stringify(newComment.Body);\r\n const jComment = `{body: ${comment}}`;\r\n \r\n this.webService(this.config.urlWebServices + \"addComment\", jComment).then(\r\n (response) => {\r\n console.log(\"l'insertion du commentaire s'est bien déroulée\", response);\r\n this.getComments(); // récupération des commentaires\r\n },\r\n (error) => {\r\n console.error(\"Le Webservice addComment à renvoyé l'erreur suivante : \", error);\r\n }\r\n )\r\n } // endif\r\n }, // fin methode addComment\r\n \r\n /**\r\n * @description travail préparatoire à l'édition d'un commentaire\r\n * @param idComment\r\n * @version 1.2\r\n */\r\n editComment: function (idComment) {\r\n const indexInStateCommentaire = _.findIndex(this.page.commentaires, ['IdCommentaire', idComment]);\r\n const editedComment = this.page.commentaires[indexInStateCommentaire].Body;\r\n \r\n $(window).scrollTop($('#commentaire').offset().top - 50);\r\n $('.commentaire__form').addClass('hero');\r\n \r\n console.log(\"Edition commentaire :\", editedComment);\r\n \r\n this.user.userComment = editedComment;\r\n this.user.isEdit = true;\r\n this.user.editId = idComment;\r\n this.user.localId = indexInStateCommentaire;\r\n } // fin methode editComment\r\n }, // fin des méthodes de l'application\r\n\r\n //=====================\r\n // Valeurs calculées\r\n //=====================\r\n computed: {\r\n /**\r\n * @description compte le nombre de commentaire dans le state\r\n * @return {number}\r\n * @version 0.1\r\n */\r\n nb_commentaires: function() { // calcul le nb de commentaire\r\n const nbComments = this.page.commentaires.length;\r\n \r\n nbComments >= 1 ? this.page.hasCommentaires = true : this.page.hasCommentaires = false;\r\n \r\n return nbComments;\r\n },\r\n \r\n /**\r\n * @description vérifie si le champ de saisi du commentaire est vide\r\n * @return {boolean}\r\n * @version 0.1\r\n */\r\n notEmpty: function() {\r\n return this.user.userComment.trim().length === 0 ? true : false;\r\n },\r\n \r\n /**\r\n * @description compte le nombre de likes\r\n * @return {number}\r\n * @version 0.1\r\n */\r\n nb_likes: function() {\r\n const nbLikes = this.page.likes.length;\r\n \r\n return nbLikes;\r\n },\r\n \r\n /**\r\n * @description calcul la longueur d'un commentaire en cour de saisie\r\n * @return {number}\r\n * @version 0.1\r\n */\r\n commentLength: function() {\r\n return this.user.userComment.length;\r\n }\r\n }, // fin des computed de l'application\r\n \r\n \r\n /**\r\n * @description hook de montage du module commentaire\r\n * @version 1.5\r\n */\r\n beforeMount() {\r\n const self = this; // indispensable sinon this n'a pas la bonne portée\r\n \r\n self.page.showCommentModule = window.SHOWCOMMENTS;\r\n \r\n if(self.page.showCommentModule ) {\r\n self.getComments();\r\n self.getLikes();\r\n } else {\r\n console.info('Les commentaires ne sont pas activés sur cette page')\r\n }\r\n \r\n }, // fin beforemount()\r\n \r\n /**\r\n * @description hook de chargement automatique des commentaires\r\n * @version 0.1\r\n * note: désactivé pour l'instant\r\n */\r\n // mounted() {\r\n // let autoComment;\r\n // const _this = this;\r\n //\r\n // autoComment = window.setTimeout(_this.autoGet(), 5000);\r\n // }\r\n}); // fin de l'application"]}