From dbe186547f1c61a06db779491dc40bfd2e99705f Mon Sep 17 00:00:00 2001 From: nobohan Date: Sun, 13 Mar 2022 22:31:26 +0100 Subject: [PATCH] AccompanyingCourseWorkEdit: replace document by a new one --- .../components/FormEvaluation.vue | 25 ++++++++++++++++++- .../vuejs/AccompanyingCourseWorkEdit/store.js | 17 +++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourseWorkEdit/components/FormEvaluation.vue b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourseWorkEdit/components/FormEvaluation.vue index 24e1c202f..2e31c0669 100644 --- a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourseWorkEdit/components/FormEvaluation.vue +++ b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourseWorkEdit/components/FormEvaluation.vue @@ -84,6 +84,8 @@

Créé par {{ d.createdBy.text }}
Le {{ $d(ISOToDatetime(d.createdAt.datetime), 'long') }}

+ +
  • @@ -98,6 +100,14 @@ @go-to-generate-workflow="goToGenerateWorkflowEvaluationDocument" >
  • +
  • + + +
  • @@ -176,7 +186,8 @@ const i18n = { document_upload: "Téléverser un document", document_title: "Titre du document", template_title: "Nom du template", - browse: "Ajouter un document" + browse: "Ajouter un document", + replace: "Remplacer" } } }; @@ -285,6 +296,18 @@ export default { }; this.$store.commit('addDocument', {key: this.evaluation.key, document: document}); }, + replaceDocument(oldDocument, storedObject) { + + console.log(oldDocument); + console.log(storedObject); + //console.log(oldDocument) how to get the old document? + let document = { + type: 'accompanying_period_work_evaluation_document', + storedObject: storedObject, + title: oldDocument.title + }; + this.$store.commit('replaceDocument', {key: this.evaluation.key, document: document, oldDocument: oldDocument}); + }, removeDocument(document) { if (window.confirm("Êtes-vous sûr·e de vouloir supprimer le document qui a pour titre \"" + document.title +"\" ?")) { this.$store.commit('removeDocument', {key: this.evaluation.key, document: document}); diff --git a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourseWorkEdit/store.js b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourseWorkEdit/store.js index 7f96843e5..18d6847f1 100644 --- a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourseWorkEdit/store.js +++ b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourseWorkEdit/store.js @@ -221,6 +221,20 @@ const store = createStore({ evaluations.documents = evaluations.documents.filter(d => d.key !== document.key); }, + replaceDocument(state, payload) { + console.log('payload', payload) + console.log(state.evaluationsPicked) + let evaluations = state.evaluationsPicked.find(e => e.key === payload.key); + console.log(evaluations) + if (evaluations === undefined) { + return; + } + + //Add document with map + evaluations.documents = evaluations.documents.map(d => d.key === payload.oldDocument.key ? payload.document : d); //TODO no key on documents! + console.log(evaluations) + + }, addEvaluation(state, evaluation) { let e = { type: "accompanying_period_work_evaluation", @@ -408,6 +422,9 @@ const store = createStore({ removeDocument({commit}, payload) { commit('removeDocument', payload); }, + replaceDocument({commit}, payload) { + commit('replaceDocument', payload); + }, submit({ getters, state, commit }, callback) { let payload = getters.buildPayload,