diff --git a/.gitignore b/.gitignore index cb42ae62f..c3df1e740 100644 --- a/.gitignore +++ b/.gitignore @@ -38,3 +38,6 @@ modoboa.kdev4 test_project/cert.crt test_project/cert.key test_project/envfile + +# Docker +docker/collections diff --git a/docker-compose.yml b/docker-compose.yml index 66c79a7d4..287d7ef01 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -108,6 +108,7 @@ services: dockerfile: docker/Dockerfile.radicale.dev volumes: - ./docker/radicale_config:/etc/radicale + - ./docker/collections:/collections policyd: container_name: modoboa_policyd diff --git a/frontend/src/api/webmail.js b/frontend/src/api/webmail.js index 6c625129f..1aaf56849 100644 --- a/frontend/src/api/webmail.js +++ b/frontend/src/api/webmail.js @@ -8,6 +8,26 @@ export default { } return repository.get('/webmail/mailboxes/', { params }) }, + getUserMailboxQuota(mailbox) { + const params = { mailbox } + return repository.get('/webmail/mailboxes/quota/', { params }) + }, + createUserMailbox(body) { + return repository.post('/webmail/mailboxes/', body) + }, + renameUserMailbox(body) { + return repository.post('/webmail/mailboxes/rename/', body) + }, + compressUserMailbox(body) { + return repository.post('/webmail/mailboxes/compress/', body) + }, + deleteUserMailbox(body) { + return repository.post('/webmail/mailboxes/delete/', body) + }, + emptyUserMailbox(mailbox) { + const body = { name: mailbox } + return repository.post('/webmail/mailboxes/empty/', body) + }, getMailboxEmails(mailbox, options) { const params = { mailbox, @@ -73,4 +93,29 @@ export default { sendEmail(body) { return repository.post('/webmail/emails/send/', body) }, + createComposeSession() { + return repository.post('/webmail/compose-sessions/') + }, + getAllowedSenders() { + return repository.get('/webmail/compose-sessions/allowed_senders/') + }, + getUploadedAttachments(sessionUid) { + return repository.get( + `/webmail/compose-sessions/${sessionUid}/attachments/` + ) + }, + uploadAttachment(sessionUid, body) { + return repository.post( + `/webmail/compose-sessions/${sessionUid}/attachments/`, + body, + { + headers: { 'Content-Type': 'multipart/form-data' }, + } + ) + }, + removeAttachment(sessionUid, name) { + return repository.delete( + `/webmail/compose-sessions/${sessionUid}/attachments/${name}/` + ) + }, } diff --git a/frontend/src/components/tools/HtmlEditor.vue b/frontend/src/components/tools/HtmlEditor.vue index abd89fa31..79070f5fd 100644 --- a/frontend/src/components/tools/HtmlEditor.vue +++ b/frontend/src/components/tools/HtmlEditor.vue @@ -1,6 +1,7 @@ @@ -143,6 +144,7 @@ watch(