Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/mail.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorgreta <gretadoci@gmail.com>2022-05-02 18:52:29 +0300
committerRichard Steinmetz <richard@steinmetz.cloud>2022-05-09 13:00:03 +0300
commita4b7ca3feec30ff0302fdbf1f6fcbdd3708f1954 (patch)
treea613a4fe0e0bf75f822877fe4ecfe82ae92107d3 /src
parent68badc6ef8e9f07d9e758dbfd38532b69112988d (diff)
Stop message from sending while editing
Signed-off-by: greta <gretadoci@gmail.com> Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
Diffstat (limited to 'src')
-rw-r--r--src/components/NewMessageModal.vue5
-rw-r--r--src/store/actions.js30
-rw-r--r--src/store/mutations.js3
-rw-r--r--src/views/Home.vue7
4 files changed, 38 insertions, 7 deletions
diff --git a/src/components/NewMessageModal.vue b/src/components/NewMessageModal.vue
index faa1d3362..765c24951 100644
--- a/src/components/NewMessageModal.vue
+++ b/src/components/NewMessageModal.vue
@@ -2,7 +2,7 @@
<Modal
size="normal"
:title="modalTitle"
- @close="$emit('close')">
+ @close="$emit('close', { restoreOriginalSendAt: true })">
<Composer
:from-account="composerData.accountId"
:to="composerData.to"
@@ -17,8 +17,7 @@
:draft="saveDraft"
:send="sendMessage"
:forwarded-messages="forwardedMessages"
- @discard-draft="discardDraft"
- @close="$emit('close')" />
+ @discard-draft="discardDraft" />
</Modal>
</template>
<script>
diff --git a/src/store/actions.js b/src/store/actions.js
index 8f3ee9bf2..77de3ef08 100644
--- a/src/store/actions.js
+++ b/src/store/actions.js
@@ -84,7 +84,7 @@ import { updateAccount as updateSieveAccount } from '../service/SieveService'
import { PAGE_SIZE, UNIFIED_INBOX_ID } from './constants'
import * as ThreadService from '../service/ThreadService'
import { getPrioritySearchQueries } from '../util/priorityInbox'
-import { html, plain } from '../util/text'
+import { html, plain, toPlain } from '../util/text'
import Axios from '@nextcloud/axios'
import { generateUrl } from '@nextcloud/router'
import { showWarning } from '@nextcloud/dialogs'
@@ -357,14 +357,40 @@ export default {
}
}
+ // Stop schedule when editing outbox messages and backup sendAt timestamp
+ let originalSendAt
+ if (type === 'outbox' && data.id && data.sendAt) {
+ originalSendAt = data.sendAt
+ const message = {
+ ...data,
+ body: data.isHtml ? data.body.value : toPlain(data.body).value,
+ }
+ await dispatch('outbox/stopMessage', { message })
+ }
+
commit('showMessageComposer', {
type,
data,
forwardedMessages,
templateMessageId,
+ originalSendAt,
})
},
- async closeMessageComposer({ commit }) {
+ async closeMessageComposer({ commit, dispatch, getters }, { restoreOriginalSendAt }) {
+ // Restore original sendAt timestamp when requested
+ const message = getters.composerMessage
+ if (restoreOriginalSendAt && message.type === 'outbox' && message.options?.originalSendAt) {
+ const body = message.data.body
+ await dispatch('outbox/updateMessage', {
+ id: message.data.id,
+ message: {
+ ...message.data,
+ body: message.data.isHtml ? body.value : toPlain(body),
+ sendAt: message.options.originalSendAt,
+ },
+ })
+ }
+
commit('hideMessageComposer')
},
async fetchEnvelope({ commit, getters }, id) {
diff --git a/src/store/mutations.js b/src/store/mutations.js
index 0b1a0fdb5..c6fec5724 100644
--- a/src/store/mutations.js
+++ b/src/store/mutations.js
@@ -181,12 +181,13 @@ export default {
}
removeRec(account)
},
- showMessageComposer(state, { type, data, forwardedMessages }) {
+ showMessageComposer(state, { type, data, forwardedMessages, originalSendAt }) {
Vue.set(state, 'newMessage', {
type,
data,
options: {
forwardedMessages,
+ originalSendAt,
},
})
},
diff --git a/src/views/Home.vue b/src/views/Home.vue
index 33bd93940..eee619c34 100644
--- a/src/views/Home.vue
+++ b/src/views/Home.vue
@@ -5,7 +5,9 @@
<MailboxThread v-else-if="activeAccount"
:account="activeAccount"
:mailbox="activeMailbox" />
- <NewMessageModal v-if="$store.getters.showMessageComposer" @close="$store.dispatch('closeMessageComposer')" />
+ <NewMessageModal
+ v-if="$store.getters.showMessageComposer"
+ @close="onCloseModal" />
</Content>
</template>
@@ -101,6 +103,9 @@ export default {
},
})
},
+ async onCloseModal(opts) {
+ await this.$store.dispatch('closeMessageComposer', opts ?? {})
+ },
},
}