Merge pull request #14954 from Budibase/fix-filter-count-conditions
Fix issue counting number of filters when legacy structure is used
This commit is contained in:
commit
52b48db5eb
|
@ -5,13 +5,13 @@
|
||||||
Button,
|
Button,
|
||||||
Drawer,
|
Drawer,
|
||||||
DrawerContent,
|
DrawerContent,
|
||||||
Helpers,
|
|
||||||
} from "@budibase/bbui"
|
} from "@budibase/bbui"
|
||||||
import { createEventDispatcher } from "svelte"
|
import { createEventDispatcher } from "svelte"
|
||||||
import { getDatasourceForProvider, getSchemaForDatasource } from "dataBinding"
|
import { getDatasourceForProvider, getSchemaForDatasource } from "dataBinding"
|
||||||
import FilterBuilder from "./FilterBuilder.svelte"
|
import FilterBuilder from "./FilterBuilder.svelte"
|
||||||
import { tables, selectedScreen } from "stores/builder"
|
import { tables, selectedScreen } from "stores/builder"
|
||||||
import { search } from "@budibase/frontend-core"
|
import { search } from "@budibase/frontend-core"
|
||||||
|
import { utils } from "@budibase/shared-core"
|
||||||
|
|
||||||
const dispatch = createEventDispatcher()
|
const dispatch = createEventDispatcher()
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
let drawer
|
let drawer
|
||||||
|
|
||||||
$: localFilters = Helpers.cloneDeep(value)
|
$: localFilters = value
|
||||||
$: datasource = getDatasourceForProvider($selectedScreen, componentInstance)
|
$: datasource = getDatasourceForProvider($selectedScreen, componentInstance)
|
||||||
$: dsSchema = getSchemaForDatasource($selectedScreen, datasource)?.schema
|
$: dsSchema = getSchemaForDatasource($selectedScreen, datasource)?.schema
|
||||||
$: schemaFields = search.getFields(
|
$: schemaFields = search.getFields(
|
||||||
|
@ -30,8 +30,7 @@
|
||||||
Object.values(schema || dsSchema || {}),
|
Object.values(schema || dsSchema || {}),
|
||||||
{ allowLinks: true }
|
{ allowLinks: true }
|
||||||
)
|
)
|
||||||
|
$: text = getText(value)
|
||||||
$: text = getText(value?.groups)
|
|
||||||
|
|
||||||
async function saveFilter() {
|
async function saveFilter() {
|
||||||
dispatch("change", localFilters)
|
dispatch("change", localFilters)
|
||||||
|
@ -39,11 +38,14 @@
|
||||||
drawer.hide()
|
drawer.hide()
|
||||||
}
|
}
|
||||||
|
|
||||||
const getText = (filterGroups = []) => {
|
const getText = filters => {
|
||||||
const allFilters = filterGroups.reduce((acc, group) => {
|
if (Array.isArray(filters)) {
|
||||||
|
filters = utils.processSearchFilters(filters)
|
||||||
|
}
|
||||||
|
const groups = filters?.groups || []
|
||||||
|
const allFilters = groups.reduce((acc, group) => {
|
||||||
return (acc += group.filters.filter(filter => filter.field).length)
|
return (acc += group.filters.filter(filter => filter.field).length)
|
||||||
}, 0)
|
}, 0)
|
||||||
|
|
||||||
if (allFilters === 0) {
|
if (allFilters === 0) {
|
||||||
return "No filters set"
|
return "No filters set"
|
||||||
} else {
|
} else {
|
||||||
|
@ -62,7 +64,7 @@
|
||||||
on:drawerShow
|
on:drawerShow
|
||||||
on:drawerShow={() => {
|
on:drawerShow={() => {
|
||||||
// Reset to the currently available value.
|
// Reset to the currently available value.
|
||||||
localFilters = Helpers.cloneDeep(value)
|
localFilters = value
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Button cta slot="buttons" on:click={saveFilter}>Save</Button>
|
<Button cta slot="buttons" on:click={saveFilter}>Save</Button>
|
||||||
|
|
Loading…
Reference in New Issue