diff --git a/api/src/Kurs.Platform.Application.Contracts/ListForms/GridOptionsDto/GridEditingPopupDto.cs b/api/src/Kurs.Platform.Application.Contracts/ListForms/GridOptionsDto/GridEditingPopupDto.cs
index 29ce446a..3a6db6d7 100644
--- a/api/src/Kurs.Platform.Application.Contracts/ListForms/GridOptionsDto/GridEditingPopupDto.cs
+++ b/api/src/Kurs.Platform.Application.Contracts/ListForms/GridOptionsDto/GridEditingPopupDto.cs
@@ -14,4 +14,7 @@ public class GridEditingPopupDto
/// guncelleme asamasinda popup ekranin disinda bir alana tiklanirsa popup ekran kapansin
///
public bool HideOnOutsideClick { get; set; } = true;
+ /// popup ekranin küçültülüp büyütülebilmesini saglar
+ ///
+ public bool ResizeEnabled { get; set; } = true;
}
diff --git a/api/src/Kurs.Platform.DbMigrator/Seeds/LanguagesData.json b/api/src/Kurs.Platform.DbMigrator/Seeds/LanguagesData.json
index 992075f8..e6f207a5 100644
--- a/api/src/Kurs.Platform.DbMigrator/Seeds/LanguagesData.json
+++ b/api/src/Kurs.Platform.DbMigrator/Seeds/LanguagesData.json
@@ -4837,6 +4837,12 @@
"en": "Full Screen",
"tr": "Tam Ekran"
},
+ {
+ "resourceName": "Platform",
+ "key": "ListForms.ListFormEdit.ResizeEnabled",
+ "en": "Resize Enabled",
+ "tr": "Küçültme/Büyütme İzni"
+ },
{
"resourceName": "Platform",
"key": "ListForms.ListFormEdit.EditingForm",
diff --git a/ui/src/proxy/form/models.ts b/ui/src/proxy/form/models.ts
index db7856d4..814ddffd 100644
--- a/ui/src/proxy/form/models.ts
+++ b/ui/src/proxy/form/models.ts
@@ -426,6 +426,7 @@ export interface GridEditingPopupDto {
height: number
fullScreen: boolean
hideOnOutsideClick: boolean
+ resizeEnabled: boolean
}
export interface GridFilterRowDto {
diff --git a/ui/src/views/admin/listForm/edit/FormTabEdit.tsx b/ui/src/views/admin/listForm/edit/FormTabEdit.tsx
index 495b0d70..b3dc6f83 100644
--- a/ui/src/views/admin/listForm/edit/FormTabEdit.tsx
+++ b/ui/src/views/admin/listForm/edit/FormTabEdit.tsx
@@ -1,13 +1,5 @@
import { Container } from '@/components/shared'
-import {
- Button,
- Card,
- Checkbox,
- FormContainer,
- FormItem,
- Input,
- Select,
-} from '@/components/ui'
+import { Button, Card, Checkbox, FormContainer, FormItem, Input, Select } from '@/components/ui'
import { ListFormEditTabs } from '@/proxy/admin/list-form/options'
import { useStoreState } from '@/store'
import { useLocalization } from '@/utils/hooks/useLocalization'
@@ -348,6 +340,20 @@ function FormTabEdit(props: FormEditProps & { listFormCode: string }) {
component={Checkbox}
/>
+
+
+
{
const [mode, setMode] = useState('view')
const [extraFilters, setExtraFilters] = useState([])
const [gridDto, setGridDto] = useState()
+ const [isPopupFullScreen, setIsPopupFullScreen] = useState(false)
const preloadExportLibs = () => {
import('exceljs')
@@ -262,6 +263,7 @@ const Grid = (props: GridProps) => {
}
setMode('new')
+ setIsPopupFullScreen(gridDto?.gridOptions.editingOptionDto?.popup?.fullScreen ?? false)
for (const colFormat of gridDto?.columnFormats) {
if (!colFormat.fieldName) {
@@ -357,6 +359,7 @@ const Grid = (props: GridProps) => {
function onEditingStart(e: DataGridTypes.EditingStartEvent) {
setMode('edit')
+ setIsPopupFullScreen(gridDto?.gridOptions.editingOptionDto?.popup?.fullScreen ?? false)
const columns = e.component.option('columns') as GridColumnData[]
// FormEditingExtraItem field ise datayı doldur
columns?.forEach((col) => {
@@ -452,6 +455,10 @@ const Grid = (props: GridProps) => {
})),
)
}
+
+ if (gridDto.gridOptions.editingOptionDto?.popup) {
+ setIsPopupFullScreen(gridDto.gridOptions.editingOptionDto?.popup?.fullScreen ?? false)
+ }
}, [gridDto])
useEffect(() => {
@@ -700,9 +707,11 @@ const Grid = (props: GridProps) => {
onExporting={onExporting}
onEditCanceled={() => {
setMode('view')
+ setIsPopupFullScreen(false)
}}
onSaved={() => {
setMode('view')
+ setIsPopupFullScreen(false)
}}
onRowInserted={() => {
props.refreshData?.()
@@ -807,16 +816,32 @@ const Grid = (props: GridProps) => {
}
startEditAction={gridDto.gridOptions.editingOptionDto?.startEditAction}
popup={{
- title: translate('::' + gridDto.gridOptions.editingOptionDto?.popup?.title),
+ title: (mode === 'new' ? '✚ ' : '🖊️ ') + translate('::' + gridDto.gridOptions.editingOptionDto?.popup?.title),
showTitle: gridDto.gridOptions.editingOptionDto?.popup?.showTitle,
hideOnOutsideClick:
gridDto.gridOptions.editingOptionDto?.popup?.hideOnOutsideClick,
width: gridDto.gridOptions.editingOptionDto?.popup?.width,
height: gridDto.gridOptions.editingOptionDto?.popup?.height,
- fullScreen: gridDto.gridOptions.editingOptionDto?.popup?.fullScreen,
+ resizeEnabled: gridDto.gridOptions.editingOptionDto?.popup?.resizeEnabled,
+ fullScreen: isPopupFullScreen,
+ toolbarItems: [
+ {
+ widget: 'dxButton',
+ toolbar: 'top',
+ location: 'after',
+ options: {
+ icon: isPopupFullScreen ? 'collapse' : 'fullscreen',
+ hint: isPopupFullScreen
+ ? translate('::Normal Boyut')
+ : translate('::Tam Ekran'),
+ stylingMode: 'text',
+ onClick: () => setIsPopupFullScreen(!isPopupFullScreen),
+ },
+ },
+ ],
}}
form={{
- colCount: 1,
+ colCount: 1,
onFieldDataChanged: (e) => {
if (e.dataField) {
const formItem = gridDto.gridOptions.editingFormDto
@@ -839,7 +864,9 @@ const Grid = (props: GridProps) => {
.sort((a: any, b: any) => (a.order >= b.order ? 1 : -1))
// Tabbed item'ları grupla
- const tabbedItems = sortedFormDto.filter((e: any) => e.itemType === 'tabbed')
+ const tabbedItems = sortedFormDto.filter(
+ (e: any) => e.itemType === 'tabbed',
+ )
const result: any[] = []
// Helper function: item mapper
@@ -956,11 +983,8 @@ const Grid = (props: GridProps) => {
const maxItemColSpan = Math.max(
...(e.items?.map((i: any) => i.colSpan || 1) || [1]),
)
- const effectiveColCount = Math.max(
- maxItemColSpan,
- e.colCount || 1,
- )
-
+ const effectiveColCount = Math.max(maxItemColSpan, e.colCount || 1)
+
result.push({
itemType: e.itemType,
colCount: effectiveColCount,
@@ -985,7 +1009,7 @@ const Grid = (props: GridProps) => {
// Tabbed için caption OLMAMALI - sadece tabs array içinde title kullan
result.push({
itemType: 'tabbed',
- colCount: 1,
+ colCount: 1,
colSpan: 1,
// caption kullanma! Tabs içindeki title'lar yeterli
tabs: tabbedItems.map((tabbedItem: any) => {
@@ -998,7 +1022,6 @@ const Grid = (props: GridProps) => {
tabbedItem.colCount || 1,
)
-
return {
title: tabbedItem.caption, // Her tab'ın title'ı
colCount: effectiveColCount,