diff options
| author | Viktoria Wiebe <wiebe@elan-ev.de> | 2024-09-18 11:14:07 +0200 |
|---|---|---|
| committer | Viktoria Wiebe <wiebe@elan-ev.de> | 2024-09-19 09:45:03 +0200 |
| commit | e7cfa5354d3598d1508e1aadb51781ac2e6c018d (patch) | |
| tree | 4c5e7d84e7ba029f5b49189aa5ef8f08a9c30371 /resources/vue/components/courseware/tasks/RenewalDialog.vue | |
| parent | fa2e6a9438fcb1a8347ce68a8df66748e9f1a8c7 (diff) | |
fix js errors when wrong date is typed in and show error messagebiest-2553
Diffstat (limited to 'resources/vue/components/courseware/tasks/RenewalDialog.vue')
| -rw-r--r-- | resources/vue/components/courseware/tasks/RenewalDialog.vue | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/resources/vue/components/courseware/tasks/RenewalDialog.vue b/resources/vue/components/courseware/tasks/RenewalDialog.vue index f08719e..c033e56 100644 --- a/resources/vue/components/courseware/tasks/RenewalDialog.vue +++ b/resources/vue/components/courseware/tasks/RenewalDialog.vue @@ -24,7 +24,7 @@ </label> <label v-if="state === 'granted'"> {{ $gettext('neue Frist') }} - <DateInput v-model="date" class="size-l" /> + <DateInput v-model="date" class="size-l" :min="submissionDate" @nullDate="nullDate = true" /> </label> </form> </template> @@ -32,31 +32,43 @@ </template> <script> +import { mapActions } from 'vuex'; import DateInput from '../layouts/CoursewareDateInput.vue'; + export default { - props: ['renewalDate', 'renewalState'], + props: ['renewalState', 'submissionDate'], components: { DateInput, }, data: () => ({ date: null, state: null, + nullDate: false, }), methods: { resetLocalVars() { - this.date = this.renewalDate ?? null; + this.date = this.submissionDate ?? null; this.state = this.renewalState; }, updateRenewal() { + if (this.nullDate) { + this.$emit('nullDate'); + return; + } + const date = new Date(this.date); - date.setHours(23); - date.setMinutes(59); - date.setSeconds(59); - date.setMilliseconds(999); + + if (date > new Date(this.submissionDate)) { + date.setHours(23); + date.setMinutes(59); + date.setSeconds(59); + date.setMilliseconds(999); + } this.$emit('update', { state: this.state, date: this.state === 'granted' ? date || Date.now() : null, + warn: date < new Date(this.submissionDate) }); }, }, @@ -64,7 +76,7 @@ export default { this.resetLocalVars(); }, watch: { - renewalDate(newValue) { + submissionDate(newValue) { if (newValue !== this.date) { this.resetLocalVars(); } |
