diff options
author | Greta <gretadoci@gmail.com> | 2022-05-02 14:14:55 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-05-02 14:14:55 +0300 |
commit | 26cba466ae43a85470f369ee8a10866e735328ee (patch) | |
tree | 09059d1099b313434cbaeb646f0e293253c5a975 /src | |
parent | 5669f9f5f762c472f57005fd9955a31ce0b94257 (diff) | |
parent | 368a36959857b567e280dd190a45187d9db6a179 (diff) |
Merge pull request #6338 from nextcloud/fix/fix-draft-outbox
Fix discard message on outbox and improve the discard new message
Diffstat (limited to 'src')
-rw-r--r-- | src/components/Composer.vue | 16 | ||||
-rw-r--r-- | src/components/NewMessageModal.vue | 21 |
2 files changed, 22 insertions, 15 deletions
diff --git a/src/components/Composer.vue b/src/components/Composer.vue index 2156e83c2..30e055b8b 100644 --- a/src/components/Composer.vue +++ b/src/components/Composer.vue @@ -317,10 +317,6 @@ :hint="t('mail', 'Sending …')" role="alert" class="sending-hint" /> - <Loading v-else-if="state === STATES.DISCARDING" :hint="t('mail', 'Discarding …')" class="emptycontent" /> - <EmptyContent v-else-if="state === STATES.DISCARDED" icon="icon-mail"> - <h2>{{ t('mail', 'Draft was discarded!') }}</h2> - </EmptyContent> <div v-else-if="state === STATES.ERROR" class="emptycontent" role="alert"> <h2>{{ t('mail', 'Error sending your message') }}</h2> <p v-if="errorText"> @@ -1055,16 +1051,8 @@ export default { return `${alias.name} <${alias.emailAddress}>` }, async discardDraft() { - this.state = STATES.DISCARDING - let id - try { - id = await this.draftsPromise - await this.$store.dispatch('deleteMessage', { id }) - } catch (err) { - logger.error('Could not delete message with id ' + id) - } - this.state = STATES.DISCARDED - this.$emit('close') + const id = await this.draftsPromise + this.$emit('discard-draft', id) }, /** * Whether the date is acceptable diff --git a/src/components/NewMessageModal.vue b/src/components/NewMessageModal.vue index 5cecef04d..41f7d30da 100644 --- a/src/components/NewMessageModal.vue +++ b/src/components/NewMessageModal.vue @@ -17,6 +17,7 @@ :draft="saveDraft" :send="sendMessage" :forwarded-messages="forwardedMessages" + @discard-draft="discardDraft" @close="$emit('close')" /> </Modal> </template> @@ -26,7 +27,7 @@ import logger from '../logger' import { toPlain } from '../util/text' import { saveDraft } from '../service/MessageService' import Composer from './Composer' -import { showError, showUndo } from '@nextcloud/dialogs' +import { showError, showSuccess, showUndo } from '@nextcloud/dialogs' import { translate as t } from '@nextcloud/l10n' import { UNDO_DELAY } from '../store/constants' @@ -189,6 +190,24 @@ export default { return `"${recipient.label}" <${recipient.email}>` } }, + async discardDraft(id) { + const isOutbox = this.composerMessage.type === 'outbox' + if (isOutbox) { + id = this.composerMessage.data.id + } + this.$emit('close') + try { + if (isOutbox) { + await this.$store.dispatch('outbox/deleteMessage', { id }) + } else { + await this.$store.dispatch('deleteMessage', { id }) + } + showSuccess(t('mail', 'Message discarded')) + } catch (error) { + console.error(error) + showError(t('mail', 'Could not discard message')) + } + }, }, } |