From cb4b7988c503bbfb9e2290106092f75e48b73fce Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Wed, 23 Oct 2024 15:06:57 +0100 Subject: [PATCH] Update usages of queryUI and ensure processSearchFilters isn't called with nullish values --- .../SetupPanel/AutomationBlockSetup.svelte | 2 +- .../buttons/TableFilterButton.svelte | 4 +-- .../buttons/grid/GridFilterButton.svelte | 2 ++ .../builder/src/stores/builder/components.js | 2 +- .../builder/src/stores/builder/viewsV2.js | 27 +------------------ .../grid/stores/datasources/viewV2.js | 18 +++---------- 6 files changed, 10 insertions(+), 45 deletions(-) diff --git a/packages/builder/src/components/automation/SetupPanel/AutomationBlockSetup.svelte b/packages/builder/src/components/automation/SetupPanel/AutomationBlockSetup.svelte index cbac1bf2ff..28872dcace 100644 --- a/packages/builder/src/components/automation/SetupPanel/AutomationBlockSetup.svelte +++ b/packages/builder/src/components/automation/SetupPanel/AutomationBlockSetup.svelte @@ -798,7 +798,7 @@ break } } - return utils.processSearchFilters(filters) + return utils.processSearchFilters(filters || []) } function saveFilters(key) { diff --git a/packages/builder/src/components/backend/DataTable/buttons/TableFilterButton.svelte b/packages/builder/src/components/backend/DataTable/buttons/TableFilterButton.svelte index e616e27467..68d2ad4447 100644 --- a/packages/builder/src/components/backend/DataTable/buttons/TableFilterButton.svelte +++ b/packages/builder/src/components/backend/DataTable/buttons/TableFilterButton.svelte @@ -17,7 +17,7 @@ let drawer - $: localFilters = utils.processSearchFilters(filters) + $: localFilters = utils.processSearchFilters(filters || []) $: schemaFields = search.getFields( $tables.list, @@ -61,7 +61,7 @@ title="Filtering" on:drawerHide on:drawerShow={() => { - localFilters = utils.processSearchFilters(filters) + localFilters = utils.processSearchFilters(filters || []) }} forceModal > diff --git a/packages/builder/src/components/backend/DataTable/buttons/grid/GridFilterButton.svelte b/packages/builder/src/components/backend/DataTable/buttons/grid/GridFilterButton.svelte index f927f84876..ea083add87 100644 --- a/packages/builder/src/components/backend/DataTable/buttons/grid/GridFilterButton.svelte +++ b/packages/builder/src/components/backend/DataTable/buttons/grid/GridFilterButton.svelte @@ -7,6 +7,8 @@ const onFilter = e => { filter.set(e.detail || []) } + + $: console.log($filter) {#key $datasource} diff --git a/packages/builder/src/stores/builder/components.js b/packages/builder/src/stores/builder/components.js index 6c2c438f0c..166122c885 100644 --- a/packages/builder/src/stores/builder/components.js +++ b/packages/builder/src/stores/builder/components.js @@ -210,7 +210,7 @@ export class ComponentStore extends BudiStore { if (isLegacy) { const processedSetting = utils.processSearchFilters( - enrichedComponent[setting.key] + enrichedComponent[setting.key] || [] ) enrichedComponent[setting.key] = processedSetting migrated = true diff --git a/packages/builder/src/stores/builder/viewsV2.js b/packages/builder/src/stores/builder/viewsV2.js index 3d67686344..70af03e75f 100644 --- a/packages/builder/src/stores/builder/viewsV2.js +++ b/packages/builder/src/stores/builder/viewsV2.js @@ -3,29 +3,6 @@ import { tables } from "./tables" import { API } from "api" import { dataFilters } from "@budibase/shared-core" -function convertToSearchFilters(view) { - // convert from UISearchFilter type - if (view?.query) { - return { - ...view, - queryUI: view.query, - query: dataFilters.buildQuery(view.query), - } - } - return view -} - -function convertToUISearchFilter(view) { - if (view?.queryUI) { - return { - ...view, - query: view.queryUI, - queryUI: undefined, - } - } - return view -} - export function createViewsV2Store() { const store = writable({ selectedViewId: null, @@ -36,7 +13,7 @@ export function createViewsV2Store() { const views = Object.values(table?.views || {}).filter(view => { return view.version === 2 }) - list = list.concat(views.map(view => convertToUISearchFilter(view))) + list = list.concat(views) }) return { ...$store, @@ -58,7 +35,6 @@ export function createViewsV2Store() { } const create = async view => { - view = convertToSearchFilters(view) const savedViewResponse = await API.viewV2.create(view) const savedView = savedViewResponse.data replaceView(savedView.id, savedView) @@ -66,7 +42,6 @@ export function createViewsV2Store() { } const save = async view => { - view = convertToSearchFilters(view) const res = await API.viewV2.update(view) const savedView = res?.data replaceView(view.id, savedView) diff --git a/packages/frontend-core/src/components/grid/stores/datasources/viewV2.js b/packages/frontend-core/src/components/grid/stores/datasources/viewV2.js index 56a7479b44..281443cbc3 100644 --- a/packages/frontend-core/src/components/grid/stores/datasources/viewV2.js +++ b/packages/frontend-core/src/components/grid/stores/datasources/viewV2.js @@ -1,25 +1,13 @@ import { get } from "svelte/store" import { dataFilters } from "@budibase/shared-core" -function convertToSearchFilters(view) { - // convert from SearchFilterGroup type - if (view?.query) { - return { - ...view, - queryUI: view.query, - query: dataFilters.buildQuery(view.query), - } - } - return view -} - const SuppressErrors = true export const createActions = context => { const { API, datasource, columns } = context const saveDefinition = async newDefinition => { - await API.viewV2.update(convertToSearchFilters(newDefinition)) + await API.viewV2.update(newDefinition) } const saveRow = async row => { @@ -138,7 +126,7 @@ export const initialise = context => { } // Only override filter state if we don't have an initial filter if (!get(initialFilter)) { - filter.set($definition.queryUI || $definition.query) + filter.set($definition.queryUI) } }) ) @@ -197,7 +185,7 @@ export const initialise = context => { if (JSON.stringify($filter) !== JSON.stringify($view.queryUI)) { await datasource.actions.saveDefinition({ ...$view, - query: $filter, + queryUI: $filter, }) // Refresh data since view definition changed