diff --git a/apimail/static/apimail/assets/vue/components/MessageComposer.vue b/apimail/static/apimail/assets/vue/components/MessageComposer.vue index 05fe774b6338569bcf0215aa797ddff6da7633cc..1a4125eebeedfe487b953da5197dacea3642110d 100644 --- a/apimail/static/apimail/assets/vue/components/MessageComposer.vue +++ b/apimail/static/apimail/assets/vue/components/MessageComposer.vue @@ -2,6 +2,20 @@ <div> <h1>Compose email message</h1> <b-form> + <b-form-group + id="from_account" + label="From:" + label-for="input-from-account" + class="mb-4" + > + <b-form-input + id="input-from-account" + v-model="form.from_account" + type="email" + required + > + </b-form-input> + </b-form-group> <b-form-group id="to-recipient" label="To:" @@ -18,17 +32,63 @@ </b-form-input> </b-form-group> <b-form-group - id="message-body" - label="Message:" - label-for="input-message-body" + id="cc" + label="cc:" + label-for="input-cc" + class="mb-4" + > + <b-form-input + id="input-cc" + v-model="form.cc" + type="email" + > + </b-form-input> + </b-form-group> + <b-form-group + id="bcc" + label="bcc:" + label-for="input-bcc" + class="mb-4" > - <b-form-textarea - id="input-message-body" - v-model="form.body" - rows="10" + <b-form-input + id="input-bcc" + v-model="form.bcc" + type="email" > - </b-form-textarea> + </b-form-input> </b-form-group> + <b-form-group + id="subject" + label="Subject:" + label-for="input-subject" + class="mb-4" + > + <b-form-input + id="input-subject" + v-model="form.subject" + > + </b-form-input> + </b-form-group> + <b-row> + <b-col class="col-lg-6"> + <b-form-group + id="message-body" + label="Message:" + label-for="input-message-body" + > + <b-form-textarea + id="input-message-body" + v-model="form.body" + rows="10" + > + </b-form-textarea> + </b-form-group> + </b-col> + <b-col class="col-lg-6"> + <h3>Preview:</h3> + <span v-html="sanitized_body_html"></span> + </b-col> + </b-row> <b-button type="savedraft" variant="warning">Save draft</b-button> <b-button type="send" variant="success">Send</b-button> </b-form> @@ -47,15 +107,32 @@ data () { return { form: { + from_account: '', torecipient: '', + cc: '', + bcc: '', + subject: '', body: '', + sanitized_body_html: '', } } }, + computed: { + sanitized_body_html() { + return this.$sanitize(this.form.body) + } + }, mounted () { if (this.originalmessage) { - this.form.torecipient = this.originalmessage.data.from - this.form.body = '<blockquote>\n' + this.originalmessage.data["body-plain"] + '\n</blockquote>' + this.form.from_account = this.originalmessage.data.To + this.form.torecipient = this.originalmessage.data.sender + this.form.cc = this.originalmessage.data.recipients + this.form.subject = 'Re: ' + this.originalmessage.data.subject + this.form.body = ('\n\n<blockquote>\nOn ' + + this.originalmessage.datetimestamp + + ', ' + this.originalmessage.data.from + ' wrote:\n' + + this.originalmessage.data["body-plain"] + + '\n</blockquote>') } } } diff --git a/apimail/static/apimail/assets/vue/components/MessageContent.vue b/apimail/static/apimail/assets/vue/components/MessageContent.vue index 9287f3a742aa2e0e44d1ff9e429e5dec69f7f7dc..74732f4e6c314db05387f1191041fc091a2e4ac0 100644 --- a/apimail/static/apimail/assets/vue/components/MessageContent.vue +++ b/apimail/static/apimail/assets/vue/components/MessageContent.vue @@ -5,6 +5,7 @@ <b-button v-b-modal.modal-reply>Reply</b-button> <b-modal id="modal-reply" + size="xl" title="Reply" hide-header-close no-close-on-escape