From c09588ac85834b1ebbfbf337cdc89858c9e5534e Mon Sep 17 00:00:00 2001 From: Pranav C Date: Wed, 20 Dec 2023 12:04:54 +0000 Subject: [PATCH] fix: delete filters(webhook) when saving if found any --- .../components/smartsheet/toolbar/ColumnFilter.vue | 13 +++++++++++-- packages/nc-gui/components/webhook/Editor.vue | 12 ++++++------ 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/packages/nc-gui/components/smartsheet/toolbar/ColumnFilter.vue b/packages/nc-gui/components/smartsheet/toolbar/ColumnFilter.vue index 10965c3d53..6593f226a9 100644 --- a/packages/nc-gui/components/smartsheet/toolbar/ColumnFilter.vue +++ b/packages/nc-gui/components/smartsheet/toolbar/ColumnFilter.vue @@ -208,8 +208,17 @@ const filtersCount = computed(() => { }, 0) }) -const applyChanges = async (hookId?: string, _nested = false) => { - await sync(hookId, _nested) +const applyChanges = async (hookId?: string, nested = false, isConditionSupported = true) => { + // if condition is not supported, delete all filters present + // it's used for bulk webhooks with filters since bulk webhooks don't support conditions at the moment + if (!isConditionSupported) { + // iterate in reverse order and delete all filters, reverse order is for getting the correct index + for (let i = localNestedFilters.value.length - 1; i >= 0; i--) { + await deleteFilter(localNestedFilters.value[i], i) + } + } + + await sync(hookId, nested) if (!localNestedFilters.value?.length) return diff --git a/packages/nc-gui/components/webhook/Editor.vue b/packages/nc-gui/components/webhook/Editor.vue index 454c079b37..fc93810b22 100644 --- a/packages/nc-gui/components/webhook/Editor.vue +++ b/packages/nc-gui/components/webhook/Editor.vue @@ -403,6 +403,10 @@ async function loadPluginList() { } } +const isConditionSupport = computed(() => { + return hookRef.eventOperation && !hookRef.eventOperation.includes('bulk') +}) + async function saveHooks() { loading.value = true try { @@ -446,7 +450,7 @@ async function saveHooks() { } if (filterRef.value) { - await filterRef.value.applyChanges(hookRef.id) + await filterRef.value.applyChanges(hookRef.id, false, isConditionSupport.value) } // Webhook details updated successfully @@ -520,10 +524,6 @@ onMounted(async () => { } }, 50) }) - -const isConditionSupport = computed(() => { - return hookRef.eventOperation && !hookRef.eventOperation.includes('bulk') -})