Commit 134126a8 authored by Jérémie Passerat's avatar Jérémie Passerat

Récupération du contenu d'un fichier ok

parent 65198158
This diff is collapsed.
...@@ -8,18 +8,23 @@ ...@@ -8,18 +8,23 @@
"lint": "vue-cli-service lint" "lint": "vue-cli-service lint"
}, },
"dependencies": { "dependencies": {
"@popperjs/core": "^2.9.2",
"axios": "^0.21.1", "axios": "^0.21.1",
"bootstrap": "^5.0.1",
"bootstrap-vue": "^2.21.2",
"core-js": "^3.6.5", "core-js": "^3.6.5",
"jquery": "^3.6.0", "jquery": "^3.6.0",
"jquery-ui-bundle": "^1.12.1-migrate", "jquery-ui-bundle": "^1.12.1-migrate",
"markdown-it-vue": "^1.1.6", "markdown-it-vue": "^1.1.6",
"mavon-editor": "^2.9.1", "mavon-editor": "^2.9.1",
"popper.js": "^1.16.1",
"showdown": "^1.9.1", "showdown": "^1.9.1",
"vue": "^2.6.11", "vue": "^2.6.11",
"vue-cookie": "^1.1.4", "vue-cookie": "^1.1.4",
"vue-cookies": "^1.7.4", "vue-cookies": "^1.7.4",
"vue-js-modal": "^2.0.0-rc.6", "vue-js-modal": "^2.0.0-rc.6",
"vue-js-popover": "^1.2.1", "vue-js-popover": "^1.2.1",
"vue-showdown": "^3.1.0",
"vue-simplemde": "^2.0.0" "vue-simplemde": "^2.0.0"
}, },
"devDependencies": { "devDependencies": {
......
<template> <template>
<div id="app"> <div id="app">
<Volet_Base @choix_variante="choixVariante" @newContenu="newContenu" v-bind:auteur="auteur" /> <Volet_Base @choix_variante="choixVariante" @newContenu="newContenu" v-bind:auteur="auteur" v-bind:contenuAjoute="contenuAjoute" />
</div> </div>
</template> </template>
...@@ -23,7 +23,7 @@ export default { ...@@ -23,7 +23,7 @@ export default {
} }
}, },
props: ['auteur'] props: ['auteur', 'contenuAjoute']
} }
</script> </script>
......
...@@ -3,14 +3,20 @@ ...@@ -3,14 +3,20 @@
<Login v-show="etat === 'unlogged'" @user_logged="setLogged"></Login> <Login v-show="etat === 'unlogged'" @user_logged="setLogged"></Login>
<Menu v-show="etat !== 'unlogged'" v-bind:auteur="auteur" v-bind:etat="etat" v-bind:variante="variante" @menu_choisi="changerPage"></Menu> <Menu v-show="etat !== 'unlogged'" v-bind:auteur="auteur" v-bind:etat="etat" v-bind:variante="variante" @menu_choisi="changerPage"></Menu>
<Contenu v-show="etat === 'Contenu'" v-bind:auteur="auteur" @choix_variante="choixVariante" @newContenu="newContenu"></Contenu> <Contenu v-show="etat === 'Contenu'" v-bind:auteur="auteur" v-bind:contenuAjoute="contenuAjoute" @choix_variante="choixVariante" @newContenu="newContenu"></Contenu>
<Maj v-show="etat === 'Mises à jour'" v-bind:auteur="auteur" v-bind:isRecu="isRecu" v-bind:isPropose="isPropose" <Maj v-show="etat === 'Mises à jour'" v-bind:auteur="auteur" v-bind:isRecu="isRecu" v-bind:isPropose="isPropose"
v-bind:contenuEnPublication="contenuEnPublication" ></Maj> v-bind:contenuEnPublication="contenuEnPublication" ></Maj>
<Profil v-show="etat === 'Profil'" ></Profil> <Profil v-show="etat === 'Profil'" ></Profil>
<Tags v-show="etat === 'Tags'" ></Tags> <Tags v-show="etat === 'Tags'" ></Tags>
<p style="text-align: center" v-show="errorLogin">Login ou mot de passe erroné</p> <p style="text-align: center" v-show="errorLogin">Login ou mot de passe erroné</p>
<NewContenu v-show="etat === 'newContenu'"></NewContenu> <NewContenu v-show="etat === 'newContenu'" v-bind:auteur="auteur" @contenuAjoute="ajouterUnContenu"></NewContenu>
<!-- <p id="popover-target-1" style="text-align: center">
Hover Me
</p>
<b-popover target="popover-target-1" triggers="click" placement="bottom">
<template #title>Popover Title</template>
<h1>I am</h1> popover <b>component</b> content!
</b-popover>-->
</div> </div>
</template> </template>
...@@ -22,6 +28,7 @@ import Maj from "@/Maj"; ...@@ -22,6 +28,7 @@ import Maj from "@/Maj";
import Profil from "@/Profil"; import Profil from "@/Profil";
import Tags from "@/Tags"; import Tags from "@/Tags";
import NewContenu from "@/NewContenu"; import NewContenu from "@/NewContenu";
// import showdown from "showdown"
export default { export default {
name: "Index.vue", name: "Index.vue",
...@@ -34,7 +41,8 @@ export default { ...@@ -34,7 +41,8 @@ export default {
errorLogin: false, errorLogin: false,
auteur: "", auteur: "",
isRecu: false, isRecu: false,
isPropose: false isPropose: false,
contenuAjoute: false
} }
}, },
methods: { methods: {
...@@ -65,7 +73,11 @@ export default { ...@@ -65,7 +73,11 @@ export default {
}, },
newContenu: function () { newContenu: function () {
this.etat = "newContenu" this.etat = "newContenu"
},
ajouterUnContenu:function () {
this.contenuAjoute = true
} }
}, },
components:{ components:{
NewContenu, NewContenu,
...@@ -80,5 +92,4 @@ export default { ...@@ -80,5 +92,4 @@ export default {
</script> </script>
<style scoped> <style scoped>
</style> </style>
\ No newline at end of file
...@@ -56,7 +56,7 @@ export default { ...@@ -56,7 +56,7 @@ export default {
width : 1000px; width : 1000px;
text-align: center; text-align: center;
align-content: center; align-content: center;
margin: 20% auto 0; margin: 15% auto 0;
} }
input{ input{
...@@ -65,7 +65,7 @@ input{ ...@@ -65,7 +65,7 @@ input{
} }
button { button {
height: 20px; height: auto;
width: auto; width: auto;
text-align: center; text-align: center;
} }
......
<template> <template>
<div> <div>
<p></p>
<p>Création de contenu</p> <p>Création de contenu</p>
<p>Dans cette zone vous pouvez renseigner (en langage markdown) le contenu que vous désirez</p> <p>Dans cette zone vous pouvez renseigner (en langage markdown) le contenu que vous désirez</p>
<!-- <div class="markdown"> <!-- <div class="markdown">
<textarea rows="50" cols="150"/> <textarea rows="50" cols="150"/>
</div>--> </div>-->
<!-- <vue-simplemde id="markdownEditor" v-model="contenuSaisi"/>--> <!-- <vue-simplemde id="markdownEditor" v-model="contenuSaisi"/>-->
<div class="mavonEditor"> <div class="mavonEditor">
<mavon-editor :language="'fr'" style="min-height: 700px" v-model="contenuSaisi"/> <mavon-editor :language="'fr'" style="min-height: 700px" v-model="contenuSaisi"/>
</div> </div>
<div class="markdown"> <div class="markdown">
<br> <br>
<button v-on:click="ajouterContenu">créer</button><br><br> <button v-on:click="ajouterContenu">créer</button><br><br>
<button>revenir en arrière</button> <button>revenir en arrière</button>
</div> </div>
...@@ -23,10 +24,11 @@ ...@@ -23,10 +24,11 @@
<script> <script>
// import VueSimplemde from 'vue-simplemde' // import VueSimplemde from 'vue-simplemde'
import Service from "@/service/Service";
export default { export default {
name: "NewContenu", name: "NewContenu",
props: ['auteur'],
data() { data() {
return { return {
contenuSaisi: '', contenuSaisi: '',
...@@ -38,7 +40,14 @@ export default { ...@@ -38,7 +40,14 @@ export default {
}, },
methods: { methods: {
ajouterContenu: function () { ajouterContenu: function () {
alert("contenu : " + this.contenuSaisi )
let data = {auteur: this.auteur, contenu_a_ecrire: this.contenuSaisi}
let that = this
Service.creerContenuPerso(data).then(
function () {
that.$emit("contenuAjoute")
}
)
} }
} }
} }
...@@ -72,4 +81,4 @@ button { ...@@ -72,4 +81,4 @@ button {
height: 250%; height: 250%;
} }
</style> </style>
\ No newline at end of file \ No newline at end of file
...@@ -11,7 +11,9 @@ ...@@ -11,7 +11,9 @@
<button v-else v-show="contenuCliqueProvenance === 'en-cours' && contenuClique.etat !== 'refuse'" v-on:click="actionContenu('validerModification')">valider la modification</button> <button v-else v-show="contenuCliqueProvenance === 'en-cours' && contenuClique.etat !== 'refuse'" v-on:click="actionContenu('validerModification')">valider la modification</button>
<button v-show="contenuCliqueProvenance === 'banque' && contenuClique.etat !== 'refuse'" v-on:click="actionContenu('mettreFavori')">mettre le contenu en tiers</button> <button v-show="contenuCliqueProvenance === 'banque' && contenuClique.etat !== 'refuse'" v-on:click="actionContenu('mettreFavori')">mettre le contenu en tiers</button>
<br> <br>
<span contenteditable="false" v-html="formatterMarkdown()">
</span>
<br>
</div> </div>
<button id="ren" v-on:click="revenirArriere">Retour en arrière</button> <button id="ren" v-on:click="revenirArriere">Retour en arrière</button>
...@@ -20,17 +22,40 @@ ...@@ -20,17 +22,40 @@
</template> </template>
<script> <script>
import Service from "@/service/Service";
export default { export default {
name: "Consulter_Contenu", name: "Consulter_Contenu",
props: ['contenuClique', 'contenuCliqueProvenance', 'auteur'], props: ['contenuClique', 'contenuCliqueProvenance', 'auteur'],
methods: { methods: {
formatterMarkdown: function () {
let showdown = require('showdown'),
converter = new showdown.Converter()
return converter.makeHtml(this.contenu)
},
actionContenu: function (action) { actionContenu: function (action) {
this.$emit("actionContenu", {action: action, contenu: this.contenuClique}) this.$emit("actionContenu", {action: action, contenu: this.contenuClique})
}, },
revenirArriere: function () { revenirArriere: function () {
this.$emit("retour_arriere", {panierChoisi: this.contenuCliqueProvenance !== 'banque'}) this.$emit("retour_arriere", {panierChoisi: this.contenuCliqueProvenance !== 'banque'})
} }
} },
data: function () {
return {
contenu: ''
}
},
watch: {
contenuClique: function () {
let that = this
Service.recupererTexteContenu(JSON.stringify(this.contenuClique._id)).then(
function (response) {
that.contenu = response.data
// alert(response.data)
}
)
}
},
} }
</script> </script>
...@@ -46,6 +71,7 @@ div{ ...@@ -46,6 +71,7 @@ div{
#actionsContenu>button { #actionsContenu>button {
width: auto; width: auto;
height: auto;
margin-left: 45%; margin-left: 45%;
margin-right: 45%; margin-right: 45%;
...@@ -53,6 +79,7 @@ div{ ...@@ -53,6 +79,7 @@ div{
#ren { #ren {
width: auto; width: auto;
height: auto;
} }
......
<template>
<div >
<p id="modifTitre"> Modification du contenu </p>
<div class="mavonEditor">
<mavon-editor :language="'fr'" style="min-height: 700px" v-model="contenu"/>
</div>
<div class="markdown">
<br>
<button id="validerModif" v-on:click="validerUneModif">modifier </button>
<button> revenir en arrière</button>
</div>
</div>
</template>
<script>
import Service from "@/service/Service";
export default {
name: "Modifier_Contenu",
props: ['contenuClique', 'auteur', 'contenuCliqueProvenance'],
data: function () {
return {
contenu: ''
}
},
methods: {
validerUneModif: function (message) {
// Modification du contenu en cours (au niveau de l'intérieur du fichier)
}
},
watch: {
contenuClique: function () {
let that = this
Service.recupererTexteContenu(JSON.stringify(this.contenuClique._id)).then(
function (response) {
that.contenu = response.data
// alert(response.data)
}
)
}
},
}
/* this.panierChoisi = true
if (this.contenuCliqueProvenance !== 'en-cours'){
data = {auteur: this.auteur, id_contenu: JSON.stringify(event.contenu._id), version: event.contenu.versionEnCours["numero"]}
Service.creerEnCours(data).then(
function () {
that.contenusDuPanier()
}
)
}*/
</script>
<style scoped>
div {
text-align: center;
}
button {
height: auto;
width: auto;
}
#validerModif {
margin-right: 5px;
margin-bottom: 5px;
}
#modifTitre{
margin-top: -35px;
}
</style>
\ No newline at end of file
This diff is collapsed.
...@@ -3,10 +3,16 @@ import Index from '@/Index' ...@@ -3,10 +3,16 @@ import Index from '@/Index'
import VPopover from 'vue-js-popover' import VPopover from 'vue-js-popover'
import mavonEditor from 'mavon-editor'; import mavonEditor from 'mavon-editor';
import 'mavon-editor/dist/css/index.css'; import 'mavon-editor/dist/css/index.css';
import BootstrapVue from "bootstrap-vue"
import 'bootstrap/dist/css/bootstrap.css'
import 'bootstrap-vue/dist/bootstrap-vue.css'
//import Index from '@/Index' //import Index from '@/Index'
Vue.config.productionTip = false Vue.config.productionTip = false
Vue.use(VPopover, { tooltip: true }) Vue.use(VPopover, { tooltip: true })
Vue.use(mavonEditor) Vue.use(mavonEditor)
Vue.use(BootstrapVue)
new Vue({ new Vue({
render: h => h(Index), render: h => h(Index),
......
...@@ -11,89 +11,95 @@ export default { ...@@ -11,89 +11,95 @@ export default {
axios.get(urlBase + "checkUser?login=" + login + "&password=" + motDePasse).then(function (response) { axios.get(urlBase + "checkUser?login=" + login + "&password=" + motDePasse).then(function (response) {
reponse = response.data reponse = response.data
})*/ })*/
return axios.get(urlBase + "checkUser?login=" + login + "&password=" + motDePasse) return axios.get(urlBase + "checkUser?login=" + login + "&password=" + motDePasse)
}, },
getPanierAuteur(auteur){ getPanierAuteur(auteur) {
return axios.get(urlBase + "getContenuPanier/" + auteur + "?perso=True&tiers=True&enCours=true") return axios.get(urlBase + "getContenuPanier/" + auteur + "?perso=True&tiers=True&enCours=true")
}, },
getBanqueAuteur(auteur){ getBanqueAuteur(auteur) {
return axios.get(urlBase + "getContenuBanque/" + auteur) return axios.get(urlBase + "getContenuBanque/" + auteur)
}, },
getContenuById(idContenu){ getContenuById(idContenu) {
return axios.get(urlBase + "getContenu/" + idContenu) return axios.get(urlBase + "getContenu/" + idContenu)
}, },
creerContenuTiers(data){ creerContenuTiers(data) {
return axios.patch(urlBase + "ajouterTiers", data) return axios.patch(urlBase + "ajouterTiers", data)
}, },
creerContenuPerso(data){ creerContenuPerso(data) {
return axios.post(urlBase + "addContenu", data) return axios.post(urlBase + "addContenu", data)
}, },
creerEnCours(data){ creerEnCours(data) {
return axios.post(urlBase + "newEnCours", data) return axios.post(urlBase + "newEnCours", data)
}, },
creerEnCoursRefuse(data){ creerEnCoursRefuse(data) {
return axios.post(urlBase + "newEnCoursRefuse", data) return axios.post(urlBase + "newEnCoursRefuse", data)
}, },
supprimerEnCours(idContenu){ supprimerEnCours(idContenu) {
return axios.delete(urlBase + "supprimerEnCours/" + idContenu) return axios.delete(urlBase + "supprimerEnCours/" + idContenu)
}, },
supprimerEnCoursParLid(idEnCours){ supprimerEnCoursParLid(idEnCours) {
return axios.delete(urlBase + "supprimerEnCoursParId/" + idEnCours) return axios.delete(urlBase + "supprimerEnCoursParId/" + idEnCours)
}, },
supprimerContenu(idContenu){ supprimerContenu(idContenu) {
return axios.delete(urlBase + "deletePerso/" + idContenu) return axios.delete(urlBase + "deletePerso/" + idContenu)
}, },
supprimerTiers(auteur, id_tiers){ supprimerTiers(auteur, id_tiers) {
return axios.delete(urlBase + "deleteTiers?auteur=" + auteur + "&id_tiers=" + id_tiers) return axios.delete(urlBase + "deleteTiers?auteur=" + auteur + "&id_tiers=" + id_tiers)
}, },
majContenu(data){ majContenu(data) {
return axios.patch(urlBase + "majContenu", data) return axios.patch(urlBase + "majContenu", data)
}, },
// bonus : fonction de récupération des tags pour getPanier et getBanque // bonus : fonction de récupération des tags pour getPanier et getBanque
getPublicationsRecues(auteur){ getPublicationsRecues(auteur) {
return axios.get(urlBase + "demandePublication/" + auteur + "/False") return axios.get(urlBase + "demandePublication/" + auteur + "/False")
}, },
getPublicationsProposees(auteur){ getPublicationsProposees(auteur) {
return axios.get(urlBase + "demandePublication/" + auteur + "/True") return axios.get(urlBase + "demandePublication/" + auteur + "/True")
}, },
creerDemandePublication(data) { creerDemandePublication(data) {
return axios.post(urlBase + "demandePublication" , data) return axios.post(urlBase + "demandePublication", data)
}, },
supprimerDemandePublication(idDemandePublication){ supprimerDemandePublication(idDemandePublication) {
return axios.delete(urlBase + "demandePublication/" + idDemandePublication) return axios.delete(urlBase + "demandePublication/" + idDemandePublication)
}, },
creerNouveauContenu(data){ creerNouveauContenu(data) {
return axios.post(urlBase + "newContenu", data) return axios.post(urlBase + "newContenu", data)
}, },
gererDemandePublication(data){ gererDemandePublication(data) {
return axios.patch(urlBase + "gererDemandePub", data) return axios.patch(urlBase + "gererDemandePub", data)
}, },
isMajTiersDisponible(auteur){ isMajTiersDisponible(auteur) {
return axios.get(urlBase + "isMajTiersDisponible/" + auteur ) return axios.get(urlBase + "isMajTiersDisponible/" + auteur)
}, },
listeMajTiers(auteur){ listeMajTiers(auteur) {
return axios.get(urlBase + "listeMajTiers/" + auteur ) return axios.get(urlBase + "listeMajTiers/" + auteur)
}, },
gererMajTiers(data) { gererMajTiers(data) {
return axios.patch(urlBase + "gererMajTiers", data) return axios.patch(urlBase + "gererMajTiers", data)
},
modifierContenuBasique(data) {
return axios.patch(urlBase + "modifierContenuBasique", data)
},
recupererTexteContenu(idContenu){
return axios.get(urlBase + "getTexteContenu/" + idContenu)
} }
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment