diff --git a/admin/src/components/ContributionMessages/ContributionMessagesFormular.vue b/admin/src/components/ContributionMessages/ContributionMessagesFormular.vue index c9c285eef..3a5d6e0b8 100644 --- a/admin/src/components/ContributionMessages/ContributionMessagesFormular.vue +++ b/admin/src/components/ContributionMessages/ContributionMessagesFormular.vue @@ -38,10 +38,12 @@ export default { form: { text: '', }, + loading: false, } }, methods: { onSubmit(event) { + this.loading = true this.$apollo .mutate({ mutation: adminCreateContributionMessage, @@ -55,9 +57,11 @@ export default { this.$emit('update-state', this.contributionId) this.form.text = '' this.toastSuccess(this.$t('message.request')) + this.loading = false }) .catch((error) => { this.toastError(error.message) + this.loading = false }) }, onReset(event) { @@ -66,10 +70,7 @@ export default { }, computed: { disabled() { - if (this.form.text !== '') { - return false - } - return true + return this.form.text === '' || this.loading }, }, } diff --git a/backend/Dockerfile b/backend/Dockerfile index 6225a4cd7..c09e5aaf8 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -98,10 +98,18 @@ COPY --from=build ${DOCKER_WORKDIR}/../database/build ../database/build # We also copy the node_modules express and serve-static for the run script COPY --from=build ${DOCKER_WORKDIR}/node_modules ./node_modules COPY --from=build ${DOCKER_WORKDIR}/../database/node_modules ../database/node_modules + # Copy static files # COPY --from=build ${DOCKER_WORKDIR}/public ./public # Copy package.json for script definitions (lock file should not be needed) COPY --from=build ${DOCKER_WORKDIR}/package.json ./package.json +# Copy tsconfig.json to provide alias path definitions +COPY --from=build ${DOCKER_WORKDIR}/tsconfig.json ./tsconfig.json +# Copy log4js-config.json to provide log configuration +COPY --from=build ${DOCKER_WORKDIR}/log4js-config.json ./log4js-config.json +# Copy memonic type since its referenced in the sources +# TODO: remove +COPY --from=build ${DOCKER_WORKDIR}/src/config/mnemonic.uncompressed_buffer13116.txt ./src/config/mnemonic.uncompressed_buffer13116.txt # Copy run scripts run/ # COPY --from=build ${DOCKER_WORKDIR}/run ./run diff --git a/frontend/src/components/ContributionMessages/ContributionMessagesFormular.vue b/frontend/src/components/ContributionMessages/ContributionMessagesFormular.vue index c601de4f5..8667f7a0f 100644 --- a/frontend/src/components/ContributionMessages/ContributionMessagesFormular.vue +++ b/frontend/src/components/ContributionMessages/ContributionMessagesFormular.vue @@ -38,10 +38,12 @@ export default { form: { text: '', }, + isSubmitting: false, } }, methods: { onSubmit() { + this.isSubmitting = true this.$apollo .mutate({ mutation: createContributionMessage, @@ -55,9 +57,11 @@ export default { this.$emit('update-state', this.contributionId) this.form.text = '' this.toastSuccess(this.$t('message.reply')) + this.isSubmitting = false }) .catch((error) => { this.toastError(error.message) + this.isSubmitting = false }) }, onReset() { @@ -66,10 +70,7 @@ export default { }, computed: { disabled() { - if (this.form.text !== '') { - return false - } - return true + return this.form.text === '' || this.isSubmitting }, }, }