diff --git a/api/src/Kurs.Platform.DbMigrator/Seeds/SeederData.json b/api/src/Kurs.Platform.DbMigrator/Seeds/SeederData.json index bd61493c..0f6ce311 100644 --- a/api/src/Kurs.Platform.DbMigrator/Seeds/SeederData.json +++ b/api/src/Kurs.Platform.DbMigrator/Seeds/SeederData.json @@ -13431,8 +13431,8 @@ { "resourceName": "Platform", "key": "ListForms.ListFormEdit.SelectionMode", - "en": "Auto Expand All", - "tr": "Mod" + "en": "Selection Mode", + "tr": "Seçim Modu" }, { "resourceName": "Platform", diff --git a/ui/src/shared/useListFormCustomDataSource.ts b/ui/src/shared/useListFormCustomDataSource.ts index 89e6fda5..2c6a5138 100644 --- a/ui/src/shared/useListFormCustomDataSource.ts +++ b/ui/src/shared/useListFormCustomDataSource.ts @@ -82,7 +82,13 @@ const useListFormCustomDataSource = ({ } } } - parameters.filter = JSON.stringify(combinedFilter) + + if (combinedFilter && combinedFilter.length > 0) { + parameters.filter = JSON.stringify(combinedFilter) + } else { + delete parameters.filter // hiç göndermesin + } + //parameters.filter = JSON.stringify(parameters.filter) const response = await dynamicFetch('list-form-select/select', 'GET', parameters) @@ -164,18 +170,25 @@ const useListFormCustomDataSource = ({ group: '', }) + // 1. Default filter'ı al const defaultFilter = searchParams?.get('filter') ? JSON.parse(searchParams.get('filter')!) : null let combinedFilter: any = parameters.filter + + // 2. Eğer hem default hem de grid filter varsa merge et if (defaultFilter && combinedFilter) { combinedFilter = [defaultFilter, 'and', combinedFilter] } else if (defaultFilter) { combinedFilter = defaultFilter } - parameters.filter = JSON.stringify(combinedFilter) + if (combinedFilter && combinedFilter.length > 0) { + parameters.filter = JSON.stringify(combinedFilter) + } else { + delete parameters.filter // hiç göndermesin + } try { const response = await dynamicFetch('list-form-select/select', 'GET', parameters) @@ -193,28 +206,29 @@ const useListFormCustomDataSource = ({ return null } }, - byKey: async (key) => { - const parameters = getLoadOptions( - { key }, - { listFormCode, filter: '', createDeleteQuery: '' }, - ) - parameters.filter = JSON.stringify(parameters.filter) - try { - const response = await dynamicFetch('list-form-select/select', 'GET', parameters) - return response.data.data[0] - } catch (error: any) { - // toast.push( - // - // ByKey error - // {error.toString()} - // , - // { - // placement: 'top-end', - // }, - // ) - return null - } - }, + // byKey: async (key) => { + // const parameters = getLoadOptions( + // { key }, + // { listFormCode, filter: '', createDeleteQuery: '' }, + // ) + + // parameters.filter = JSON.stringify(parameters.filter) + // try { + // const response = await dynamicFetch('list-form-select/select', 'GET', parameters) + // return response.data.data[0] + // } catch (error: any) { + // // toast.push( + // // + // // ByKey error + // // {error.toString()} + // // , + // // { + // // placement: 'top-end', + // // }, + // // ) + // return null + // } + // }, remove: function (key) { if (!gridOptions.deleteServiceAddress) { return diff --git a/ui/src/views/list/Grid.tsx b/ui/src/views/list/Grid.tsx index 24b84c5d..e3410aaf 100644 --- a/ui/src/views/list/Grid.tsx +++ b/ui/src/views/list/Grid.tsx @@ -51,12 +51,13 @@ import { useCallback, useEffect, useRef, useState } from 'react' import { Helmet } from 'react-helmet' import SubForms from '../form/SubForms' import { RowMode, SimpleItemWithColData } from '../form/types' -import { GridColumnData, GridExtraFilterState } from './GridColumnData' +import { GridColumnData } from './GridColumnData' import GridFilterDialogs from './GridFilterDialogs' import { addCss, addJs, controlStyleCondition, + GridExtraFilterState, setFormEditingExtraItemValues, setGridPanelColor, } from './Utils' @@ -540,6 +541,8 @@ const Grid = (props: GridProps) => { } useEffect(() => { + if (gridDto?.gridOptions.extraFilterDto.length === 0) return + if (gridDto?.gridOptions.extraFilterDto) { setExtraFilters( gridDto.gridOptions.extraFilterDto.map((f) => ({ @@ -554,6 +557,7 @@ const Grid = (props: GridProps) => { useEffect(() => { if (!searchParams) return + if (extraFilters.length === 0) return // aktif filtreleri al const activeFilters = extraFilters.filter((f) => f.value) diff --git a/ui/src/views/list/GridColumnData.ts b/ui/src/views/list/GridColumnData.ts index 87adb2ef..f4024977 100644 --- a/ui/src/views/list/GridColumnData.ts +++ b/ui/src/views/list/GridColumnData.ts @@ -1,13 +1,6 @@ import { DataGridTypes } from 'devextreme-react/data-grid' import { ColumnFormatDto, GridBoxOptionsDto, TagBoxOptionsDto } from '../../proxy/form/models' -export interface GridExtraFilterState { - fieldName: string - operator: string - controlType: string - value: string -} - interface IGridColumnData extends DataGridTypes.Column { colData?: ColumnFormatDto extras?: { diff --git a/ui/src/views/list/GridExtraFilterToolbar.tsx b/ui/src/views/list/GridExtraFilterToolbar.tsx index 6875c74d..23fb8d0c 100644 --- a/ui/src/views/list/GridExtraFilterToolbar.tsx +++ b/ui/src/views/list/GridExtraFilterToolbar.tsx @@ -1,5 +1,5 @@ -import { GridExtraFilterState } from './GridColumnData' import { useState } from 'react' +import { GridExtraFilterState } from './Utils' export function GridExtraFilterToolbar({ filters, diff --git a/ui/src/views/list/Utils.ts b/ui/src/views/list/Utils.ts index 595a1ddb..9bec6d96 100644 --- a/ui/src/views/list/Utils.ts +++ b/ui/src/views/list/Utils.ts @@ -2,6 +2,13 @@ import { DataType } from 'devextreme/common' import { PivotGridDataType } from 'devextreme/ui/pivot_grid/data_source' import { MULTIVALUE_DELIMITER } from '../../constants/app.constant' +export interface GridExtraFilterState { + fieldName: string + operator: string + controlType: string + value: string +} + // sayfaya dinamik olarak css style ekler export function addCss(css: string) { if (css.startsWith('http') || css.startsWith('/')) {