Browse Source

feat: when adding new filter set logical op based on existing siblings

pull/8396/head
Pranav C 2 months ago
parent
commit
3e605e8917
  1. 1
      packages/nc-gui/components/smartsheet/toolbar/ColumnFilter.vue
  2. 4
      packages/nc-gui/composables/useViewFilters.ts

1
packages/nc-gui/components/smartsheet/toolbar/ColumnFilter.vue

@ -421,6 +421,7 @@ const onLogicalOpUpdate = async (filter: Filter, index: number) => {
dropdown-class-name="nc-dropdown-filter-logical-op-group" dropdown-class-name="nc-dropdown-filter-logical-op-group"
@click.stop @click.stop
@change="saveOrUpdate(filter, i)" @change="saveOrUpdate(filter, i)"
:disabled="(i > 1 && !isLogicalOpChangeAllowed)"
> >
<a-select-option v-for="op in logicalOps" :key="op.value" :value="op.value"> <a-select-option v-for="op in logicalOps" :key="op.value" :value="op.value">
<div class="flex items-center w-full justify-between w-full gap-2"> <div class="flex items-center w-full justify-between w-full gap-2">

4
packages/nc-gui/composables/useViewFilters.ts

@ -198,13 +198,15 @@ export function useViewFilters(
} }
const placeholderFilter = (): Filter => { const placeholderFilter = (): Filter => {
const logicalOps = new Set(filters.value.slice(1).map((filter) => filter.logical_op))
return { return {
comparison_op: comparisonOpList(options.value?.[0].uidt as UITypes).filter((compOp) => comparison_op: comparisonOpList(options.value?.[0].uidt as UITypes).filter((compOp) =>
isComparisonOpAllowed({ fk_column_id: options.value?.[0].id }, compOp), isComparisonOpAllowed({ fk_column_id: options.value?.[0].id }, compOp),
)?.[0].value as FilterType['comparison_op'], )?.[0].value as FilterType['comparison_op'],
value: '', value: '',
status: 'create', status: 'create',
logical_op: 'and', logical_op: logicalOps.size === 1 ? logicalOps.values().next().value :'and' ,
} }
} }

Loading…
Cancel
Save