Disable click events when duplicating content for protocol step and result [SCI-10609]

This commit is contained in:
wandji20 2024-04-17 10:20:58 +01:00
parent a916bd1641
commit ef3ef8bb7b
3 changed files with 9 additions and 2 deletions

View file

@ -5,7 +5,7 @@
@dragenter.prevent="dragEnter($event)" @dragenter.prevent="dragEnter($event)"
@dragover.prevent @dragover.prevent
:data-id="step.id" :data-id="step.id"
:class="{ 'draging-file': dragingFile, 'editing-name': editingName, 'locked': !urls.update_url }" :class="{ 'draging-file': dragingFile, 'editing-name': editingName, 'locked': !urls.update_url, 'pointer-events-none': addingContent }"
> >
<div class="drop-message" @dragleave.prevent="!showFileModal ? dragingFile = false : null"> <div class="drop-message" @dragleave.prevent="!showFileModal ? dragingFile = false : null">
{{ i18n.t('protocols.steps.drop_message', { position: step.attributes.position + 1 }) }} {{ i18n.t('protocols.steps.drop_message', { position: step.attributes.position + 1 }) }}
@ -116,6 +116,7 @@
:reorderElementUrl="elements.length > 1 ? urls.reorder_elements_url : ''" :reorderElementUrl="elements.length > 1 ? urls.reorder_elements_url : ''"
:assignableMyModuleId="assignableMyModuleId" :assignableMyModuleId="assignableMyModuleId"
:isNew="element.isNew" :isNew="element.isNew"
@component:adding-content="($event) => addingContent = $event"
@component:delete="deleteElement" @component:delete="deleteElement"
@update="updateElement" @update="updateElement"
@reorder="openReorderModal" @reorder="openReorderModal"
@ -201,6 +202,7 @@
attachments: [], attachments: [],
attachmentsReady: false, attachmentsReady: false,
confirmingDelete: false, confirmingDelete: false,
addingContent: false,
showFileModal: false, showFileModal: false,
showCommentsSidebar: false, showCommentsSidebar: false,
dragingFile: false, dragingFile: false,

View file

@ -5,7 +5,7 @@
@dragenter.prevent="dragEnter($event)" @dragenter.prevent="dragEnter($event)"
@dragover.prevent @dragover.prevent
:data-id="result.id" :data-id="result.id"
:class="{ 'bg-sn-super-light-blue': dragingFile, 'bg-white': !dragingFile, 'locked': locked }" :class="{ 'bg-sn-super-light-blue': dragingFile, 'bg-white': !dragingFile, 'locked': locked, 'pointer-events-none': addingContent }"
> >
<div class="text-xl items-center flex flex-col text-sn-blue h-full justify-center left-0 absolute top-0 w-full" <div class="text-xl items-center flex flex-col text-sn-blue h-full justify-center left-0 absolute top-0 w-full"
v-if="dragingFile" v-if="dragingFile"
@ -110,6 +110,7 @@
:reorderElementUrl="elements.length > 1 ? urls.reorder_elements_url : ''" :reorderElementUrl="elements.length > 1 ? urls.reorder_elements_url : ''"
:assignableMyModuleId="result.attributes.my_module_id" :assignableMyModuleId="result.attributes.my_module_id"
:isNew="element.isNew" :isNew="element.isNew"
@component:adding-content="($event) => addingContent = $event"
@component:delete="deleteElement" @component:delete="deleteElement"
@update="updateElement" @update="updateElement"
@reorder="openReorderModal" @reorder="openReorderModal"
@ -164,6 +165,7 @@ export default {
elements: [], elements: [],
attachments: [], attachments: [],
attachmentsReady: false, attachmentsReady: false,
addingContent: false,
showFileModal: false, showFileModal: false,
dragingFile: false, dragingFile: false,
wellPlateOptions: [ wellPlateOptions: [

View file

@ -3,11 +3,14 @@
export default { export default {
methods: { methods: {
duplicateElement() { duplicateElement() {
this.$emit('component:adding-content', true);
$.post(this.element.attributes.orderable.urls.duplicate_url, (result) => { $.post(this.element.attributes.orderable.urls.duplicate_url, (result) => {
this.$emit('component:insert', result.data); this.$emit('component:insert', result.data);
HelperModule.flashAlertMsg(this.i18n.t('protocols.steps.component_duplicated'), 'success'); HelperModule.flashAlertMsg(this.i18n.t('protocols.steps.component_duplicated'), 'success');
}).fail(() => { }).fail(() => {
HelperModule.flashAlertMsg(this.i18n.t('protocols.steps.component_duplication_failed'), 'danger'); HelperModule.flashAlertMsg(this.i18n.t('protocols.steps.component_duplication_failed'), 'danger');
}).always(() => {
this.$emit('component:adding-content', false);
}); });
} }
} }