skillbox/client/src/components/content-block-form/NewContentBlockWizard.vue

69 lines
1.7 KiB
Vue

<template>
<contents-form
:content-block="contentBlock"
:show-task-selection="true"
:disable-save="saving"
@save="saveContentBlock"
@hide="hideModal"
/>
</template>
<script>
import ContentsForm from '@/components/content-block-form/ContentsForm';
import NEW_CONTENT_BLOCK_MUTATION from '@/graphql/gql/mutations/addContentBlock.gql';
import MODULE_DETAILS_QUERY from '@/graphql/gql/moduleDetailsQuery.gql';
import {setUserBlockType} from '@/helpers/content-block'
export default {
components: {
ContentsForm
},
data() {
return {
contentBlock: {
title: '',
contents: [
{}
]
},
saving: false
}
},
methods: {
hideModal() {
this.$store.dispatch('resetContentBlockPosition');
this.$store.dispatch('hideModal');
},
saveContentBlock(contentBlock) {
this.saving = true;
this.$apollo.mutate({
mutation: NEW_CONTENT_BLOCK_MUTATION,
variables: {
input: {
contentBlock: {
title: contentBlock.title,
contents: contentBlock.contents.filter(value => Object.keys(value).length > 0),
type: setUserBlockType(contentBlock.isAssignment)
},
after: this.$store.state.contentBlockPosition.after,
parent: this.$store.state.contentBlockPosition.parent
}
},
refetchQueries: [{
query: MODULE_DETAILS_QUERY,
variables: {
slug: this.$route.params.slug
}
}]
}).then(() => {
this.saving = false;
this.hideModal();
});
}
},
}
</script>