Refactor feedback form and final submission

This commit is contained in:
Christian Cueni 2019-11-14 14:36:20 +01:00
parent d3a81e17d8
commit 6b739034de
4 changed files with 41 additions and 12 deletions

View File

@ -39,7 +39,11 @@
></simple-file-upload> ></simple-file-upload>
</div> </div>
<final-submission :submission="assignment.submission" v-if="final" @reopen="reopen"></final-submission> <final-submission
v-if="final"
:user-input="assignment.submission"
:text="assignment.submission.text"
@reopen="reopen"></final-submission>
</div> </div>
</template> </template>
<template v-if="!isStudent"> <template v-if="!isStudent">

View File

@ -3,10 +3,11 @@
<div class="submissionform-container__inputs"> <div class="submissionform-container__inputs">
<submission-form <submission-form
@input="saveInput" @input="saveInput"
:input-text="feedback.text" :input-text="userInput.text"
:saved="saved" :saved="saved"
:final="final" :final="final"
:placeholder="placeholder" :placeholder="placeholder"
:reopen="$emit('reopen')"
></submission-form> ></submission-form>
</div> </div>
@ -17,23 +18,28 @@
</button> </button>
</div> </div>
<!-- <final-submission :submission="assignment.submission" v-if="final" @reopen="reopen"></final-submission> --> <final-submission
v-if="final"
:user-input="userInput"
@reopen="$emit('reopen')"></final-submission>
</div> </div>
</template> </template>
<script> <script>
import SubmissionForm from '@/components/content-blocks/assignment/SubmissionForm'; import SubmissionForm from '@/components/content-blocks/assignment/SubmissionForm';
import FinalSubmission from '@/components/content-blocks/assignment/FinalSubmission';
export default { export default {
components: { components: {
SubmissionForm SubmissionForm,
FinalSubmission
}, },
props: ['feedback', 'saved', 'placeholder', 'action'], props: ['userInput', 'saved', 'placeholder', 'action', 'reopen', 'document'],
computed: { computed: {
final() { final() {
return !!this.feedback && this.feedback.final return !!this.userInput && this.userInput.final
} }
}, },

View File

@ -1,8 +1,8 @@
<template> <template>
<div class="final-submission"> <div class="final-submission">
<document-block <document-block
v-if="submission.document" v-if="userInput.document"
:value="{url: submission.document}" :value="{url: userInput.document}"
class="final-submission__document" class="final-submission__document"
></document-block> ></document-block>
<div class="final-submission__explanation"> <div class="final-submission__explanation">
@ -19,7 +19,7 @@
import {newLineToParagraph} from '@/helpers/text'; import {newLineToParagraph} from '@/helpers/text';
export default { export default {
props: ['submission'], props: ['userInput'],
components: { components: {
InfoIcon, InfoIcon,
@ -28,7 +28,7 @@
computed: { computed: {
text() { text() {
return newLineToParagraph(this.submission.text); return newLineToParagraph(this.userInput.text);
} }
} }
} }

View File

@ -16,9 +16,10 @@
</div> </div>
<div class="feedback__submission"> <div class="feedback__submission">
<feedback-form <feedback-form
:feedback="studentSubmission.submissionfeedback"
@turnIn="turnIn" @turnIn="turnIn"
@saveInput="saveInput" @saveInput="saveInput"
@reopen="reopen"
:user-input="studentSubmission.submissionfeedback"
:placholder="'Feedback erfassen'" :placholder="'Feedback erfassen'"
:action="'Feedback teilen'" :action="'Feedback teilen'"
:saved="!unsaved" :saved="!unsaved"
@ -79,7 +80,6 @@
submissionFeedback: { submissionFeedback: {
studentSubmission: this.studentSubmission.id, studentSubmission: this.studentSubmission.id,
text: this.studentSubmission.submissionfeedback.text, text: this.studentSubmission.submissionfeedback.text,
final: this.studentSubmission.submissionfeedback.final
} }
} }
}, },
@ -119,6 +119,7 @@
this._save(); this._save();
}, },
turnIn() { turnIn() {
console.log('returnInopen')
this.$apollo.mutate({ this.$apollo.mutate({
mutation: UPDATE_FEEDBACK_MUTATION, mutation: UPDATE_FEEDBACK_MUTATION,
variables: { variables: {
@ -132,6 +133,24 @@
} }
}); });
}, },
reopen() {
if (!this.studentSubmission.id) {
return;
}
this.$apollo.mutate({
mutation: UPDATE_FEEDBACK_MUTATION,
variables: {
input: {
submissionFeedback: {
studentSubmission: this.studentSubmission.id,
text: this.studentSubmission.submissionfeedback.text,
final: false
}
}
}
});
},
}, },
data() { data() {