diff --git a/api/src/Sozsoft.Platform.DbMigrator/Seeds/LanguagesData.json b/api/src/Sozsoft.Platform.DbMigrator/Seeds/LanguagesData.json index c2aeea6..e9c5f7b 100644 --- a/api/src/Sozsoft.Platform.DbMigrator/Seeds/LanguagesData.json +++ b/api/src/Sozsoft.Platform.DbMigrator/Seeds/LanguagesData.json @@ -3227,6 +3227,12 @@ "key": "ListForms.ListForm.GridStateSaved", "en": "Grid State Saved", "tr": "Tablo Yapısı Kaydedildi" + }, + { + "resourceName": "Platform", + "key": "ListForms.ListForm.FitColumns", + "en": "Fit Columns", + "tr": "Sütunları Sığdır" }, { "resourceName": "Platform", diff --git a/ui/src/views/list/useFilters.tsx b/ui/src/views/list/useFilters.tsx index ed58c65..8faa821 100644 --- a/ui/src/views/list/useFilters.tsx +++ b/ui/src/views/list/useFilters.tsx @@ -102,6 +102,28 @@ const setToolbarItemItems = (grid: GridInstance, itemName: string, items: any[]) } } +const fitColumns = (grid: GridInstance) => { + if (!isDataGrid(grid)) { + return + } + + grid.beginUpdate() + const visibleColumns = grid.getVisibleColumns() as any[] + visibleColumns.forEach((column) => { + if (!column?.dataField || column?.type === 'buttons') { + return + } + + // Clear explicit width so DataGrid can recalculate based on content. + grid.columnOption(column.dataField, 'width', undefined) + grid.columnOption(column.dataField, 'minWidth', undefined) + }) + grid.option('columnAutoWidth', true) + grid.endUpdate() + grid.updateDimensions() + grid.repaint() +} + const clearGridFilter = (grid: GridInstance) => { if (isDataGrid(grid)) { grid.clearFilter() @@ -253,6 +275,14 @@ const useFilters = ({ }) } + if (grdOpt?.columnOptionDto?.columnAutoWidth) { + menus.push({ + text: translate('::ListForms.ListForm.FitColumns'), + id: 'fitColumns', + icon: 'columnchooser', + }) + } + if (checkPermission(gridDto?.gridOptions.permissionDto.i)) { menus.push({ text: translate('::ListForms.ListForm.ImportManager'), @@ -295,8 +325,15 @@ const useFilters = ({ // aktif filtreyi kaydetmek icin ilgili ekrani ac setIsCreateUpdateModalOpen(true) } else if (itemData.id === 'deleteFilter') { - // Kayitli bir filtreyi silmek icin ilgili ekrani ac + // aktif filtreyi kaydetmek icin ilgili ekrani ac setIsDeleteModalOpen(true) + } else if (itemData.id === 'fitColumns') { + // Tüm sütunları fitlemeye sığacak şekilde yeniden boyutlandır + const grid = gridRef.current?.instance() + if (!grid) { + return + } + fitColumns(grid) } else if (itemData.id === 'openManage') { window.open( ROUTES_ENUM.protected.saas.listFormManagement.edit.replace(