diff --git a/admin/src/components/ContributionMessages/ContributionMessagesFormular.vue b/admin/src/components/ContributionMessages/ContributionMessagesFormular.vue index 1e395c183..2799b74ad 100644 --- a/admin/src/components/ContributionMessages/ContributionMessagesFormular.vue +++ b/admin/src/components/ContributionMessages/ContributionMessagesFormular.vue @@ -4,6 +4,15 @@ + + + {{ $t('moderator.show-submission-form') }} + + + + + + import { adminCreateContributionMessage } from '@/graphql/adminCreateContributionMessage' import { adminUpdateContribution } from '@/graphql/adminUpdateContribution' +import TimePicker from '@/components/input/TimePicker' export default { + components: { + TimePicker, + }, name: 'ContributionMessagesFormular', props: { contributionId: { @@ -85,6 +98,9 @@ export default { memo: this.contributionMemo, }, loading: false, + resubmissionDate: null, + resubmissionTime: '00:00', + showResubmissionDate: false, chatOrMemo: 0, // 0 = Chat, 1 = Memo messageType: { DIALOG: 'DIALOG', @@ -93,6 +109,22 @@ export default { } }, methods: { + combineResubmissionDateAndTime() { + if (this.resubmissionDate) { + const formattedDate = new Date(this.resubmissionDate) + console.log('resubmission time: %s', this.resubmissionTime) + const [hours, minutes] = this.resubmissionTime.split(':') + console.log('hours: %s, minutes: %s', hours, minutes) + formattedDate.setHours(parseInt(hours)) + console.log('set hours: %d', formattedDate.getHours()) + formattedDate.setMinutes(parseInt(minutes)) + console.log('set minutes: %d', formattedDate.getMinutes()) + console.log('IOS String: %s', formattedDate.toISOString()) + return formattedDate.toString() + } else { + return null + } + }, onSubmit(mType) { this.loading = true if (this.chatOrMemo === 0) { @@ -103,6 +135,9 @@ export default { contributionId: this.contributionId, message: this.form.text, messageType: mType, + resubmissionAt: this.showResubmissionDate + ? this.combineResubmissionDateAndTime() + : null, }, }) .then((result) => { @@ -141,6 +176,9 @@ export default { onReset(event) { this.form.text = '' this.form.memo = this.contributionMemo + this.showResubmissionDate = false + this.resubmissionDate = null + this.resubmissionTime = '00:00' }, enableMemo() { this.chatOrMemo = 1 diff --git a/admin/src/components/input/TimePicker.vue b/admin/src/components/input/TimePicker.vue new file mode 100644 index 000000000..7a8111f1e --- /dev/null +++ b/admin/src/components/input/TimePicker.vue @@ -0,0 +1,48 @@ + + + diff --git a/admin/src/graphql/adminCreateContributionMessage.js b/admin/src/graphql/adminCreateContributionMessage.js index 66750b833..df7ca5458 100644 --- a/admin/src/graphql/adminCreateContributionMessage.js +++ b/admin/src/graphql/adminCreateContributionMessage.js @@ -1,11 +1,17 @@ import gql from 'graphql-tag' export const adminCreateContributionMessage = gql` - mutation ($contributionId: Int!, $message: String!, $messageType: ContributionMessageType) { + mutation ( + $contributionId: Int! + $message: String! + $messageType: ContributionMessageType + $resubmissionAt: String + ) { adminCreateContributionMessage( contributionId: $contributionId message: $message messageType: $messageType + resubmissionAt: $resubmissionAt ) { id message diff --git a/admin/src/graphql/adminListContributions.js b/admin/src/graphql/adminListContributions.js index e11ebfa05..5daa742b5 100644 --- a/admin/src/graphql/adminListContributions.js +++ b/admin/src/graphql/adminListContributions.js @@ -9,6 +9,7 @@ export const adminListContributions = gql` $userId: Int $query: String $noHashtag: Boolean + $hideResubmission: Boolean ) { adminListContributions( currentPage: $currentPage @@ -18,6 +19,7 @@ export const adminListContributions = gql` userId: $userId query: $query noHashtag: $noHashtag + hideResubmission: $hideResubmission ) { contributionCount contributionList { diff --git a/admin/src/locales/de.json b/admin/src/locales/de.json index 264029cc6..5b6fefc47 100644 --- a/admin/src/locales/de.json +++ b/admin/src/locales/de.json @@ -99,6 +99,8 @@ } }, "hide_details": "Details verbergen", + "hide_resubmission": "Wiedervorlage verbergen", + "hide_resubmission_tooltip": "Verbirgt alle Schöpfungen für die ein Moderator ein Erinnerungsdatum festgelegt hat.", "lastname": "Nachname", "math": { "equals": "=", @@ -111,6 +113,7 @@ "moderator": { "chat": "Chat", "history": "Die Daten wurden geändert. Dies sind die alten Daten.", + "show-submission-form": "warten auf Erinnerung?", "moderator": "Moderator", "notice": "Moderator Notiz", "memo": "Memo", diff --git a/admin/src/locales/en.json b/admin/src/locales/en.json index dbd831bb9..57d375c77 100644 --- a/admin/src/locales/en.json +++ b/admin/src/locales/en.json @@ -99,6 +99,8 @@ } }, "hide_details": "Hide details", + "hide_resubmission": "Hide resubmission", + "hide_resubmission_tooltip": "Hides all creations for which a moderator has set a reminder date.", "lastname": "Lastname", "math": { "equals": "=", @@ -111,6 +113,7 @@ "moderator": { "chat": "Chat", "history": "The data has been changed. This is the old data.", + "show-submission-form": "wait for reminder?", "moderator": "Moderator", "notice": "Moderator note", "memo": "Memo", diff --git a/admin/src/pages/CreationConfirm.vue b/admin/src/pages/CreationConfirm.vue index 3ca382c43..1e6ff8231 100644 --- a/admin/src/pages/CreationConfirm.vue +++ b/admin/src/pages/CreationConfirm.vue @@ -2,10 +2,16 @@