diff --git a/public/js/components/Messages/Details/NewMessage/Modal.js b/public/js/components/Messages/Details/NewMessage/Modal.js index b23eebbcd..36ee5f114 100644 --- a/public/js/components/Messages/Details/NewMessage/Modal.js +++ b/public/js/components/Messages/Details/NewMessage/Modal.js @@ -56,6 +56,7 @@ export default { previewText: null, previewBody: "", replyData: null, + isSending: false } }, methods: { @@ -113,6 +114,9 @@ export default { data.append('data', JSON.stringify(this.formData)); data.append('ids', JSON.stringify(this.id)); + //for disabling sendButton and show Spinner + this.isSending = true; + return this.$refs.formMessage .call(ApiMessages.sendMessage(this.typeId, data)) .then(response => { @@ -121,6 +125,7 @@ export default { this.resetForm(); }).catch(this.$fhcAlert.handleSystemError) .finally(() => { + this.isSending = false; //just emit if no multitasking if(this.id.length == 1){ @@ -288,6 +293,9 @@ export default { dialog-class=" modal-dialog-scrollable modal-xl modal-msg" header-class="flex-wrap pb-0" body-class="px-3 py-2" + :backdrop="isSending ? 'static' : true" + :keyboard="!isSending" + :noCloseBtn="isSending" @hidden.bs.modal="resetForm" > @@ -476,7 +484,12 @@ export default { - + diff --git a/public/js/components/Messages/Details/NewMessage/NewDiv.js b/public/js/components/Messages/Details/NewMessage/NewDiv.js index 00b4e92a8..6a0dfa222 100644 --- a/public/js/components/Messages/Details/NewMessage/NewDiv.js +++ b/public/js/components/Messages/Details/NewMessage/NewDiv.js @@ -55,6 +55,7 @@ export default { previewBody: "", replyData: null, messageSent: false, + isSending: false } }, methods: { @@ -104,16 +105,21 @@ export default { data.append('data', JSON.stringify(this.formData)); data.append('ids', JSON.stringify(this.id)); + //for disabling sendButton and show Spinner + this.isSending = true; + return this.$api .call(ApiMessages.sendMessage(this.typeId, data)) .then(response => { - if(this.openMode == "inSamePage") + if(this.openMode == "inSamePage") { this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSent')); + } this.hideTemplate(); this.resetForm(); this.messageSent = true; }).catch(this.$fhcAlert.handleSystemError) .finally(() => { + this.isSending = false; if(this.openMode == "inSamePage" && this.id.length == 1 ){ this.$emit('reloadTable'); } @@ -413,7 +419,12 @@ export default { - +