diff --git a/apimail/migrations/0019_auto_20200210_0859.py b/apimail/migrations/0019_auto_20200210_0859.py new file mode 100644 index 0000000000000000000000000000000000000000..eae4874a470dceea549ac63628dd0bf8f63af112 --- /dev/null +++ b/apimail/migrations/0019_auto_20200210_0859.py @@ -0,0 +1,18 @@ +# Generated by Django 2.1.8 on 2020-02-10 07:59 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('apimail', '0018_attachmentfile_data'), + ] + + operations = [ + migrations.AlterField( + model_name='composedmessage', + name='body_text', + field=models.TextField(blank=True), + ), + ] diff --git a/apimail/models/composed_message.py b/apimail/models/composed_message.py index ee5d964cca617d06a313f213aa02f3da68a4fdc6..000c094eaf39517bb2f6692fa52aa3a11dcc17a7 100644 --- a/apimail/models/composed_message.py +++ b/apimail/models/composed_message.py @@ -64,7 +64,7 @@ class ComposedMessage(models.Model): subject = models.CharField(max_length=256) - body_text = models.TextField() + body_text = models.TextField(blank=True) body_html = models.TextField(blank=True) attachment_files = models.ManyToManyField( diff --git a/apimail/static/apimail/assets/vue/components/MessagesTable.vue b/apimail/static/apimail/assets/vue/components/MessagesTable.vue index 49850d1a819885f87ecd04d65cfae537a3cd6da9..4387652d5122eb0684c96a178b0ad4d4e2c533ea 100644 --- a/apimail/static/apimail/assets/vue/components/MessagesTable.vue +++ b/apimail/static/apimail/assets/vue/components/MessagesTable.vue @@ -1,6 +1,31 @@ <template> <div> + <div v-if="accesses" class="m-2 mb-4"> + <b-button + v-b-modal.modal-newdraft + variant="primary" + > + Compose a new message + </b-button> + + <b-modal + id="modal-newdraft" + size="xl" + title="New message" + hide-header-close + no-close-on-escape + no-close-on-backdrop + > + <message-composer></message-composer> + <template v-slot:modal-footer="{ close, }"> + <b-button size="sm" variant="danger" @click="close()"> + Close + </b-button> + </template> + </b-modal> + </div> + <b-modal id="modal-resumedraft" size="xl" @@ -464,7 +489,8 @@ export default { this.fetchTags() this.fetchDrafts() this.$root.$on('bv::modal::hide', (bvEvent, modalId) => { - if (bvEvent.componentId === 'modal-resumedraft' || + if (bvEvent.componentId === 'modal-newdraft' || + bvEvent.componentId === 'modal-resumedraft' || bvEvent.componentId === 'modal-reply' || bvEvent.componentId === 'modal-forward') { this.fetchDrafts()