Commit 4ce8a456 authored by Jérémie Passerat's avatar Jérémie Passerat

Début des recherches sur les majs de tiers

parent 709e7ead
<template> <template>
<div id="app"> <div id="app">
<Volet_Base @choix_variante="choixVariante" v-bind:auteur="auteur" @publication="publication"/> <Volet_Base @choix_variante="choixVariante" v-bind:auteur="auteur" />
</div> </div>
</template> </template>
...@@ -17,9 +17,6 @@ export default { ...@@ -17,9 +17,6 @@ export default {
this.$emit("choix_variante", {variante: event.variante}) this.$emit("choix_variante", {variante: event.variante})
},
publication: function (event) {
this.$emit("publication", {document: event.document})
} }
}, },
props: ['auteur'] props: ['auteur']
......
...@@ -2,9 +2,10 @@ ...@@ -2,9 +2,10 @@
<div> <div>
<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:isNotif="isNotif" 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" @publication="publication"></Contenu> <Contenu v-show="etat === 'Contenu'" v-bind:auteur="auteur" @choix_variante="choixVariante"></Contenu>
<Maj v-show="etat === 'Mises à jour'" v-bind:auteur="auteur" v-bind:contenuEnPublication="contenuEnPublication" ></Maj> <Maj v-show="etat === 'Mises à jour'" v-bind:auteur="auteur" v-bind:isRecu="isRecu" v-bind:isPropose="isPropose"
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>
...@@ -29,7 +30,9 @@ export default { ...@@ -29,7 +30,9 @@ export default {
contenuEnPublication: "", contenuEnPublication: "",
isNotif: false, isNotif: false,
errorLogin: false, errorLogin: false,
auteur: "" auteur: "",
isRecu: false,
isPropose: false
} }
}, },
methods: { methods: {
...@@ -49,14 +52,14 @@ export default { ...@@ -49,14 +52,14 @@ export default {
this.etat = "unlogged" this.etat = "unlogged"
else else
this.etat = event.choix this.etat = event.choix
if (event.choix === "Mises à jour"){
this.isRecu = event.isRecu
this.isPropose = event.isPropose
}
}, },
choixVariante: function (event) { choixVariante: function (event) {
this.variante = event.variante this.variante = event.variante
},
publication: function (event) {
this.contenuEnPublication = event.document
this.isNotif = true
} }
}, },
components:{ components:{
......
<template> <template>
<div id="loginForm"> <div id="loginForm" v-on:keyup="keymonitor">
<p>Deux comptes temporaires : Charles, Jacques</p> <p>Deux comptes temporaires : Charles, Jacques</p>
<label for="identifiant">Identifiant</label> <label for="identifiant">Identifiant</label>
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
<br> <br>
<br> <br>
<button @click.prevent="logIn">Connexion</button> <button @click.prevent="logIn" >Connexion</button>
</div> </div>
</template> </template>
...@@ -35,6 +35,11 @@ export default { ...@@ -35,6 +35,11 @@ export default {
that.$emit("user_logged", {"isLogged" : false}) that.$emit("user_logged", {"isLogged" : false})
} }
}) })
},
keymonitor: function(event) {
if (event.key === "Enter") {
this.logIn()
}
} }
}, },
data: function () { data: function () {
......
<template> <template>
<div> <div>
<span class="niveau" id="recues" v-on:click="naviguer">Maj Recues</span><br> <span v-bind:class="['niveau', {'niveau-down' : isRecu}]" id="recues" v-on:click="naviguer">Maj Recues</span><br>
<div id="detailRecues" class="masque"> <div id="detailRecues" class="masque" v-bind:class="{'affiche' : isRecu}">
<table> <table>
<thead> <thead>
<tr> <tr>
...@@ -15,12 +15,10 @@ ...@@ -15,12 +15,10 @@
<th>Date Version actuelle</th> <th>Date Version actuelle</th>
<th>Accepter</th> <th>Accepter</th>
<th>Refuser</th> <th>Refuser</th>
</tr> </tr>
<tbody> <tbody>
<!-- <tr v-show="!panierChoisi" v-for="item in contenusbanque" :key="item.titre"> <!-- <tr v-show="!panierChoisi" v-for="item in contenusbanque" :key="item.titre">
<td class="modal titreContenu" v-on:click="chargerContenu(item, 'banque')" v-popover:tooltip="'prévisualisation'">{{ item._id }}</td> <td class="modal titreContenu" v-on:click="chargerContenu(item, 'banque')" v-popover:tooltip="'prévisualisation'">{{ item._id }}</td>
<td>{{ item.auteur }}</td> <td>{{ item.auteur }}</td>
<td>The table body</td> <td>The table body</td>
...@@ -33,20 +31,20 @@ ...@@ -33,20 +31,20 @@
</tr>--> </tr>-->
<tr v-for="item in contenusRecu" :key="item._id"> <tr v-for="(item, index) in contenusRecu" :key="index">
<td>Contenu1</td> <td>Contenu1</td>
<td>{{ item.auteurDemande }}</td> <td>{{ item.auteurDemande }}</td>
<td>1</td> <td>1</td>
<td>01/06/2021</td> <td>01/06/2021</td>
<td id="valider"><img v-bind:src="imageCoche" alt='' height=20 width=20></td> <td id="valider" v-on:click="gererPublication(item, 'o')"><img v-bind:src="imageCoche" alt='' height=20 width=20></td>
<td id="refuser"><img v-bind:src="imageCroix" alt='' height=20 width=20></td> <td id="refuser" v-on:click="gererPublication(item, 'n')"><img v-bind:src="imageCroix" alt='' height=20 width=20></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div> </div>
<span class="niveau" id="proposees" v-on:click="naviguer">Maj Proposées</span> <span class="niveau" id="proposees" v-bind:class="{'niveau-down' : isPropose}" v-on:click="naviguer">Maj Proposées</span>
<div id="detailProposees" class="masque"> <div id="detailProposees" class="masque" v-bind:class="{'affiche' : isPropose}">
<table> <table>
<thead> <thead>
<tr> <tr>
...@@ -67,15 +65,15 @@ ...@@ -67,15 +65,15 @@
</tr> </tr>
<tbody> <tbody>
<tr v-for="item in contenusPropose" :key="item._id"> <tr v-for="(item, index) in contenusPropose" :key="index">
<td>Contenu1</td> <td>Contenu1</td>
<td>{{ item.auteurContenu }}</td> <td>{{ item.auteurContenu }}</td>
<td>1</td> <td>1</td>
<td>01/06/2021</td> <td>01/06/2021</td>
<td>{{ item.etat }}</td> <td>{{ item.etat }}</td>
<td v-on:click="conserver"><img v-bind:src="imageCoche" alt='' height=20 width=20></td> <td v-if="item.etat === 'enCours'" v-on:click="conserver(item)"><img v-bind:src="imageCoche" alt='' height=20 width=20></td>
<td v-on:click="creerNouveau"><img v-bind:src="imgNouveau" alt='' height=20 width=20></td> <td v-if="item.etat === 'enCours'" v-on:click="creerNouveau(item)"><img v-bind:src="imgNouveau" alt='' height=20 width=20></td>
<td v-on:click="supprimer"><img v-bind:src="imgPoubelle" alt='' height=20 width=20></td> <td v-if="item.etat === 'enCours'" v-on:click="supprimer(item)"><img v-bind:src="imgPoubelle" alt='' height=20 width=20></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
...@@ -88,21 +86,66 @@ import Service from "@/service/Service"; ...@@ -88,21 +86,66 @@ import Service from "@/service/Service";
export default { export default {
name: "Maj", name: "Maj",
props: ['contenuEnPublication', 'auteur'], props: ['contenuEnPublication', 'auteur', 'isRecu', 'isPropose'],
methods: { methods: {
naviguer: function (e) { naviguer: function (e) {
alert("recu " + this.isRecu)
e.target.classList.toggle("niveau-down") e.target.classList.toggle("niveau-down")
//alert(e.target.id) //alert(e.target.id)
document.getElementById("detail" + e.target.id[0].toUpperCase() + e.target.id.substring(1)).classList.toggle('affiche') document.getElementById("detail" + e.target.id[0].toUpperCase() + e.target.id.substring(1)).classList.toggle('affiche')
}, },
conserver: function () { conserver: function (item) {
alert("conserver") let that = this
let data = {auteur: this.auteur, id_contenu: JSON.stringify(item.idContenu), version: item.version_en_cours.toString()}
Service.creerEnCoursRefuse(data).then( function () {
that.publicationsProposees()
}
)
},
creerNouveau: function(item) {
let that = this
let data = {id_demande_pub : JSON.stringify(item._id), auteur: this.auteur}
Service.creerNouveauContenu(data).then(
function () {
that.publicationsProposees()
}
)
},
supprimer: function (item) {
let that = this
Service.supprimerDemandePublication(JSON.stringify(item._id)).then(function () {
that.publicationsProposees()
})
}, },
creerNouveau: function() { gererPublication: function (item, reponse) {
alert("creerNouveau") let that = this
const data = {id_publication: JSON.stringify(item._id), reponse: reponse, auteur: item.auteurDemande}
this.contenusRecu = []
Service.gererDemandePublication(data).then(function () {
that.publicationsRecues()
})
},
publicationsRecues: function () {
let that = this
// Dès que l'auteur est connu, on charge tous ses contenus
Service.getPublicationsRecues(this.auteur).then(function (response) {
let reception = response.data
for (let i = 0; i < reception.length; i++) {
if (reception[i].etat === "enCours") {
that.contenusRecu.push(reception[i])
}
}
})
}, },
supprimer: function () { publicationsProposees: function () {
alert("supprimer") let that = this
// Dès que l'auteur est connu, on charge tous ses contenus
Service.getPublicationsProposees(this.auteur).then(function (response) {
that.contenusPropose = response.data
})
} }
}, },
data: function () { data: function () {
...@@ -112,22 +155,15 @@ export default { ...@@ -112,22 +155,15 @@ export default {
imgPoubelle: "data:image/png;base64,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", imgPoubelle: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOEAAADhCAMAAAAJbSJIAAAAflBMVEX///8AAACampq4uLh5eXlcXFxlZWXr6+vFxcVFRUWurq6ioqL39/doaGju7u7Z2dmIiIjX19eoqKicnJxZWVlvb28qKirDw8Pl5eU6Ojq5ublAQEDOzs7f398dHR1OTk4xMTGRkZERERGLi4sbGxt+fn4kJCQLCwt0dHRSUlJ5VCwrAAAIRUlEQVR4nO2d6VYbSwyEHbyBMWbHEBKwCev7v+C9jruOMyqpx2YZKTn6fiLj6WJ60TZDr5ckSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkyd9PfzjajWHfe8g7svdtV/a8h7wjqTAVxicVpsL4QGF/Nq4z6//lCvdbP7mfCoOSCjekwqikwg2pMCqpcEMqjMq/r/CwjPtH6yd/lE8edjCq7RlcDFu4KeM+aPvg8KB88qbtgxeDDhXefvPgtkOFB+3D+QIOUmEqTIWpMBWmwlSYCj+Vm/bhfAE3HSqc9z2Yd6gwSZIkSbbm+HLQBZfHbgp/tPshn0J7SvKr+NmRwp9uCqcdKZy6Kew9dCLwwU9gb9GJwoWjwjcezu1osDeZzPe123s0OVsxOVJsD/vzyWRvMFLS6ReOCp94ONgVtNt7XmznlRul7F5PnevacMjDQTntXlGBAprW9HZfbPts8qxKTXg4CFNHOyocFdt3Nk0clAHlD46G9MGOClE667Opvcr6dSiLBlNKWaJVhSfFpkx8vwNfPfIx0uWOCpfFdsImxwO/1+PhXBaLci+qCnHvL9nkoGvDHQ0Hh5eynqoKsX4vyHLnoGsDnwlI22pxR00h4gdONt8r1+0O3jGRttXijppCbCecbO6yQYFZ0niuiuV6R4XXxXZFlqVy3e7g/eSx7HzvVDh7JItvo43igYzLUBXXu6LwYbY2jdn03UUZOOUBlQU15elWU3hVbr2yfP2yNCtmPKDTYlLCoIpCdAMpf7KZg64NFYVK7FhR+FZM4RQqcxF+Mh/dNYVwFOZkuXJ12rQjH7GOEshXFB4VE8djvge+pgMylOCiovDJNB0pV+0SdmoqwUVFoR1a+Lo0mo7XYjnbSeFZMb2a2r3gEAKziveMmkIkP3jWez/FziHE0LTUFCK0GJoWL45pRJXwaQuFHDz5ujSag70o5xdrryksOqacZr1Wr9sd02c5IvjQSnBRUYjQgvz1Z+cDX4tYi0IlS1VRWHSwF9hlI5QOOzUlfFIKU7ZClJc4ePJ2abTtHQuH5m9F4XOx8NT2dmk0JwTbIs9fWyHmIm/Avxw0NWFXGTE5z19bIeYi5ww8ixZr2HWBA2Y75bZ7za6ef0Mizyvo4PlrKzwxLd4ujbY3YOVwHdRWiNrpL7J4H/g9pXSB+8Er1FaI1cZBpYMiCY0Ja4rDDlshAgheuw6KJJSpwb7Ie5CtEPsJ7b9XyhW7hjJOi2Kw9yB7PyHH27MPA5hLh/cgWyH2EzJ49mEALl0UA7vetkIEEGSI8HQwb5mw7KDQ/BV/l0brx0BwsbtCDi08+zAA11KQd6BCmanwsRg4L+DZhwF4ueHvTsGFqRB1GZ4PDoIYGhWCCzpHTIXIz3Fo4aCHoSMfuwNld02FyGvTrhXhwFduFcKn5dYKkdem4CnCga8c+RgvCTEVwkB/kwgHvhLxoHJBvoCpEOc6zWv/HMYKEoKpRavKVIiVSxM+gkujbIDm3m8qxPlCtX/fPgxARz5Sg3R+mwrhI1ACMsKBr7haL5bBVAg/78Uy+MKZeMtgKkS7BX2Tbx8G4HqRVbkwFVpVi4V7WWYNpR7QFiW7Ty2Fd1ZD1Jt6ve6htnw0DUnX21KInD61C42Uq3lA/RjY/GVblKUQt4qOF+8+DEDLymo7sBSazQ1R3uFGiVFkP6UTZil8bfsibyhtiBy99MkthfCvqQ7gX7RYQxuE1RZlKTQborz7MAAlRq1nLiyF5rMWAcoyv5nKlBOSEnJdWQrhX8t2occgBz7nMVC5kAvUUojlJl2HGDmMFbKRCW1RMriwFB63fI8/8txbGF6YpRBennRw/fswgMxj3BltUZZCNERJPzZGDmMFpSuMZy4MheazFhGKFmsoj2E8c2EoNJ+1iJHDWEFOjfGYlqHQfBgsikujTC+ET2JzNBRiyyTfKEYO4zdyaAguRPhkKETwRKGFgxILOTSjLcpQaDZEOSixkE6N8cyFodB61iKOS8MOpRFcGAqt0GKoXMkLOTajWmYoxLEnsyEnypW8kKErwiexdxgKsS/J4OlcuZIX0qlBbUaklgyF1tNucVwaTpKhNiNcAUMhDnZZl4nQhwGki/2s+2GGQvh4si4TJcJfQfn7olA4O4bCcf1LQmAObiuFbV8SApm/14tJdYWyLuP/LMmfyCMfwUUzQNQV4mkSGVpEOvA5u633i+oKF+WnMgZ7pat4Ip0apOOb2TNdIUILmXuM5NJw7hfBRdNN0RXCAZKhRYw+DCBDOzhczXurK8S9kq6f/7MkfyIzowgXmvdWV4h7tRTfEaVosUY6NQj5mjNPV4gZLStVkVya/50XkTfUKxe6QuxK4sR5CJSl6XG6Gq53c33qCrHehOMdpQ8DiKIK3s/VTJ/pCpGYExlv/4dHm0inpvy4uT51hcazFrFcGs5AlB83vWldofGsRZQ+DCDzZPj5FgrVj8bpwwCydKE+c1FVKBPncYoWa2QeA9tHI5OqKkRWVOb0I+UwVljja1QuVIWoWlh/oyhYc6zR86YqtF4+G+vA79E+AUel4YqpCuHgyeDJQUMdcV7DnW4EF6pC4+Wzvu/01BA+F0rwy1aFCENEM0CX/7ByO0QhTQ1r1fd568FyoD4MsGwO8KI3m41P5/3GuJez8YpZ47OX/fnpeDaTOX3vF2AxonTxwm82qfMs+vQjFS3WKO/5/BDRXJrP/38lcfowgPIWzA8R40mLBp+s0FuOwr+v8HP/J2Kssswa7R+PvJ94B776yv8PEKtosUZ7Sff7iZbDWKH8v5IPEM+l+ewjP96Br79m/v3EKlokSZIkSZIkX81/MjFrMKxwu60AAAAASUVORK5CYII=",
imgNouveau: "https://png.pngtree.com/png-vector/20190129/ourmid/pngtree-vector-new-icon-png-image_423422.jpg", imgNouveau: "https://png.pngtree.com/png-vector/20190129/ourmid/pngtree-vector-new-icon-png-image_423422.jpg",
contenusRecu: [], contenusRecu: [],
contenusPropose: [] contenusPropose: [],
action: false
} }
}, },
watch: { watch: {
auteur: function () { auteur: function () {
let that = this this.publicationsRecues()
// Dès que l'auteur est connu, on charge tous ses contenus this.publicationsProposees()
Service.getPublicationsRecues(this.auteur).then(function (response) {
that.contenusRecu = response.data
})
Service.getPublicationsProposees(this.auteur).then(function (response) {
that.contenusPropose = response.data
})
} }
}, },
} }
......
...@@ -11,36 +11,80 @@ ...@@ -11,36 +11,80 @@
<div v-if="etat !== 'Mises à jour'" class="sous_menu" v-on:click="choixMenuAnnexe">Mises à jour</div> <div v-if="etat !== 'Mises à jour'" class="sous_menu" v-on:click="choixMenuAnnexe">Mises à jour</div>
<div v-else class="sous_menu" v-on:click="choixMenuAnnexe">Contenu</div> <div v-else class="sous_menu" v-on:click="choixMenuAnnexe">Contenu</div>
<div class="sous_menu" v-on:click="choixMenuAnnexe">Tags</div> <div class="sous_menu" v-on:click="choixMenuAnnexe">Tags</div>
<div class="sous_menu" v-on:click="evaluations">Evaluations</div>
<div class="sous_menu" v-on:click="choixMenuAnnexe">Deconnexion</div> <div class="sous_menu" v-on:click="choixMenuAnnexe">Deconnexion</div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import Choix_Mode_Variante from "@/components/Choix_Mode_Variante"; import Choix_Mode_Variante from "@/components/Choix_Mode_Variante";
import Service from "@/service/Service";
export default { export default {
name: "Menu", name: "Menu",
data: function () { data: function () {
return { return {
isAffiche: false, isAffiche: false,
isNotif: false,
isRecu: false,
isPropose: false
} }
}, },
props: ['etat', 'variante', 'isNotif', 'auteur'], props: ['etat', 'variante', 'auteur'],
methods: { methods: {
choixMenuAnnexe: function (e) { choixMenuAnnexe: function (e) {
this.$emit("menu_choisi", {choix: e.target.innerText}) this.$emit("menu_choisi", {choix: e.target.innerText})
this.isAffiche = ! this.isAffiche this.isAffiche = false
},
evaluations: function () {
alert("Gestion des évaluations (a venir)")
},
choixIconeNotification: function () {
this.$emit("menu_choisi", {choix: "Mises à jour", isRecu: this.isRecu, isPropose: this.isPropose})
this.isAffiche = false
}, },
choixIconeNotification: function(){ publicationsRecues: function () {
this.$emit("menu_choisi", {choix: "Mises à jour"}) let that = this
this.isAffiche = ! this.isAffiche Service.getPublicationsRecues(this.auteur).then(function (response) {
let contenusRecu = response.data
for (let i = 0; i < contenusRecu.length; i++) {
if (contenusRecu[i].etat === "enCours") {
that.isNotif = contenusRecu.length !== 0
that.isRecu = that.isNotif
}
} }
})
}, },
components:{ publicationsProposees: function () {
Choix_Mode_Variante let that = this
Service.getPublicationsProposees(this.auteur).then(function (response) {
let contenusPropose = response.data
for (let i = 0; i < contenusPropose.length; i++) {
if (contenusPropose[i].etat !== "enCours") {
that.isNotif = true
that.isPropose = that.isNotif
} }
}
})
},
majTiers: function () {
Service.isMajTiersDisponible(this.auteur).then(function (response) {
alert("Tiens, j'ai envie d'aller jorder un bon coup moua (aaaaaaaaaaaaaaaahhhhhhh) : " + response.data)
})
}
},
components: {
Choix_Mode_Variante
},
watch: {
auteur: function () {
this.publicationsRecues()
this.publicationsProposees()
this.majTiers()
}
}
} }
</script> </script>
...@@ -49,7 +93,7 @@ export default { ...@@ -49,7 +93,7 @@ export default {
#menuHaut{ #menuHaut{
display: flex; display: flex;
} }
.circle { .circle {
background: gold; background: gold;
border: 1px solid yellow; border: 1px solid yellow;
margin-top: 1%; margin-top: 1%;
...@@ -59,17 +103,17 @@ export default { ...@@ -59,17 +103,17 @@ export default {
justify-content: center; justify-content: center;
height: 75px; height: 75px;
width: 75px; width: 75px;
} }
.menuVariante{ .menuVariante{
margin-top: 1%; margin-top: 1%;
margin-left: 45%; margin-left: 45%;
z-index: 1; z-index: 1;
} }
.menu{ .menu{
height: 150px; height: 200px;
width: 100px; width: 100px;
background: white; background: white;
border: thin solid black; border: thin solid black;
...@@ -82,9 +126,9 @@ export default { ...@@ -82,9 +126,9 @@ export default {
vertical-align: middle; vertical-align: middle;
z-index: 1; z-index: 1;
} }
.notif { .notif {
border: thin solid black; border: thin solid black;
border-radius: 30%; border-radius: 30%;
height: 30px; height: 30px;
...@@ -95,12 +139,12 @@ export default { ...@@ -95,12 +139,12 @@ export default {
background-image: url(assets/img/cloche.png); background-image: url(assets/img/cloche.png);
background-size: cover; background-size: cover;
} }
.sous_menu{ .sous_menu{
flex-basis: 25%; flex-basis: 20%;
border: thin solid black; border: thin solid black;
line-height: 36px; line-height: 36px;
} }
</style> </style>
\ No newline at end of file
...@@ -5,14 +5,16 @@ ...@@ -5,14 +5,16 @@
<p>(Dans le futur, ces actions varieront en fonction du type de contenu cliqué dans la 'fenetre principale')</p> <p>(Dans le futur, ces actions varieront en fonction du type de contenu cliqué dans la 'fenetre principale')</p>
<div id="actionsContenu"> <div id="actionsContenu">
<button v-show="contenuCliqueProvenance !== 'banque'" v-on:click="actionContenu('modifier')">modifier le contenu</button> <button v-show="contenuCliqueProvenance !== 'banque' && contenuClique.etat !== 'refuse'" v-on:click="actionContenu('modifier')">modifier le contenu</button>
<button v-show="contenuCliqueProvenance !== 'banque'" v-on:click="actionContenu('supprimer')">supprimer le contenu</button> <button v-show="contenuCliqueProvenance !== 'banque'" v-on:click="actionContenu('supprimer')">supprimer le contenu</button>
<button v-show="contenuCliqueProvenance === 'en-cours'" v-on:click="actionContenu('publier')">publier le contenu</button> <button v-show="contenuCliqueProvenance === 'en-cours' && contenuClique.etat !== 'refuse'" v-on:click="actionContenu('publier')">publier le contenu</button>
<button v-show="contenuCliqueProvenance === 'banque'" 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>
</div> </div>
<p v-if="contenuClique.etat === 'refuse'">Je suis un contenu en cours {{contenuClique.etat}}</p>
<button id="ren" v-on:click="revenirArriere">Retour en arrière</button> <button id="ren" v-on:click="revenirArriere">Retour en arrière</button>
</div> </div>
......
...@@ -50,7 +50,8 @@ ...@@ -50,7 +50,8 @@
}" > }" >
<td class="modal titreContenu" v-on:click="chargerContenu(item, item.provenance)" v-popover:tooltip="'prévisualisation'">{{ item._id }}</td> <td class="modal titreContenu" v-on:click="chargerContenu(item, item.provenance)" v-popover:tooltip="'prévisualisation'">{{ item._id }}</td>
<td>{{item.auteur}}</td> <td>{{item.auteur}}</td>
<td>with two columns</td> <td v-if="item.provenance === 'en-cours'">{{ item.version }}</td>
<td v-else>{{ item.versionEnCours.numero }}</td>
<td>The table body</td> <td>The table body</td>
<td>with two columns</td> <td>with two columns</td>
<td>with two columns</td> <td>with two columns</td>
...@@ -64,7 +65,7 @@ ...@@ -64,7 +65,7 @@
<tr v-show="!panierChoisi" v-for="item in contenusbanque" :key="item.titre"> <tr v-show="!panierChoisi" v-for="item in contenusbanque" :key="item.titre">
<td class="modal titreContenu" v-on:click="chargerContenu(item, 'banque')" v-popover:tooltip="'prévisualisation'">{{ item._id }}</td> <td class="modal titreContenu" v-on:click="chargerContenu(item, 'banque')" v-popover:tooltip="'prévisualisation'">{{ item._id }}</td>
<td>{{ item.auteur }}</td> <td>{{ item.auteur }}</td>
<td>The table body</td> <td>{{item.versionEnCours}}</td>
<td>with two columns</td> <td>with two columns</td>
<td>with two columns</td> <td>with two columns</td>
<td>with two columns</td> <td>with two columns</td>
...@@ -139,32 +140,32 @@ export default { ...@@ -139,32 +140,32 @@ export default {
watch: { watch: {
auteur: function () { auteur: function () {
this.contenusDuPanier()
this.contenusDeLaBanque()
}
},
mounted() {
this.modeConsultation = false
$('#ensemble').draggable()
},
methods: {
contenusDuPanier: function(){
let that = this let that = this
// Dès que l'auteur est connu, on charge tous ses contenus // Dès que l'auteur est connu, on charge tous ses contenus
Service.getPanierAuteur(this.auteur).then(function (response) { Service.getPanierAuteur(this.auteur).then(function (response) {
that.contenus = response.data that.contenus = response.data
}) })
Service.getBanqueAuteur(this.auteur).then(function (response) {
that.contenusbanque = response.data
})
}, },
nouveauContenu: function () { contenusDeLaBanque: function(){
let that = this let that = this
// Dès que l'auteur est connu, on charge tous ses contenus
Service.getPanierAuteur(this.auteur).then(function (response) {
that.contenus = response.data
})
Service.getBanqueAuteur(this.auteur).then(function (response) { Service.getBanqueAuteur(this.auteur).then(function (response) {
that.contenusbanque = response.data that.contenusbanque = response.data
}) })
}
},
mounted() {
this.modeConsultation = false
$('#ensemble').draggable()
}, },
methods: {
desactiverVolet: function () { desactiverVolet: function () {
this.isActif = !this.isActif this.isActif = !this.isActif
}, },
...@@ -180,16 +181,28 @@ export default { ...@@ -180,16 +181,28 @@ export default {
this.$emit("choix_variante", {variante: this.variante}) this.$emit("choix_variante", {variante: this.variante})
}, },
supprimerContenus: function () { supprimerContenus: function () {
let that = this
if (this.panierChoisi){ if (this.panierChoisi){
for(let i = 0; i < this.checkes.length; i++) { for(let i = 0; i < this.checkes.length; i++) {
if(this.checkes[i][1] === "perso"){ if(this.checkes[i][1] === "perso"){
Service.supprimerContenu(JSON.stringify(this.checkes[i][0])) Service.supprimerContenu(JSON.stringify(this.checkes[i][0])).then(
function () {
that.contenusDuPanier()
}
)
} else if (this.checkes[i][1] === "tiers"){ } else if (this.checkes[i][1] === "tiers"){
//let data = {auteur: this.auteur, id_tiers:JSON.stringify(this.checkes[i][0])} Service.supprimerTiers(this.auteur, JSON.stringify(this.checkes[i][0])).then(
Service.supprimerTiers(this.auteur, JSON.stringify(this.checkes[i][0])) function () {
that.contenusDuPanier()
}
)
} else { } else {
Service.supprimerEnCours(JSON.stringify(this.checkes[i][0])) Service.supprimerEnCours(JSON.stringify(this.checkes[i][0])).then(
function () {
that.contenusDuPanier()
}
)
} }
} }
...@@ -197,25 +210,28 @@ export default { ...@@ -197,25 +210,28 @@ export default {
else { else {
for(let i = 0; i < this.checkes.length; i++) { for(let i = 0; i < this.checkes.length; i++) {
let data = {auteur: this.auteur, id_tiers:JSON.stringify(this.checkes[i][0]) , version: this.checkes[i][1]["numero"]} let data = {auteur: this.auteur, id_tiers:JSON.stringify(this.checkes[i][0]) , version: this.checkes[i][1]["numero"]}
Service.creerContenuTiers(data) Service.creerContenuTiers(data).then(
function () {
that.contenusDuPanier()
that.contenusDeLaBanque()
}
)
} }
} }
this.checkes = [] this.checkes = []
$(".horns").prop( "checked", false ); $(".horns").prop( "checked", false );
let that = this
Service.getPanierAuteur(this.auteur).then(function (response) {
that.contenus = response.data
that.nouveauContenu = !that.nouveauContenu
})
}, },
ajouterContenu: async function () { majContenu: function () {
},
ajouterContenu: function () {
let data = {auteur: this.auteur, nom_fichier: "Contenu1", commit: ""} let data = {auteur: this.auteur, nom_fichier: "Contenu1", commit: ""}
Service.creerContenuPerso(data)
let that = this let that = this
Service.getPanierAuteur(this.auteur).then(function (response) { Service.creerContenuPerso(data).then(
that.contenus = response.data function () {
that.nouveauContenu = !that.nouveauContenu that.contenusDuPanier()
}) }
)
}, },
chargerContenu: function (item, provenance){ chargerContenu: function (item, provenance){
this.modeConsultation = true; this.modeConsultation = true;
...@@ -234,49 +250,61 @@ export default { ...@@ -234,49 +250,61 @@ export default {
case "mettreFavori": case "mettreFavori":
data = {auteur: this.auteur, id_tiers:JSON.stringify(event.contenu._id) , version: event.contenu.versionEnCours["numero"]} data = {auteur: this.auteur, id_tiers:JSON.stringify(event.contenu._id) , version: event.contenu.versionEnCours["numero"]}
Service.creerContenuTiers(data) Service.creerContenuTiers(data).then(
function () {
Service.getPanierAuteur(this.auteur).then(function (response) { that.contenusDuPanier()
that.contenus = response.data }
that.nouveauContenu = !that.nouveauContenu )
})
this.panierChoisi = false this.panierChoisi = false
break break
case "modifier": case "modifier":
this.panierChoisi = true this.panierChoisi = true
if (this.contenuCliqueProvenance !== 'en-cours'){ if (this.contenuCliqueProvenance !== 'en-cours'){
data = {auteur: this.auteur, id_contenu: JSON.stringify(event.contenu._id), version: event.contenu.versionEnCours["numero"]} data = {auteur: this.auteur, id_contenu: JSON.stringify(event.contenu._id), version: event.contenu.versionEnCours["numero"]}
Service.creerEnCours(data).then( function() { Service.creerEnCours(data).then(
Service.getPanierAuteur(that.auteur).then(function (response) { function () {
that.contenus = response.data that.contenusDuPanier()
that.nouveauContenu = !that.nouveauContenu }
})}) )
} }
break break
case "supprimer": case "supprimer":
this.panierChoisi = true this.panierChoisi = true
if(this.contenuCliqueProvenance === "perso"){ if(this.contenuCliqueProvenance === "perso"){
Service.supprimerContenu(JSON.stringify(event.contenu._id)) Service.supprimerContenu(JSON.stringify(event.contenu._id)).then(
function () {
that.contenusDuPanier()
}
)
} else if (this.contenuCliqueProvenance === "tiers"){ } else if (this.contenuCliqueProvenance === "tiers"){
Service.supprimerTiers(this.auteur, JSON.stringify(event.contenu._id)) Service.supprimerTiers(this.auteur, JSON.stringify(event.contenu._id)).then(
function () {
that.contenusDuPanier()
}
)
} else { } else {
Service.supprimerEnCours(JSON.stringify(event.contenu._id)) Service.supprimerEnCoursParLid(JSON.stringify(event.contenu._id)).then(
function () {
that.contenusDuPanier()
}
)
} }
Service.getPanierAuteur(this.auteur).then(function (response) {
that.contenus = response.data
that.nouveauContenu = !that.nouveauContenu
})
break break
case "publier": case "publier":
alert("Je veux publier")
this.panierChoisi = true this.panierChoisi = true
data = {id_contenu: JSON.stringify(event.contenu.reference), id_contenu_en_cours: JSON.stringify(event.contenu._id), auteur_en_cours: this.auteur} data = {id_contenu: JSON.stringify(event.contenu.reference), id_contenu_en_cours: JSON.stringify(event.contenu._id),
//request.args.get('id_contenu'), request.args.get('id_contenu_en_cours'), auteur_en_cours: this.auteur, version: event.contenu.version.toString()}
Service.creerDemandePublication(data) Service.creerDemandePublication(data).then( function () {
// this.$emit("publication", {document: this.contenuClique}) // on vire le contenu en cours dès qu'une demande de publication a été faite
Service.supprimerEnCoursParLid(JSON.stringify(event.contenu._id)).then(
function () {
that.contenusDuPanier()
}
)
}
)
break break
} }
}, },
...@@ -296,7 +324,7 @@ export default { ...@@ -296,7 +324,7 @@ export default {
this.checkes.push([idContenu, provenance]) this.checkes.push([idContenu, provenance])
} }
} }
} }
} }
</script> </script>
......
...@@ -27,11 +27,11 @@ export default { ...@@ -27,11 +27,11 @@ export default {
}, },
creerContenuTiers(data){ creerContenuTiers(data){
axios.patch(urlBase + "ajouterTiers", data) return axios.patch(urlBase + "ajouterTiers", data)
}, },
creerContenuPerso(data){ creerContenuPerso(data){
axios.post(urlBase + "newContenu", data) return axios.post(urlBase + "addContenu", data)
}, },
...@@ -39,37 +39,27 @@ export default { ...@@ -39,37 +39,27 @@ export default {
return axios.post(urlBase + "newEnCours", data) return axios.post(urlBase + "newEnCours", data)
}, },
supprimerEnCours(idEnCours){ creerEnCoursRefuse(data){
axios.delete(urlBase + "supprimerEnCours/" + idEnCours) return axios.post(urlBase + "newEnCoursRefuse", data)
}, },
supprimerEnCours(idContenu){
return axios.delete(urlBase + "supprimerEnCours/" + idContenu)
},
publierContenu(data){ supprimerEnCoursParLid(idEnCours){
axios.post(urlBase + "demandePublication/" , data) return axios.delete(urlBase + "supprimerEnCoursParId/" + idEnCours)
}, },
supprimerContenu(idContenu){ supprimerContenu(idContenu){
axios.delete(urlBase + "deletePerso/" + idContenu) return axios.delete(urlBase + "deletePerso/" + idContenu)
}, },
supprimerTiers(auteur, id_tiers){ supprimerTiers(auteur, id_tiers){
axios.delete(urlBase + "deleteTiers?auteur=" + auteur + "&id_tiers=" + id_tiers) return axios.delete(urlBase + "deleteTiers?auteur=" + auteur + "&id_tiers=" + id_tiers)
}, },
majContenu(data){
getPublications(auteur, emise){ return axios.patch(urlBase + "majContenu", data)
return axios.get(urlBase + "get_demandes_pub/" + auteur + "/" + emise)
},
gererMajRecue(){
},
gererMajProposee(){
},
majCOntenu(){
}, },
...@@ -84,7 +74,23 @@ export default { ...@@ -84,7 +74,23 @@ export default {
}, },
creerDemandePublication(data) { creerDemandePublication(data) {
axios.post(urlBase + "demandePublication" , data) return axios.post(urlBase + "demandePublication" , data)
},
supprimerDemandePublication(idDemandePublication){
return axios.delete(urlBase + "demandePublication/" + idDemandePublication)
},
creerNouveauContenu(data){
return axios.post(urlBase + "newContenu", data)
},
gererDemandePublication(data){
return axios.patch(urlBase + "gererDemandePub", data)
},
isMajTiersDisponible(auteur){
return axios.get(urlBase + "isMajTiersDisponible/" + auteur )
},
listeMajTiers(auteur){
return axios.get(urlBase + "listeMajTiers/" + auteur )
} }
} }
\ 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