From 89993775fff55add6a79d3dae756a284ce62f19a Mon Sep 17 00:00:00 2001 From: wandji20 Date: Mon, 1 Apr 2024 12:53:45 +0100 Subject: [PATCH 1/2] Fix Card selector issues [SCI-10553] --- app/javascript/vue/experiments/card.vue | 1 + app/javascript/vue/projects/card.vue | 2 ++ .../vue/shared/datatable/mixins/card_selector.js | 15 +++++++++++---- app/javascript/vue/shared/datatable/table.vue | 2 ++ 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/app/javascript/vue/experiments/card.vue b/app/javascript/vue/experiments/card.vue index ecd6cb73f..0a1be59ab 100644 --- a/app/javascript/vue/experiments/card.vue +++ b/app/javascript/vue/experiments/card.vue @@ -6,6 +6,7 @@ diff --git a/app/javascript/vue/projects/card.vue b/app/javascript/vue/projects/card.vue index 640a7a01e..27f3482a2 100644 --- a/app/javascript/vue/projects/card.vue +++ b/app/javascript/vue/projects/card.vue @@ -7,6 +7,7 @@ @@ -49,6 +50,7 @@ diff --git a/app/javascript/vue/shared/datatable/mixins/card_selector.js b/app/javascript/vue/shared/datatable/mixins/card_selector.js index 6165d2896..85b50e3f9 100644 --- a/app/javascript/vue/shared/datatable/mixins/card_selector.js +++ b/app/javascript/vue/shared/datatable/mixins/card_selector.js @@ -1,13 +1,20 @@ export default { + computed: { + cardSelected() { + const item = window.dtComponent.selectedRows.find((i) => (i.code === this.params.code)); + + return !!item; + } + }, methods: { itemSelected() { - const item = this.dtComponent.selectedRows.find((i) => (i.id === this.params.id)); + const item = window.dtComponent.selectedRows.find((i) => (i.code === this.params.code)); if (item) { - this.dtComponent.selectedRows = this.dtComponent.selectedRows - .filter((i) => (i.id !== this.params.id)); + window.dtComponent.selectedRows = window.dtComponent.selectedRows + .filter((i) => (i.code !== this.params.code)); } else { - this.dtComponent.selectedRows.push(this.params); + window.dtComponent.selectedRows.push(this.params); } }, }, diff --git a/app/javascript/vue/shared/datatable/table.vue b/app/javascript/vue/shared/datatable/table.vue index 4c7697200..806292fd5 100644 --- a/app/javascript/vue/shared/datatable/table.vue +++ b/app/javascript/vue/shared/datatable/table.vue @@ -335,9 +335,11 @@ export default { this.setGridColsClass(); window.addEventListener('resize', this.resize); + window.dtComponent = this; }, beforeDestroy() { delete window.resetGridColumns; + delete window.dtComponent; window.removeEventListener('resize', this.resize); }, methods: { From 82b114871a2cc6717cc3b897112fcc2c8389f056 Mon Sep 17 00:00:00 2001 From: wandji20 Date: Tue, 2 Apr 2024 09:40:05 +0100 Subject: [PATCH 2/2] Remove unnecessary window function [SCI-10553] --- .../vue/shared/datatable/mixins/card_selector.js | 8 ++++---- app/javascript/vue/shared/datatable/table.vue | 2 -- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/app/javascript/vue/shared/datatable/mixins/card_selector.js b/app/javascript/vue/shared/datatable/mixins/card_selector.js index 85b50e3f9..031c1520e 100644 --- a/app/javascript/vue/shared/datatable/mixins/card_selector.js +++ b/app/javascript/vue/shared/datatable/mixins/card_selector.js @@ -1,20 +1,20 @@ export default { computed: { cardSelected() { - const item = window.dtComponent.selectedRows.find((i) => (i.code === this.params.code)); + const item = this.dtComponent.selectedRows.find((i) => (i.code === this.params.code)); return !!item; } }, methods: { itemSelected() { - const item = window.dtComponent.selectedRows.find((i) => (i.code === this.params.code)); + const item = this.dtComponent.selectedRows.find((i) => (i.code === this.params.code)); if (item) { - window.dtComponent.selectedRows = window.dtComponent.selectedRows + this.dtComponent.selectedRows = this.dtComponent.selectedRows .filter((i) => (i.code !== this.params.code)); } else { - window.dtComponent.selectedRows.push(this.params); + this.dtComponent.selectedRows.push(this.params); } }, }, diff --git a/app/javascript/vue/shared/datatable/table.vue b/app/javascript/vue/shared/datatable/table.vue index 806292fd5..4c7697200 100644 --- a/app/javascript/vue/shared/datatable/table.vue +++ b/app/javascript/vue/shared/datatable/table.vue @@ -335,11 +335,9 @@ export default { this.setGridColsClass(); window.addEventListener('resize', this.resize); - window.dtComponent = this; }, beforeDestroy() { delete window.resetGridColumns; - delete window.dtComponent; window.removeEventListener('resize', this.resize); }, methods: {