Do not load message from Drafts folder when replying.

fix #3939
This commit is contained in:
Antoine Nguyen
2026-02-24 11:26:35 +01:00
parent 3af49cff5d
commit 0359bb1b87
3 changed files with 14 additions and 5 deletions
@@ -202,6 +202,7 @@ import { ref, watch } from 'vue'
import { useRoute, useRouter } from 'vue-router'
import { useGettext } from 'vue3-gettext'
import { useAuthStore, useBusStore } from '@/stores'
import constants from '@/constants.json'
import debounce from 'debounce'
import AttachmentsDialog from '@/components/webmail/AttachmentsDialog'
import BodyEditor from '@/components/webmail/BodyEditor'
@@ -356,9 +357,12 @@ const lookForContacts = debounce(async (search) => {
}, 500)
const initialize = async (body) => {
if (route.query.mailid) {
if (route.params.mailbox === constants.DRAFTS_FOLDER && route.query.mailid) {
// Load draft
const draft = await api.getEmailContent('Drafts', route.query.mailid)
const draft = await api.getEmailContent(
constants.DRAFTS_FOLDER,
route.query.mailid
)
form.value.sender = draft.data.from_address.address
if (draft.data.to?.length) {
form.value.to = draft.data.to.map((rcpt) => rcpt.address)
@@ -430,7 +434,10 @@ watch(
)
if (!route.query.uid) {
api.createComposeSession(route.query.mailid).then((resp) => {
const args =
route.query.mailbox === constants.DRAFTS_FOLDER ? [route.query.mailid] : []
console.log(args)
api.createComposeSession(...args).then((resp) => {
const query = { ...route.query, uid: resp.data.uid }
attachmentCount.value = resp.data.attachments?.length || 0
router.push({ name: route.name, query })
+2 -1
View File
@@ -4,5 +4,6 @@
"SUPER_ADMIN": "SuperAdmins",
"RESELLER": "Resellers",
"DOMAIN_ADMIN": "DomainAdmins",
"USER": "SimpleUsers"
"USER": "SimpleUsers",
"DRAFTS_FOLDER": "Drafts"
}
+2 -1
View File
@@ -54,7 +54,7 @@
>
</v-btn>
<v-btn
v-if="route.query.mailbox === 'Drafts'"
v-if="route.query.mailbox === constants.DRAFTS_FOLDER"
class="ml-2"
variant="tonal"
icon="mdi-pencil"
@@ -177,6 +177,7 @@ import { nextTick, onMounted, onUnmounted, ref, watch } from 'vue'
import { useRoute, useRouter } from 'vue-router'
import { useGettext } from 'vue3-gettext'
import { useBusStore } from '@/stores'
import constants from '@/constants.json'
import api from '@/api/webmail'
import ContactCard from '@/components/webmail/ContactCard.vue'