diff --git a/scipost_django/apimail/static/apimail/assets/vue/components/MessageComposer.vue b/scipost_django/apimail/static/apimail/assets/vue/components/MessageComposer.vue index c7584db06bfadbb7c8ab93bd531aba8320e5e7d7..d8b8a27f69716917692ef3ed50b2b09a2be133c4 100644 --- a/scipost_django/apimail/static/apimail/assets/vue/components/MessageComposer.vue +++ b/scipost_django/apimail/static/apimail/assets/vue/components/MessageComposer.vue @@ -3,44 +3,36 @@ <div class="row"> <div class="col-lg-6"> <template v-if="!markReadySuccessful"> - <b-button - type="savedraft" - class="text-white mx-1 px-2 py-1" - variant="warning" + <button + class="btn btn-warning text-white mx-1 px-2 py-1" @click.stop.prevent="saveMessage('draft')" :disabled="saveDraftSuccessful" > Save draft - </b-button> + </button> <span v-if="!allEmailsValid"> - <b-button - type="validateemails" - class="text-white mx-1 px-2 py-1" - variant="warning" + <button + class="btn btn-warning text-white mx-1 px-2 py-1" @click.stop.prevent="validateAllEmails()" :disabled="emailValidationHasRun || (!form.to_recipient && form.cc_recipients.length == 0 && form.bcc_recipients == 0)" > Validate emails - </b-button> + </button> </span> <span v-else> - <b-button - type="validateemails" - class="text-white mx-1 px-2 py-1" - variant="success" + <button + class="btn btn-success text-white mx-1 px-2 py-1" > All emails are validated - </b-button> + </button> </span> - <b-button - type="send" - class="text-white px-2 py-1 mx-1 my-2" - variant="primary" + <button + class="btn btn-primary text-white px-2 py-1 mx-1 my-2" :disabled="!emailValidationHasRun || !allEmailsValid" @click.stop.prevent="saveMessage('ready')" > Send - </b-button> + </button> </template> <template v-if="markReadySuccessful"> <p class="m-2 p-2 bg-success text-white"> @@ -92,7 +84,7 @@ > </b-form-input> <b-input-group-append> - <b-button type="submit" size="sm" variant="primary">Add</b-button> + <button type="submit" class="btn btn-sm btn-primary">Add</button> </b-input-group-append> </b-input-group> <b-input-group> @@ -187,144 +179,159 @@ <editor-menu-bar :editor="editor" v-slot="{ commands, isActive }"> <div class="menubar"> - <b-button - v-b-tooltip.hover title="boldface" - :pressed.sync="isActive.bold()" + <button + data-bs-toggle="tooltip" + title="boldface" + :class="isActive.bold() ? 'active' : ''" @click.stop.prevent="commands.bold" > <svg width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-type-bold" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> <path d="M8.21 13c2.106 0 3.412-1.087 3.412-2.823 0-1.306-.984-2.283-2.324-2.386v-.055a2.176 2.176 0 0 0 1.852-2.14c0-1.51-1.162-2.46-3.014-2.46H3.843V13H8.21zM5.908 4.674h1.696c.963 0 1.517.451 1.517 1.244 0 .834-.629 1.32-1.73 1.32H5.908V4.673zm0 6.788V8.598h1.73c1.217 0 1.88.492 1.88 1.415 0 .943-.643 1.449-1.832 1.449H5.907z"/> </svg> - </b-button> - <b-button - v-b-tooltip.hover title="italics" - :pressed.sync="isActive.italic()" + </button> + <button + data-bs-toggle="tooltip" + title="italics" + :class="isActive.italic() ? 'active' : ''" @click.stop.prevent="commands.italic" > <svg width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-type-italic" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> <path d="M7.991 11.674L9.53 4.455c.123-.595.246-.71 1.347-.807l.11-.52H7.211l-.11.52c1.06.096 1.128.212 1.005.807L6.57 11.674c-.123.595-.246.71-1.346.806l-.11.52h3.774l.11-.52c-1.06-.095-1.129-.211-1.006-.806z"/> </svg> - </b-button> - <b-button - v-b-tooltip.hover title="strikethrough" - :pressed.sync="isActive.strike()" + </button> + <button + data-bs-toggle="tooltip" + title="strikethrough" + :class="isActive.strike() ? 'active' : ''" @click.stop.prevent="commands.strike" > <svg width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-type-strikethrough" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> <path d="M8.527 13.164c-2.153 0-3.589-1.107-3.705-2.81h1.23c.144 1.06 1.129 1.703 2.544 1.703 1.34 0 2.31-.705 2.31-1.675 0-.827-.547-1.374-1.914-1.675L8.046 8.5h3.45c.468.437.675.994.675 1.697 0 1.826-1.436 2.967-3.644 2.967zM6.602 6.5H5.167a2.776 2.776 0 0 1-.099-.76c0-1.627 1.436-2.768 3.48-2.768 1.969 0 3.39 1.175 3.445 2.85h-1.23c-.11-1.08-.964-1.743-2.25-1.743-1.23 0-2.18.602-2.18 1.607 0 .31.083.581.27.814z"/> <path fill-rule="evenodd" d="M15 8.5H1v-1h14v1z"/> </svg> - </b-button> - <b-button - v-b-tooltip.hover title="underline" - :pressed.sync="isActive.underline()" + </button> + <button + data-bs-toggle="tooltip" + title="underline" + :class="isActive.underline() ? 'active' : ''" @click.stop.prevent="commands.underline" > <svg width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-type-underline" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> <path d="M5.313 3.136h-1.23V9.54c0 2.105 1.47 3.623 3.917 3.623s3.917-1.518 3.917-3.623V3.136h-1.23v6.323c0 1.49-.978 2.57-2.687 2.57-1.709 0-2.687-1.08-2.687-2.57V3.136z"/> <path fill-rule="evenodd" d="M12.5 15h-9v-1h9v1z"/> </svg> - </b-button> - <b-button - v-b-tooltip.hover title="inline code" - :pressed.sync="isActive.code()" + </button> + <button + data-bs-toggle="tooltip" + title="inline code" + :class="isActive.code() ? 'active' : ''" @click.stop.prevent="commands.code" > <svg width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-code" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" d="M5.854 4.146a.5.5 0 0 1 0 .708L2.707 8l3.147 3.146a.5.5 0 0 1-.708.708l-3.5-3.5a.5.5 0 0 1 0-.708l3.5-3.5a.5.5 0 0 1 .708 0zm4.292 0a.5.5 0 0 0 0 .708L13.293 8l-3.147 3.146a.5.5 0 0 0 .708.708l3.5-3.5a.5.5 0 0 0 0-.708l-3.5-3.5a.5.5 0 0 0-.708 0z"/> </svg> - </b-button> - <b-button - class="menubar__b-button" - v-b-tooltip.hover title="paragraph" - :pressed.sync="isActive.paragraph()" + </button> + <button + data-bs-toggle="tooltip" + title="paragraph" + :class="isActive.paragraph() ? 'active' : ''" @click.stop.prevent="commands.paragraph" > <svg width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-paragraph" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" d="M8 1h4.5a.5.5 0 0 1 0 1H11v12.5a.5.5 0 0 1-1 0V2H9v12.5a.5.5 0 0 1-1 0V1z"/> <path d="M9 1v8H7a4 4 0 1 1 0-8h2z"/> </svg> - </b-button> - <b-button - v-b-tooltip.hover title="level 1 heading" - :pressed.sync="isActive.heading({ level: 1 })" + </button> + <button + data-bs-toggle="tooltip" + title="level 1 heading" + :class="isActive.heading({ level: 1 }) ? 'active' : ''" @click.stop.prevent="commands.heading({ level: 1 })" > H1 - </b-button> - <b-button - v-b-tooltip.hover title="level 2 heading" - :pressed.sync="isActive.heading({ level: 2 })" + </button> + <button + data-bs-toggle="tooltip" + title="level 2 heading" + :class="isActive.heading({ level: 2 }) ? 'active' : ''" @click.stop.prevent="commands.heading({ level: 2 })" > H2 - </b-button> - <b-button - v-b-tooltip.hover title="level 3 heading" - :pressed.sync="isActive.heading({ level: 3 })" + </button> + <button + data-bs-toggle="tooltip" + title="level 3 heading" + :class="isActive.heading({ level: 3 }) ? 'active' : ''" @click.stop.prevent="commands.heading({ level: 3 })" > H3 - </b-button> - <b-button - v-b-tooltip.hover title="bulleted list" - :pressed.sync="isActive.bullet_list()" + </button> + <button + data-bs-toggle="tooltip" + title="bulleted list" + :class="isActive.bullet_list() ? 'active' : ''" @click.stop.prevent="commands.bullet_list" > <svg width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-list-ul" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" d="M5 11.5a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 0 1h-9a.5.5 0 0 1-.5-.5zm0-4a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 0 1h-9a.5.5 0 0 1-.5-.5zm0-4a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 0 1h-9a.5.5 0 0 1-.5-.5zm-3 1a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm0 4a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm0 4a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"/> </svg> - </b-button> - <b-button - v-b-tooltip.hover title="numbered list" - :pressed.sync="isActive.ordered_list()" + </button> + <button + data-bs-toggle="tooltip" + title="numbered list" + :class="isActive.ordered_list() ? 'active' : ''" @click.stop.prevent="commands.ordered_list" > <svg width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-list-ol" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" d="M5 11.5a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 0 1h-9a.5.5 0 0 1-.5-.5zm0-4a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 0 1h-9a.5.5 0 0 1-.5-.5zm0-4a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 0 1h-9a.5.5 0 0 1-.5-.5z"/> <path d="M1.713 11.865v-.474H2c.217 0 .363-.137.363-.317 0-.185-.158-.31-.361-.31-.223 0-.367.152-.373.31h-.59c.016-.467.373-.787.986-.787.588-.002.954.291.957.703a.595.595 0 0 1-.492.594v.033a.615.615 0 0 1 .569.631c.003.533-.502.8-1.051.8-.656 0-1-.37-1.008-.794h.582c.008.178.186.306.422.309.254 0 .424-.145.422-.35-.002-.195-.155-.348-.414-.348h-.3zm-.004-4.699h-.604v-.035c0-.408.295-.844.958-.844.583 0 .96.326.96.756 0 .389-.257.617-.476.848l-.537.572v.03h1.054V9H1.143v-.395l.957-.99c.138-.142.293-.304.293-.508 0-.18-.147-.32-.342-.32a.33.33 0 0 0-.342.338v.041zM2.564 5h-.635V2.924h-.031l-.598.42v-.567l.629-.443h.635V5z"/> </svg> - </b-button> - <b-button - v-b-tooltip.hover title="blockquote" - :pressed.sync="isActive.blockquote()" + </button> + <button + data-bs-toggle="tooltip" + title="blockquote" + :class="isActive.blockquote() ? 'active' : ''" @click.stop.prevent="commands.blockquote" > <svg width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-blockquote-left" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" d="M2 3.5a.5.5 0 0 1 .5-.5h11a.5.5 0 0 1 0 1h-11a.5.5 0 0 1-.5-.5zm5 3a.5.5 0 0 1 .5-.5h6a.5.5 0 0 1 0 1h-6a.5.5 0 0 1-.5-.5zm0 3a.5.5 0 0 1 .5-.5h6a.5.5 0 0 1 0 1h-6a.5.5 0 0 1-.5-.5zm-5 3a.5.5 0 0 1 .5-.5h11a.5.5 0 0 1 0 1h-11a.5.5 0 0 1-.5-.5z"/> <path d="M3.734 6.352a6.586 6.586 0 0 0-.445.275 1.94 1.94 0 0 0-.346.299 1.38 1.38 0 0 0-.252.369c-.058.129-.1.295-.123.498h.282c.242 0 .431.06.568.182.14.117.21.29.21.521a.697.697 0 0 1-.187.463c-.12.14-.289.21-.503.21-.336 0-.577-.108-.721-.327C2.072 8.619 2 8.328 2 7.969c0-.254.055-.485.164-.692.11-.21.242-.398.398-.562.16-.168.33-.31.51-.428.18-.117.33-.213.451-.287l.211.352zm2.168 0a6.588 6.588 0 0 0-.445.275 1.94 1.94 0 0 0-.346.299c-.113.12-.199.246-.257.375a1.75 1.75 0 0 0-.118.492h.282c.242 0 .431.06.568.182.14.117.21.29.21.521a.697.697 0 0 1-.187.463c-.12.14-.289.21-.504.21-.335 0-.576-.108-.72-.327-.145-.223-.217-.514-.217-.873 0-.254.055-.485.164-.692.11-.21.242-.398.398-.562.16-.168.33-.31.51-.428.18-.117.33-.213.451-.287l.211.352z"/> </svg> - </b-button> - <b-button - v-b-tooltip.hover title="code block" - :pressed.sync="isActive.code_block()" + </button> + <button + data-bs-toggle="tooltip" + title="code block" + :class="isActive.code_block() ? 'active' : ''" @click.stop.prevent="commands.code_block" > <svg width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-code" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" d="M5.854 4.146a.5.5 0 0 1 0 .708L2.707 8l3.147 3.146a.5.5 0 0 1-.708.708l-3.5-3.5a.5.5 0 0 1 0-.708l3.5-3.5a.5.5 0 0 1 .708 0zm4.292 0a.5.5 0 0 0 0 .708L13.293 8l-3.147 3.146a.5.5 0 0 0 .708.708l3.5-3.5a.5.5 0 0 0 0-.708l-3.5-3.5a.5.5 0 0 0-.708 0z"/> </svg> block - </b-button> - <b-button - v-b-tooltip.hover title="horizontal rule" + </button> + <button + data-bs-toggle="tooltip" + title="horizontal rule" @click.stop.prevent="commands.horizontal_rule"> hr - </b-button> - <b-button - v-b-tooltip.hover title="undo" + </button> + <button + data-bs-toggle="tooltip" + title="undo" @click.stop.prevent="commands.undo"> <svg width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-arrow-counterclockwise" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" d="M8 3a5 5 0 1 1-4.546 2.914.5.5 0 0 0-.908-.417A6 6 0 1 0 8 2v1z"/> <path d="M8 4.466V.534a.25.25 0 0 0-.41-.192L5.23 2.308a.25.25 0 0 0 0 .384l2.36 1.966A.25.25 0 0 0 8 4.466z"/> </svg> - </b-button> - <b-button - v-b-tooltip.hover title="redo" + </button> + <button + data-bs-toggle="tooltip" + title="redo" @click.stop.prevent="commands.redo"> <svg width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-arrow-clockwise" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" d="M8 3a5 5 0 1 0 4.546 2.914.5.5 0 0 1 .908-.417A6 6 0 1 1 8 2v1z"/> <path d="M8 4.466V.534a.25.25 0 0 1 .41-.192l2.36 1.966c.12.1.12.284 0 .384L8.41 4.658A.25.25 0 0 1 8 4.466z"/> </svg> - </b-button> + </button> </div> </editor-menu-bar> <editor-content class="editor__content m-1 p-1" :editor="editor" /> diff --git a/scipost_django/apimail/static/apimail/assets/vue/messages_table.js b/scipost_django/apimail/static/apimail/assets/vue/messages_table.js index 644b46ac9f227b51b7d86a38d053e6f37aeb0ec1..435164aa7d0c7464027250da3452ed61aa994989 100644 --- a/scipost_django/apimail/static/apimail/assets/vue/messages_table.js +++ b/scipost_django/apimail/static/apimail/assets/vue/messages_table.js @@ -69,8 +69,7 @@ Vue.use(TablePlugin) Vue.use(TabsPlugin) // Toggle Vue.directive('b-toggle', VBToggle) -// Tooltips -Vue.directive('b-tooltip', VBTooltip) + // Style //import 'bootstrap/dist/css/bootstrap.css';