Commit 1857ed08 authored by Jérémie Passerat's avatar Jérémie Passerat

Correction bugs pour soutenance oral

parent bcc68db3
......@@ -4,7 +4,7 @@
@newContenu="newContenu" v-bind:nvoContenu="nvoContenu" v-bind:auteur="auteur"
v-bind:contenuAjoute="contenuAjoute" v-bind:majContenus="majContenus" v-bind:darktheme="darktheme"
v-bind:deconnexion="deconnexion" v-bind:etat="etat" @ChangerTitre="ChangerTitre" @volet_desactive="voletDesactive"
@chargerTagsLibres="chargerTagsLibres"/>
@chargerTagsLibres="chargerTagsLibres" v-bind:raz="raz" v-bind:rechargerTagsLibres="rechargerTagsLibres"/>
</div>
</template>
......@@ -77,8 +77,12 @@ export default {
darktheme: {},
// Signal de déconnexion
deconnexion: {},
// raz affichage principal
raz: {},
// etat. Sera utile pour certaines réinitialisations de l'affichage
etat: {}
etat: {},
// signal pour recharger les Tags Libres
rechargerTagsLibres: {}
}
}
</script>
......
......@@ -124,7 +124,6 @@ export default {
}
)
} else {
alert("titre_fichier : " + this.titreFichier)
Service.uploaderContenuPersoNonXml(this.formData, this.auteur, JSON.stringify(event.tags), this.descriptifFichier,
this.typeDocument, this.titreFichier).then(
function (reponse) {
......
......@@ -7,7 +7,7 @@
v-bind:nouveauTitre="nouveauTitre">
</Menu>
<Contenu v-show="etat === 'Contenu'" v-bind:auteur="auteur" v-bind:nvoContenu="nvoContenu" v-bind:contenuAjoute="contenuAjoute"
@choix_variante="choixVariante" @newContenu="newContenu"
@choix_variante="choixVariante" @newContenu="newContenu" v-bind:raz="raz" v-bind:rechargerTagsLibres="rechargerTagsLibres"
@rechercherNouvellesPublications="rechercherPublications = !rechercherPublications" v-bind:etat="etat"
v-bind:majContenus="majContenus" v-bind:darktheme="darktheme" v-bind:deconnexion="deconnexion"
@ChangerTitre="ChangerTitre" @volet_desactive="voletDesactive" @chargerTagsLibres="chargerTagsLibres"></Contenu>
......@@ -19,7 +19,7 @@
<GererTagsLibres v-show="etat === 'Tags'" v-bind:auteur="auteur" v-bind:modeGestion="modeGestion"
v-bind:modeModificationContenu="modeModificationContenu" @revenirAuContenu="revenirAuContenu"></GererTagsLibres>
<TagsFixes v-show="etat === 'newContenu_Tags'"></TagsFixes>
<!-- <p style="text-align: center" v-show="errorLogin">{{errorMessage}}</p>-->
<!-- <p style="text-align: center" v-show="errorLogin">{{errorMessage}}</p>-->
<NewContenu v-show="etat === 'newContenu'" v-bind:auteur="auteur" @contenuAjoute="ajouterUnContenu" @retourArriere="retourArriere"></NewContenu>
<ImporterFichier v-show="etat === 'importContenu'" v-bind:auteur="auteur" @contenuAjoute="ajouterUnContenu" @retourArriere="retourArriere"></ImporterFichier>
<span id="prout" v-show="hoverManuel">Manuel d'utilisation d'OpenQuizz</span>
......@@ -62,13 +62,15 @@ export default {
// errorMessage: 'Login ou mot de passe erroné',
darktheme: '',
deconnexion: false,
raz: false,
nouveauTitre: '',
couleurFond: 'aqua',
modeGestion: false,
hoverManuel: false,
etatTmp: '',
voletOuvert: true,
modeModificationContenu: false
modeModificationContenu: false,
rechargerTagsLibres: false,
}
},
methods: {
......@@ -92,19 +94,20 @@ export default {
this.deconnexion = !this.deconnexion
localStorage.clear()
}
else
else {
this.etat = event.choix
if (event.choix === "Contenu"){
this.deconnexion = !this.deconnexion
this.raz = !this.raz
}
if (event.choix === "Tags"){
if (event.choix === "Tags") {
this.modeGestion = !this.modeGestion
this.modeModificationContenu = false
}
if (event.choix === "Mises à jour"){
if (event.choix === "Mises à jour") {
this.isRecu = event.isRecu
this.isPropose = event.isPropose
}
}
},
/**
* @vuese
......@@ -220,6 +223,7 @@ export default {
this.etat = 'Contenu'
this.modeGestion = !this.modeGestion
this.modeModificationContenu = false
this.rechargerTagsLibres = !this.rechargerTagsLibres
}
},
......
......@@ -26,7 +26,8 @@
<tr v-for="(item, index) in contenusRecu" :key="index">
<td :id="'maj' + JSON.stringify(item._id)" v-on:click="consulterContenuMaj(item)">{{item.titre}}</td>
<b-popover :target="'maj' + JSON.stringify(item._id)" v-on:show="rechercherTexteMaj(item)" triggers="hover" placement="bottom">
<p id="beautiful" v-html="texteDuContenuMaj"></p>
<p id="beautiful" v-html="texteDuContenuMaj" v-if="item.source !== 'moodle'"></p>
<Previsualiser_Moodle v-bind:id="item.idContenuEnCours" v-bind:provenance="'maj'" v-bind:source="item.source" v-else></Previsualiser_Moodle>
</b-popover>
<td>{{ item.auteurDemande }}</td>
......
......@@ -37,7 +37,9 @@ export default {
// provenance du contenu survolé
provenance: {},
// source du contenu survole
source: {}
source: {},
// declencheur de changement de version
changerVersion: {}
},
mounted() {
/**
......@@ -45,10 +47,10 @@ export default {
* A chaque fois que prévisualiser_moodle est appelé on fait appel a parserTexte pour permettre d'appeler le bon composant d'affichage
*/
let that = this
// alert(this.provenance)
if (this.source === 'moodle') {
if (this.provenance !== 'en-cours' && this.provenance !== 'maj') {
console.log("this.provenance : " + this.provenance !== 'maj')
if (!(this.provenance === 'en-cours' || this.provenance === 'maj')) {
Service.parserTexte(JSON.stringify(this.id)).then(function (response) {
that.questionParsee = response.data
})
......@@ -58,8 +60,24 @@ export default {
})
}
}
},
watch: {
changerVersion: function () {
let that = this
if (this.id !== undefined) {
if (this.provenance !== 'en-cours' && this.provenance !== 'maj') {
Service.parserTexteVersion(JSON.stringify(this.id), this.changerVersion).then(function (response) {
that.questionParsee = response.data
})
} else {
Service.parserTexteEnCours(JSON.stringify(this.id), this.changerVersion).then(function (response) {
that.questionParsee = response.data
})
}
}
}
}
}
</script>
......
<template>
<div style="text-align: center">
<p style="margin-top: 1vh">Bienvenue dans la page de choix des tags</p>
<p>Pour compléter le contenu ajouté, il va falloir lui associer des tags</p>
<p v-if="(provenance === 'tiers' || provenance === 'en-cours') && provenance !== undefined">Les tags fixes associés au contenu</p>
<div v-if="provenance === 'perso' || provenance === undefined">
<p style="margin-top: 1vh" >Bienvenue dans la page de choix des tags</p>
<p >Pour compléter le contenu ajouté, il va falloir lui associer des tags</p>
</div>
<label>Choisir le tag de niveau 1</label><br><br>
<select @change="niveau1()" v-model="tagUn">
<select @change="niveau1()" v-model="tagUn" :disabled="(provenance === 'tiers' || provenance === 'en-cours') && provenance !== undefined">
<option>Tag1</option>
<option>Tag2</option>
<option>Tag3</option>
</select><br><br>
<label>Choisir le tag de niveau 2</label><br><br>
<select @change="niveau2()" :disabled="niveauDeux === 0" v-model="tagDeux">
<select @change="niveau2()" :disabled="niveauDeux === 0 || (provenance === 'tiers' || provenance === 'en-cours') && provenance !== undefined" v-model="tagDeux">
<option v-for="i in 3" :key="i">{{tagUn}}.{{ i }}</option>
</select><br><br>
<label>Choisir le tag de niveau 3</label><br><br>
<select @change="niveau3()" :disabled="niveauTrois === 0" v-model="tagTrois">
<select @change="niveau3()" :disabled="niveauTrois === 0 || (provenance === 'tiers' || provenance === 'en-cours') && provenance !== undefined" v-model="tagTrois">
<option v-for="i in 5" :key="i">{{tagDeux}}.{{ i }}</option>
</select><br><br>
<button v-on:click="validerTags" :disabled="validationTags === 0">Valider</button>
<p>{{ tagsModifies }}</p>
<p>provenance : {{provenance}}</p>
<button v-on:click="validerTags" :disabled="validationTags === 0" v-show="provenance === undefined || provenance === 'perso'">Valider</button>
</div>
</template>
......@@ -37,7 +40,8 @@ export default {
tagUn: '',
tagDeux: '',
tagTrois: '',
tagsModifies: ''
tagsModifies: '',
tagsDeLaBanque: '',
}
},
props: {
......@@ -46,7 +50,9 @@ export default {
// les tags "banque" du contenu
tagsBanque: {},
// l'id du contenu cliqué
id_contenu: {}
id_contenu: {},
// provenance du contenu
provenance: {},
},
methods:{
/**
......@@ -69,6 +75,8 @@ export default {
let data = {id_contenu: JSON.stringify(this.id_contenu), tags: tagsChoisis}
Service.modifierTagsFixes(data)
this.tagsModifies = "tags modifiés"
this.$emit("tags", {tags: tagsChoisis})
}
},
/**
......@@ -84,7 +92,6 @@ export default {
this.niveauDeux = 1
}
else {
alert("Je le suis ici")
// si on est dans le mode modification de contenu, on efface les tags hiérarchiquement inférieurs et on bloque l'échelon 3
// this.niveauDeux = 0
//alert(this.niveauTrois)
......@@ -116,16 +123,20 @@ export default {
this.tagsModifies = ""
this.validationTags = 1
this.niveauDeux = 1
//alert(this.tagsBanque.length)
this.tagUn = this.tagsBanque[0]
if (this.tagsBanque.length > 1){
if (typeof this.tagsBanque === "string")
this.tagsDeLaBanque = JSON.parse(this.tagsBanque)
else
this.tagsDeLaBanque = this.tagsBanque
this.tagUn = this.tagsDeLaBanque[0]
if (this.tagsDeLaBanque.length > 1){
//ert("Hihi")
this.tagDeux = this.tagsBanque[1]
this.tagDeux = this.tagsDeLaBanque[1]
this.niveauTrois = 1
}
if (this.tagsBanque.length === 3){
if (this.tagsDeLaBanque.length === 3){
//alert("Huhu")
this.tagTrois = this.tagsBanque[2]
this.tagTrois = this.tagsDeLaBanque[2]
}
}
}
......
......@@ -16,7 +16,7 @@
<span id="versGestionTags" style="font-size: smaller" @click="chargerGestionTagsLibres"> Gestion des tags libres</span>
</div>
<p>----------------------------------------------------------------------------</p>
<TagsFixes v-bind:isModif="isModif" v-bind:tagsBanque="tagsBanque" v-bind:id_contenu="id_contenu"></TagsFixes>
<TagsFixes @tags="nouveauxTags" v-bind:isModif="isModif" v-bind:tagsBanque="tagsBanque" v-bind:id_contenu="id_contenu" v-bind:provenance="provenance"></TagsFixes>
</div>
</template>
......@@ -33,11 +33,13 @@ export default {
// récupération de l'auteur
auteur: {},
// provenance du contenu
contenuCliqueProvenance: {},
provenance: {},
// Signal d'activation ou non du theme sombre
darktheme: {},
// Récupération d'un tag libre ajouté
tagLibreAssocie: {}
tagLibreAssocie: {},
// signal pour recharger les Tags Libres
rechargerTagsLibres: {}
},
methods:{
/**
......@@ -76,6 +78,13 @@ export default {
*/
chargerGestionTagsLibres: function () {
this.$emit("chargerTagsLibres")
},
/**
* @vuese
* Recup des nouveaux tags fixes
*/
nouveauxTags: function (event) {
this.$emit("tags", {tags: event.tagsChoisis})
}
},
data: function () {
......@@ -110,7 +119,7 @@ export default {
},
/**
* @vuese
* Traitement d'un tag associé via drag&dro
* Traitement d'un tag associé via drag&drop
*/
tagLibreAssocie: function () {
//alert(this.auteur)
......@@ -122,7 +131,21 @@ export default {
that.tagsLibres = response.data
})
})
},
/**
* @vuese
* recharge les tags dispo apres ajout dans le menu
*/
rechargerTagsLibres: function () {
let that = this
Service.recupererTagLibre(this.auteur).then(function (response) {
that.tagsDeAuteur = response.data
Service.recupererTagLibreContenu(JSON.stringify(that.tagLibreAssocie), that.auteur).then(function (response) {
that.tagsLibres = response.data
})
})
}
},
computed: {
/**
......
......@@ -57,10 +57,11 @@
</table>
<br>
<p> Voici l'intérieur de votre contenu dans sa version {{versionChoisie}} : </p>
<p> {{amorceContenu}} </p>
<span v-if="sourceContenu !== 'moodle'" contenteditable="false" style="background-color: white; width: 50vw; margin-left: auto; margin-right: auto" v-html="formatterMarkdown()">
</span>
<Previsualiser_Moodle v-else v-bind:id="idContenu" v-bind:provenance="contenuCliqueProvenance"></Previsualiser_Moodle>
<Previsualiser_Moodle v-else v-bind:id="idContenu" v-bind:provenance="contenuCliqueProvenance" v-bind:source="sourceContenu"
v-bind:changerVersion="changerDeVersion"></Previsualiser_Moodle>
<br>
</div>
<p style="text-align: center" v-show="isContenuRefuse"> Ceci est un contenu en cours ayant fait l'objet d'un refus de publication. Aucune action disponible</p>
......@@ -125,6 +126,12 @@ export default {
// Permet de revenir à Volet_Base
this.$emit("retour_arriere", {panierChoisi: this.contenuCliqueProvenance !== 'banque'})
}
this.changerDeVersion = this.versionMax
let data = {id_contenu: JSON.stringify(this.idContenu) }
Service.recalibrerGit(data)
this.versionChoisie = this.versionMax
},
/**
* @vuese
......@@ -132,12 +139,16 @@ export default {
*/
changerVersion: function () {
let that = this
if (this.sourceContenu !== 'moodle') {
Service.recupererTexteVersionContenu(JSON.stringify(this.contenuClique._id), this.versionChoisie).then(
function (response) {
that.contenu = response.data
// alert(response.data)
}
)
} else {
this.changerDeVersion = this.versionChoisie
}
},
/**
* @vuese
......@@ -182,7 +193,9 @@ export default {
populariteContenu: 0,
noteContenu: 0,
tagsContenus: [],
idContenu: ''
idContenu: '',
changerDeVersion: 0,
amorceContenu: ''
}
},
watch: {
......@@ -195,8 +208,11 @@ export default {
if (this.contenuCliqueProvenance === 'maj'){
this.idContenu = this.contenuClique.idContenuEnCours
this.amorceContenu = "Voici l'intérieur de la version proposée pour la maj : "
} else {
this.idContenu = this.contenuClique._id
this.amorceContenu = "Voici l'intérieur de votre contenu dans sa version " + this.versionChoisie() + ":"
}
this.titreContenu = this.contenuClique.titre
this.populariteContenu = this.contenuClique.popularite
......
......@@ -24,7 +24,7 @@
<br>
<select v-show="contenuCliqueProvenance === 'perso' && versionMax > 1" v-model="versionChoisie" v-on:change="changerVersion"
style="margin-right: 5px; background: none; border: none" >
<option v-for="i in versionMax" v-bind:key="i"> v{{i}}</option>
<option v-for="i in versionMax" v-bind:key="i"> {{i}}</option>
</select>
<input type="text" id="titreDuContenu" placeholder="titre du contenu" style="width: 350px; outline: none; border: none" v-model="titreContenu">
</div>
......@@ -60,17 +60,22 @@
<br>
<div class="mavonEditor" v-show="!isModeTag && sourceContenu !== 'moodle'">
<mavon-editor :language="'fr'" style="position: static; height: 78vh; margin-top: -0.77%" v-model="texteDuContenu"/>
<mavon-editor :language="'fr'" style="position: static; height: 78vh; margin-top: -0.77%" v-model="texteAffiche"/>
</div>
<TagsLibres v-show="isModeTag" v-bind:contenu="this.contenuClique" v-bind:auteur="auteur" @actionTagLibre="actionTagLibre"
style="position: static; height: 78vh; margin-top: -0.77%" v-bind:darktheme="darktheme" @chargerTagsLibres="chargerTagsLibres" v-bind:tagLibreAssocie="tagLibreAssocie"></TagsLibres>
style="position: static; height: 78vh; margin-top: -0.77%" v-bind:darktheme="darktheme" @chargerTagsLibres="chargerTagsLibres"
v-bind:tagLibreAssocie="tagLibreAssocie" v-bind:provenance="contenuCliqueProvenance"
v-bind:rechargerTagsLibres="rechargerTagsLibres" @tags="nouveauxTags"></TagsLibres>
<Edit_Contenus @actionMoodle="actionMoodle" v-show="!isModeTag && sourceContenu === 'moodle'" v-bind:darktheme="darktheme"
v-bind:idContenu="idContenu" v-bind:source="sourceContenu" v-bind:provenance="contenuCliqueProvenance"></Edit_Contenus>
v-bind:idContenu="idContenu" v-bind:source="sourceContenu" v-bind:provenance="contenuCliqueProvenance"
v-bind:changerVersion="changerDeVersion" v-bind:versionCourante="this.versionMax"></Edit_Contenus>
<Previsualiser_Moodle v-bind:changerVersion="changerDeVersion" v-bind:source="'pas moodle'" v-show="false"></Previsualiser_Moodle>
<div class="markdown" v-show="sourceContenu !== 'moodle'">
<br>
<button id="validerModif" v-on:click="action('valider')">modifier </button>
<button id="validerModif" v-on:click="action('valider')" v-if="versionMax === versionChoisie">modifier </button>
<button id="retourArriere" v-on:click="action('arriere')"> revenir en arrière</button>
</div>
......@@ -84,11 +89,13 @@ import Service from "../service/Service";
import StarRating from 'vue-star-rating'
import TagsLibres from "../TagsLibres";
import Edit_Contenus from "./moodle/Edit_Contenus";
import Previsualiser_Moodle from "@/Previsualiser_Moodle";
export default {
name: "Modifier_Contenu",
components: {
Previsualiser_Moodle,
Edit_Contenus,
TagsLibres,
StarRating
......@@ -107,7 +114,9 @@ export default {
// Signal d'activation ou non du theme sombre
darktheme: {},
// Récupération d'un tag libre ajouté
tagLibreAssocie: {}
tagLibreAssocie: {},
// signal pour recharger les Tags Libres
rechargerTagsLibres: {}
},
data: function () {
return {
......@@ -125,7 +134,9 @@ export default {
titreModifierTags: "modifier Tags",
typeContenu: '',
sourceContenu: '',
idContenu: ''
idContenu: '',
texteAffiche: '',
changerDeVersion: ''
}
},
methods: {
......@@ -139,18 +150,21 @@ export default {
if (actionChoisie === 'valider'){
if (this.sourceContenu === 'moodle'){
alert("Je modifie un moodle")
console.log("Je modifie un moodle")
} else {
// evenement de modification du texte d'un contenu
// @arg l'action choisie, ici 'valider'
// @arg le texte modifié
this.$emit("choixModif", {action: actionChoisie, nouveauTexte: this.texteDuContenu, titre: this.titreContenu})
this.$emit("choixModif", {action: actionChoisie, nouveauTexte: this.texteAffiche, titre: this.titreContenu})
}
} else {
// evenement de retour en arrière vers Consulter_COntenu
// @arg l'action choisie, ici 'arriere'
this.$emit("choixModif", {action: actionChoisie})
}
},
/**
* @vuese
......@@ -158,12 +172,16 @@ export default {
*/
changerVersion: function () {
let that = this
if (this.contenuCliqueProvenance === 'perso' && this.versionMax > 1){
if (this.sourceContenu !== 'moodle') {
Service.recupererTexteVersionContenu(JSON.stringify(this.contenuClique._id), this.versionChoisie).then(
function (response) {
that.texteDuContenu = response.data
that.texteAffiche = response.data
// alert(response.data)
}
)
} else {
this.changerDeVersion = this.versionChoisie
}
)}
},
/**
* @vuese
......@@ -236,10 +254,27 @@ export default {
this.$emit("chargerTagsLibres")
},
actionMoodle: function (event) {
if (event.action === 'arriere')
if (this.contenuCliqueProvenance === 'perso'){
let data = {id_contenu: JSON.stringify(this.idContenu) }
Service.recalibrerGit(data)
this.changerDeVersion = this.versionMax
this.versionChoisie = this.versionMax
}
if (event.action === 'arriere'){
this.$emit("choixModif", {action: event.action})
}
else
this.$emit("choixModif", {action: event.action, questionParsee: event.questionParsee, titre: this.titreContenu})
},
/**
* @vuese
* Recup des nouveaux tags fixes
*/
nouveauxTags: function (event) {
this.$emit("tags", {tags: event.tagsChoisis})
}
......@@ -271,7 +306,7 @@ export default {
} else {
return this.contenuClique.moyenne
}
}
},
},
watch: {
/**
......@@ -288,6 +323,7 @@ export default {
this.sourceContenu = this.contenuClique.source
this.populariteContenu = this.contenuClique.popularite
this.idContenu = this.contenuClique._id
this.texteAffiche = this.texteDuContenu
this.isContenuRefuse = Object.prototype.hasOwnProperty.call(this.contenuClique, 'refuse')
if (this.contenuCliqueProvenance === 'perso') {
......
......@@ -109,7 +109,7 @@ isActif ? {'margin-left': '1vw', 'margin-right': '1vw'} : {'margin-left': '0.6vw
<td :id="'a' + JSON.stringify(item._id)" v-on:click="chargerContenu(item, 'banque')">{{ item.titre }}</td>
<b-popover :target="'a' + JSON.stringify(item._id)" v-on:show="rechercherTexte(item._id, 'banque', item.source)" triggers="hover" placement="bottom">
<p v-html="texteDuContenu" v-if="!isMoodle"></p>
<Previsualiser_Moodle v-bind:id="item._id" v-bind:provenance="contenuCliqueProvenance" v-else></Previsualiser_Moodle>
<Previsualiser_Moodle v-bind:id="item._id" v-bind:provenance="'banque'" v-bind:source="item.source" v-else></Previsualiser_Moodle>
</b-popover>
<td>{{ item.auteur }}</td>
<td>{{item.versionEnCours.numero}}</td>
......@@ -143,7 +143,8 @@ isActif ? {'margin-left': '1vw', 'margin-right': '1vw'} : {'margin-left': '0.6vw
<Modifier_Contenu v-bind:auteur="auteur" v-bind:texteDuContenu = "texteDuContenu" v-bind:contenuCliqueProvenance = "contenuCliqueProvenance"
v-show="modeModification" @actionContenu="actionContenu" v-bind:contenuClique = "contenuClique" v-bind:darktheme="darktheme"
@choixModif="choixModif" v-bind:titreContenu="titreContenu" @majMoyenne="majMoyenne" @actionTagLibre="actionTagLibre"
@chargerTagsLibres="chargerTagsLibres" v-bind:tagLibreAssocie="tagLibreAssocie"/>
@chargerTagsLibres="chargerTagsLibres" v-bind:tagLibreAssocie="tagLibreAssocie" v-bind:rechargerTagsLibres="rechargerTagsLibres"
@tags="nouveauxTags" />
</div>
</template>
......@@ -185,8 +186,12 @@ export default {
darktheme: {},
// Signal de déconnexion
deconnexion: {},
// nettoyage vue
raz: {},
// etat. Sera utile pour certaines réinitialisations de l'affichage
etat: {}
etat: {},
// signal pour recharger les Tags Libres
rechargerTagsLibres: {}
},
data: function () {
return {
......@@ -260,6 +265,16 @@ export default {
this.contenus = []
this.contenusBanque = []
},
/**
* @vuese
* Remise au propre de la vue
*/
raz: function () {
this.modeModification = false
this.modeConsultation = false
this.panierChoisi = true
},
/**
* @vuese
* Dès que l'auteur est connu, on charge tous les contenus auxquels il pourrait s'intéresser
......@@ -445,6 +460,7 @@ export default {
}
)
} else if (this.checkes[i][1] === "tiers"){
Service.supprimerTiers(this.auteur, JSON.stringify(id), this.checkes[i][2]).then(
function (response) {
let contenuSupprime = that.contenus.filter(contenu => contenu._id === id)
......@@ -489,6 +505,7 @@ export default {
let nouveauTiers = response.data
nouveauTiers.provenance = "tiers"
nouveauTiers.version = version
nouveauTiers.note = "-"
that.contenus.push(nouveauTiers)
that.contenusBanque = that.contenusBanque.filter(contenu => contenu._id !== id)
// data= {id_contenu:JSON.stringify(id) , version: version}
......@@ -693,7 +710,7 @@ export default {
* @vuese
* Sauvegarde des éléments cochés. Pour suppression (en mode banque) ou mise en tiers (en mode
*/
ajouterCoche: function (event, idContenu, provenance, notePerso = "") {
ajouterCoche: function (event, idContenu, provenance, notePerso = "-") {
let existant = false
event.target.parentNode.parentNode.classList.toggle("pipi")
......@@ -972,10 +989,10 @@ export default {
contenusFiltres = contenusFiltres.filter(contenu => contenu.titre === filtre_recherche[itBe].filtre)
break
case "contenu":
alert("je recherche " + filtre_recherche[itBe].filtre + "dans le contenu")
//alert("je recherche " + filtre_recherche[itBe].filtre + "dans le contenu")
break
case "titre&contenu":
alert("je recherche " + filtre_recherche[itBe].filtre + "dans le titre et dans le contenu")
//alert("je recherche " + filtre_recherche[itBe].filtre + "dans le titre et dans le contenu")
break
}
}
......@@ -1164,6 +1181,13 @@ export default {
// alert($(".horns").parent().parent().prop('nodeName'))
},
/**
* @vuese
* Recup des nouveaux tags fixes
*/
nouveauxTags: function () {
this.contenusDuPanier()
}
}
}
......
......@@ -134,7 +134,8 @@
<span class="nvelleReponse" @click="ajouterUnite"> Ajouter une unité</span>
</table>
<button style="width: auto; height: auto; margin-left: -100px; position: fixed; bottom: 18px" v-on:click="action('modifier')">modifier</button>
<button style="width: auto; height: auto; margin-left: -100px; position: fixed; bottom: 18px"
v-on:click="action('modifier')" v-show="isVersionCourante">modifier</button>
<button style="width: auto; height: auto; margin-left: -15px; position: fixed; bottom: 18px" v-on:click="action('arriere')">retour en arriere</button>
</div>
......@@ -148,7 +149,9 @@ export default {
// mode sombre activé ou non
darktheme: {},
//la question Parsee
questionParsee: {}
questionParsee: {},
// version courante affichée ?
isVersionCourante: {}
},
data: function () {
return {
......
......@@ -80,7 +80,8 @@
<span id="nvelleReponse" @click="ajouterReponse"> Ajouter une réponse</span>
</table>
<button style="width: auto; height: auto; margin-left: -100px; position: fixed; bottom: 18px" v-on:click="action('modifier')">modifier</button>
<button style="width: auto; height: auto; margin-left: -100px; position: fixed; bottom: 18px"
v-on:click="action('modifier')" v-show="isVersionCourante">modifier</button>
<button style="width: auto; height: auto; margin-left: -15px; position: fixed; bottom: 18px" v-on:click="action('arriere')">retour en arriere</button>
</div>
......@@ -95,7 +96,9 @@ export default {
// mode sombre activé ou non
darktheme: {},
//la question Parsee
questionParsee: {}
questionParsee: {},
// version courante affichée ?
isVersionCourante: {}
},
data: function () {
return {
......
<template>
<div>
<Edit_Reponse_Courte @actionMoodle="passerMoodle" v-show="type_question === 'shortanswer'" v-bind:questionParsee="questionParsee"></Edit_Reponse_Courte>
<Edit_Vrai_Faux @actionMoodle="passerMoodle" v-show="type_question === 'truefalse'" v-bind:questionParsee="questionParsee"></Edit_Vrai_Faux>
<Edit_Choix_Multiple @actionMoodle="passerMoodle" v-show="type_question === 'multichoice'" v-bind:questionParsee="questionParsee"></Edit_Choix_Multiple>
<Edit_Numerique @actionMoodle="passerMoodle" v-show="type_question === 'numerical'" v-bind:questionParsee="questionParsee"></Edit_Numerique>
<Edit_Calculee_Simple @actionMoodle="passerMoodle" v-show="type_question === 'calculatedsimple'" v-bind:questionParsee="questionParsee"></Edit_Calculee_Simple>
<Edit_Reponse_Courte @actionMoodle="passerMoodle" v-show="type_question === 'shortanswer'"
v-bind:isVersionCourante="isVersionCourante" v-bind:questionParsee="questionParsee"></Edit_Reponse_Courte>
<Edit_Vrai_Faux @actionMoodle="passerMoodle" v-show="type_question === 'truefalse'"
v-bind:isVersionCourante="isVersionCourante" v-bind:questionParsee="questionParsee"></Edit_Vrai_Faux>
<Edit_Choix_Multiple @actionMoodle="passerMoodle" v-show="type_question === 'multichoice'"
v-bind:isVersionCourante="isVersionCourante" v-bind:questionParsee="questionParsee"></Edit_Choix_Multiple>
<Edit_Numerique @actionMoodle="passerMoodle" v-show="type_question === 'numerical'"
v-bind:isVersionCourante="isVersionCourante" v-bind:questionParsee="questionParsee"></Edit_Numerique>
<Edit_Calculee_Simple @actionMoodle="passerMoodle" v-show="type_question === 'calculatedsimple'"
v-bind:isVersionCourante="isVersionCourante" v-bind:questionParsee="questionParsee"></Edit_Calculee_Simple>
</div>
</template>
......@@ -28,7 +33,11 @@ export default {
//la provenance du contenu
provenance: {},
// la source du contenu
source: {}
source: {},
// declencheur de changement de version
changerVersion: {},
// version courante affichée ?
versionCourante: {}
},
methods: {
passerMoodle: function (event) {
......@@ -41,18 +50,16 @@ export default {
data: function () {
return {
questionParsee: '',
type_question: ''
type_question: '',
isVersionCourante: true
}
},
watch: {
idContenu: function () {
let that = this
//alert(that.provenance)
if (this.source === 'moodle') {
if (this.provenance !== 'en-cours') {
alert("Puuuu")
Service.parserTexte(JSON.stringify(this.idContenu)).then(function (response) {
that.questionParsee = response.data
that.type_question = that.questionParsee.type_question
......@@ -66,6 +73,24 @@ export default {
})
}
}
},
changerVersion: function () {
let that = this
this.isVersionCourante = this.versionCourante.toString() === this.changerVersion.toString()
if (this.provenance !== 'en-cours') {
Service.parserTexteVersion(JSON.stringify(this.idContenu), this.changerVersion).then(function (response) {
that.questionParsee = response.data
//that.type_question = that.questionParsee.type_question
})
} else {
Service.parserTexteEnCoursVersion(JSON.stringify(this.idContenu), this.changerVersion).then(function (response) {
that.questionParsee = response.data
//that.type_question = that.questionParsee.type_question
})
}
}
}
}
......
......@@ -107,7 +107,8 @@
</table>
<button style="width: auto; height: auto; margin-left: -100px; position: fixed; bottom: 18px" v-on:click="action('modifier')">modifier</button>
<button style="width: auto; height: auto; margin-left: -100px; position: fixed; bottom: 18px"
v-on:click="action('modifier')" v-show="isVersionCourante">modifier</button>
<button style="width: auto; height: auto; margin-left: -15px; position: fixed; bottom: 18px" v-on:click="action('arriere')">retour en arriere</button>
</div>
......@@ -121,7 +122,9 @@ export default {
// mode sombre activé ou non
darktheme: {},
//la question Parsee
questionParsee: {}
questionParsee: {},
// version courante affichée ?
isVersionCourante: {}
},
data: function () {
return {
......
......@@ -60,7 +60,8 @@
<span id="nvelleReponse" @click="ajouterReponse"> Ajouter une réponse</span>
</table>
<button style="width: auto; height: auto; margin-left: -100px; position: fixed; bottom: 18px" v-on:click="action('modifier')">modifier</button>
<button style="width: auto; height: auto; margin-left: -100px; position: fixed; bottom: 18px"
v-on:click="action('modifier')" v-show="isVersionCourante">modifier</button>
<button style="width: auto; height: auto; margin-left: -15px; position: fixed; bottom: 18px" v-on:click="action('arriere')">retour en arriere</button>
</div>
......@@ -74,7 +75,9 @@ export default {
// mode sombre activé ou non
darktheme: {},
//la question Parsee
questionParsee: {}
questionParsee: {},
// version courante affichée ?
isVersionCourante: {}
},
data: function () {
return {
......
......@@ -52,7 +52,8 @@
</table>
<button style="width: auto; height: auto; margin-left: -100px; position: fixed; bottom: 18px" v-on:click="action('modifier')">modifier</button>
<button style="width: auto; height: auto; margin-left: -100px; position: fixed; bottom: 18px"
v-on:click="action('modifier')" v-show="isVersionCourante">modifier</button>
<button style="width: auto; height: auto; margin-left: -15px; position: fixed; bottom: 18px" v-on:click="action('arriere')">retour en arriere</button>
</div>
</div>
......@@ -68,7 +69,9 @@ export default {
// mode sombre activé ou non
darktheme: {},
//la question Parsee
questionParsee: {}
questionParsee: {},
// version courante affichée ?
isVersionCourante: {}
},
data: function () {
return {
......
......@@ -198,9 +198,15 @@ export default {
parserTexte(id_contenu) {
return axios.get(urlBase + contenus + "parserContenu/" + id_contenu, this.getHeader())
},
parserTexteVersion(id_contenu, version) {
return axios.get(urlBase + contenus + "parserContenuVersion/" + id_contenu + "?version=" + version, this.getHeader())
},
exporterXML(id_contenu) {
return axios.get(urlBase + contenus + "exporterContenuXml/" + id_contenu, this.getSpecialHeader())
},
recalibrerGit(data){
return axios.patch(urlBase + contenus + "recalibrerGit", data, this.getHeader())
},
// gestion des en-cours
exporterXMLEnCours(id_contenu){
return axios.get(urlBase + en_cours + "exporterContenuXmlEnCours/" + id_contenu, this.getSpecialHeader())
......@@ -211,6 +217,9 @@ export default {
parserTexteEnCours(id_contenu) {
return axios.get(urlBase + en_cours + "parserContenuEnCours/" + id_contenu, this.getHeader())
},
parserTexteEnCoursVersion(id_contenu, version) {
return axios.get(urlBase + en_cours + "parserContenuEnCoursVersion/" + id_contenu + "&version=" + version, this.getHeader())
},
creerEnCours(data) {
return axios.post(urlBase + en_cours + "newEnCours", data, this.getHeader())
},
......
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