diff --git a/ui/src/views/list/Card.tsx b/ui/src/views/list/Card.tsx index dcc42d71..5d9dc8ef 100644 --- a/ui/src/views/list/Card.tsx +++ b/ui/src/views/list/Card.tsx @@ -120,10 +120,35 @@ const Card = (props: CardProps) => { setCurrentPage(1) // Reset to first page when sorting } - const handleSelectAll = (checked: boolean) => { + const handleSelectAll = async (checked: boolean) => { if (checked) { const keyField = gridDto?.gridOptions.keyFieldName - if (keyField) { + const selectAllMode = gridDto?.gridOptions?.selectionDto?.selectAllMode?.toLowerCase() + + if (!keyField) return + + if (selectAllMode === 'allpages') { + // Tüm sayfalardan tüm kayıtları al + if (!gridDataSource) return + + setLoading(true) + try { + const loadOptions = { + skip: 0, + take: totalCount, // Tüm kayıtları al + requireTotalCount: false, + } + + const res: any = await gridDataSource.load(loadOptions) + const allKeys = new Set(res.data.map((row: any) => row[keyField])) + setSelectedKeys(allKeys) + } catch (err) { + console.error('Select all pages error:', err) + } finally { + setLoading(false) + } + } else { + // Sadece mevcut sayfadaki kayıtları seç (page veya default) const allKeys = new Set(data.map(row => row[keyField])) setSelectedKeys(allKeys) } @@ -410,8 +435,14 @@ const Card = (props: CardProps) => { useEffect(() => { if (gridDataSource) { loadData() + + // selectionMode = page ise sayfa değiştiğinde seçimi temizle + const selectAllMode = gridDto?.gridOptions?.selectionDto?.selectAllMode?.toLowerCase() + if (selectAllMode === 'page') { + setSelectedKeys(new Set()) + } } - }, [gridDataSource, loadData]) + }, [gridDataSource, loadData, currentPage, gridDto]) useEffect(() => { if (!gridDto) return @@ -428,10 +459,6 @@ const Card = (props: CardProps) => { useEffect(() => { if (data.length > 0) { window.scrollTo({ top: 0, behavior: 'smooth' }) - - if (data.length < 6) { - setLayoutCount(data.length) - } } }, [data]) @@ -453,7 +480,12 @@ const Card = (props: CardProps) => { {selectionMode === 'multiple' && gridDto?.gridOptions?.selectionDto?.allowSelectAll && (