From 0522c35198eb7ca867f56a5edd273c7275cd1cee Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Mon, 13 Feb 2023 20:03:20 +0800 Subject: [PATCH] feat(nc-gui): show empty & null based on showNullAndEmptyInFilter --- packages/nc-gui/composables/useViewFilters.ts | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/packages/nc-gui/composables/useViewFilters.ts b/packages/nc-gui/composables/useViewFilters.ts index 04b99dc032..d95e360a92 100644 --- a/packages/nc-gui/composables/useViewFilters.ts +++ b/packages/nc-gui/composables/useViewFilters.ts @@ -11,6 +11,7 @@ import { message, ref, useDebounceFn, + useGlobal, useMetas, useNuxtApp, useUIPermission, @@ -33,6 +34,8 @@ export function useViewFilters( const { nestedFilters } = useSmartsheetStoreOrThrow() + const { showNullAndEmptyInFilter } = useGlobal() + const isPublic = inject(IsPublicInj, ref(false)) const { $api, $e } = useNuxtApp() @@ -105,12 +108,14 @@ export function useViewFilters( excludedTypes?: UITypes[] }, ) => { - // include allowed values only if selected column type matches - if (compOp.includedTypes) { + if (['empty', 'notempty', 'null', 'notnull'].includes(compOp.value)) { + // for these 4 comparisonOp, show them based on `showNullAndEmptyInFilter` in Project Settings + return showNullAndEmptyInFilter.value + } else if (compOp.includedTypes) { + // include allowed values only if selected column type matches return filter.fk_column_id && compOp.includedTypes.includes(types.value[filter.fk_column_id]) - } - // include not allowed values only if selected column type not matches - else if (compOp.excludedTypes) { + } else if (compOp.excludedTypes) { + // include not allowed values only if selected column type not matches return filter.fk_column_id && !compOp.excludedTypes.includes(types.value[filter.fk_column_id]) } return true