fix workflow redirection in accompanying period work edit

This commit is contained in:
Julien Fastré 2022-01-31 21:09:00 +01:00
parent 170ce2d51c
commit 829bf01eca
5 changed files with 53 additions and 19 deletions

View File

@ -12,6 +12,7 @@
:relatedEntityClass="this.relatedEntityClass"
:relatedEntityId="this.relatedEntityId"
:workflowsAvailables="workflowsAvailables"
@go-to-generate-workflow="goToGenerateWorkflow"
></pick-workflow>
<teleport to="body">
@ -34,6 +35,8 @@
:relatedEntityClass="this.relatedEntityClass"
:relatedEntityId="this.relatedEntityId"
:workflowsAvailables="workflowsAvailables"
:preventDefaultMoveToGenerate="this.$props.preventDefaultMoveToGenerate"
@go-to-generate-workflow="this.goToGenerateWorkflow"
></pick-workflow>
</template>
@ -53,6 +56,7 @@ export default {
PickWorkflow,
ListWorkflowVue
},
emits: ['goToGenerateWorkflow'],
props: {
workflows: {
type: Array,
@ -73,9 +77,14 @@ export default {
workflowsAvailables: {
type: Array,
required: true,
}
},
preventDefaultMoveToGenerate: {
type: Boolean,
required: false,
default: false,
},
},
data() {
data() {
return {
modal: {
showModal: false,
@ -95,6 +104,10 @@ export default {
openModal() {
this.modal.showModal = true;
},
goToGenerateWorkflow(data) {
console.log('go to generate workflow intercepted');
this.$emit('goToGenerateWorkflow', data);
}
},
i18n: {
messages: {

View File

@ -6,7 +6,7 @@
</button>
<ul class="dropdown-menu" aria-labelledby="createWorkflowButton">
<li v-for="w in workflowsAvailables" :key="w.name">
<a class="dropdown-item" :href="makeLink(w.name)" @click="goToGenerateWorkflow($event, w.name)">{{ w.text }}</a>
<a class="dropdown-item" :href="makeLink(w.name)" @click.prevent="goToGenerateWorkflow($event, w.name)">{{ w.text }}</a>
</li>
</ul>
</div>
@ -31,7 +31,12 @@ export default {
workflowsAvailables: {
type: Array,
required: true,
}
},
preventDefaultMoveToGenerate: {
type: Boolean,
required: false,
default: false,
},
},
emits: ['goToGenerateWorkflow'],
methods: {
@ -39,6 +44,12 @@ export default {
return buildLinkCreate(workflowName, this.relatedEntityClass, this.relatedEntityId);
},
goToGenerateWorkflow(event, workflowName) {
console.log('goToGenerateWorkflow', event, workflowName);
if (!this.$props.preventDefaultMoveToGenerate) {
event.target.click();
}
this.$emit('goToGenerateWorkflow', {event, workflowName, link: this.makeLink(workflowName)});
}
}

View File

@ -251,6 +251,7 @@
relatedEntityClass="Chill\PersonBundle\Entity\AccompanyingPeriod\AccompanyingPeriodWork"
:relatedEntityId="this.work.id"
:workflowsAvailables="this.work.workflows_availables"
@go-to-generate-workflow="goToGenerateWorkflow"
></list-workflow-modal>
</li>
@ -284,6 +285,7 @@ import OnTheFly from 'ChillMainAssets/vuejs/OnTheFly/components/OnTheFly.vue';
import ListWorkflowModal from 'ChillMainAssets/vuejs/_components/EntityWorkflow/ListWorkflowModal.vue';
import PickWorkflow from 'ChillMainAssets/vuejs/_components/EntityWorkflow/PickWorkflow.vue';
import PersonText from 'ChillPersonAssets/vuejs/_components/Entity/PersonText.vue';
import {buildLinkCreate} from 'ChillMainAssets/lib/entity-workflow/api.js';
const i18n = {
messages: {
@ -334,7 +336,6 @@ export default {
ListWorkflowModal,
OnTheFly,
PickWorkflow,
OnTheFly,
PersonText,
},
i18n,
@ -461,6 +462,15 @@ export default {
removeThirdParty(t) {
this.$store.commit('removeThirdParty', t);
},
goToGenerateWorkflow({link}) {
console.log('save before leave to generate workflow')
const callback = (data) => {
window.location.assign(link);
};
return this.$store.dispatch('submit', callback)
.catch(e => { console.log(e); throw e; });
},
submit() {
this.$store.dispatch('submit');
},

View File

@ -14,10 +14,10 @@
<list-workflow-modal
:workflows="evaluation.workflows"
:allowCreate="true"
relatedEntityClass="faked"
relatedEntityClass="Chill\PersonBundle\Entity\AccompanyingPeriod\AccompanyingPeriodWorkEvaluation"
:relatedEntityId="evaluation.id"
:workflowsAvailables="evaluation.workflows_availables"
@goToGenerateWorkflow="goToGenerateWorkflow"
@go-to-generate-workflow="goToGenerateWorkflow"
></list-workflow-modal>
</li>
@ -106,8 +106,7 @@ export default {
this.toggleEditEvaluation();
},
goToGenerateWorkflow({event, link, workflowName}) {
event.preventDefault();
console.log(event, link, workflowName);
console.log('goToGenerate in evaluation', event, link, workflowName);
const callback = (data) => {
let evaluationId = data.accompanyingPeriodWorkEvaluations.find(e => e.key === this.evaluation.key).id;

View File

@ -210,6 +210,7 @@ const store = createStore({
editEvaluation: true,
workflows_availables: state.work.workflows_availables_evaluation,
documents: [],
workflows: [],
};
state.evaluationsPicked.push(e);
},