From 12e483f44a2a5016a222b4a9d2e3f4ffd7aaab40 Mon Sep 17 00:00:00 2001 From: "J.-S. Caux" <J.S.Caux@uva.nl> Date: Wed, 29 Jan 2020 20:41:46 +0100 Subject: [PATCH] Basic save draft / mark ready for sending working --- .../assets/vue/components/MessageComposer.vue | 50 +++++++++++++++---- 1 file changed, 40 insertions(+), 10 deletions(-) diff --git a/apimail/static/apimail/assets/vue/components/MessageComposer.vue b/apimail/static/apimail/assets/vue/components/MessageComposer.vue index d33116c6d..915f3f11f 100644 --- a/apimail/static/apimail/assets/vue/components/MessageComposer.vue +++ b/apimail/static/apimail/assets/vue/components/MessageComposer.vue @@ -100,21 +100,40 @@ ></span> </b-col> </b-row> - <b-button type="savedraft" variant="warning" @click.stop.prevent="saveDraft"> - Save draft - </b-button> - <b-button type="send" variant="success">Send</b-button> + <template v-if="!markReadySuccessful"> + <b-button + type="savedraft" + variant="warning" + @click.stop.prevent="saveMessage('draft')" + > + Save draft + </b-button> + <b-button + type="send" + variant="success" + @click.stop.prevent="saveMessage('ready')" + > + Queue for sending + </b-button> + </template> <template v-if="saveDraftSuccessful"> <p class="m-2 p-2 bg-success text-white"> The message draft was successfully saved. </p> </template> - <template v-else-if="saveDraftSuccessful === false"> + <template v-else-if="markReadySuccessful"> + <p class="m-2 p-2 bg-success text-white"> + The message was successfully queued for sending. + </p> + </template> + <template v-else-if="saveDraftSuccessful === false || markReadySuccessful === false"> <p class="m-2 p-2 bg-danger text-white"> The server responded with an error, please check and try again </p> </template> + <span v-if="draftLastSaved" size="sm"> [last saved: {{ draftLastSaved }}]</span> + </b-form> </div> </template> @@ -152,6 +171,7 @@ export default { response_body_json: null, saveDraftSuccessful: null, draftLastSaved: null, + markReadySuccessful: null, } }, computed: { @@ -166,7 +186,7 @@ export default { .then(data => this.from_account_accesses = data.results) .catch(error => console.error(error)) }, - saveDraft () { + saveMessage (status) { fetch('/mail/api/composed_message/create', { method: 'POST', @@ -175,6 +195,7 @@ export default { "Content-Type": "application/json; charset=utf-8" }, body: JSON.stringify({ + 'status': status, 'from_account': this.form.from_account, 'to_recipient': this.form.torecipient, // 'cc_recipients': this.form.cc, @@ -187,12 +208,21 @@ export default { .then(response => { this.response = response.clone() if (response.ok) { - this.saveDraftSuccessful = true - this.draftLastSaved = Date().toString() + if (status === 'draft') { + this.saveDraftSuccessful = true + this.draftLastSaved = Date().toString() + } + if (status === 'ready') { + this.markReadySuccessful = true + } } if (!response.ok) { - this.saveDraftSuccessful = false - // throw new Error('HTTP error, status = ' + response.status); + if (status === 'draft') { + this.saveDraftSuccessful = false + } + if (status === 'ready') { + this.markReadySuccessful = false + } } return response.json() }) -- GitLab