AccompanyingCourseWorkEdit: replace document by a new one

This commit is contained in:
nobohan 2022-03-13 22:31:26 +01:00
parent 13f0b8610c
commit dbe186547f
2 changed files with 41 additions and 1 deletions

View File

@ -84,6 +84,8 @@
<p v-if="d.createdBy" class="createdBy">Créé par {{ d.createdBy.text }}<br/>
Le {{ $d(ISOToDatetime(d.createdAt.datetime), 'long') }}</p>
</div>
</div>
<div class="item-row">
<div class="item-col">
<ul class="record_actions" >
<li v-if="d.workflows_availables.length > 0">
@ -98,6 +100,14 @@
@go-to-generate-workflow="goToGenerateWorkflowEvaluationDocument"
></list-workflow-modal>
</li>
<li>
<add-async-upload
:buttonTitle="$t('replace')"
:options="asyncUploadOptions"
@addDocument="(arg) => replaceDocument(d, arg)"
>
</add-async-upload>
</li>
<li>
<a :href="buildEditLink(d.storedObject)" class="btn btn-wopilink"></a>
</li>
@ -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});

View File

@ -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,