From 5dbd8a0f3f6da399a81ca26f2a6148ac2325a9d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sedat=20=C3=96zt=C3=BCrk?= Date: Sat, 25 Apr 2026 21:12:31 +0300 Subject: [PATCH] =?UTF-8?q?ListFormField=20i=C3=A7in=20AllowAdding=20?= =?UTF-8?q?=C3=B6zelli=C4=9Fi=20eklendi?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ListForms/Dto/ColumnFormatDto.cs | 1 + .../GridOptionsDto/GridEditingDto.cs | 2 +- .../ListForms/Wizard/ListFormWizardDto.cs | 2 +- .../ListFormFieldsAppService.cs | 3 ++ .../ListForms/ListFormWizardAppService.cs | 2 +- .../Seeds/LanguagesData.json | 12 ++++++++ .../Seeds/ListFormSeeder_DefaultJsons.cs | 4 +-- .../WizardConsts.cs | 4 +-- .../Entities/Tenant/ListForm/ListFormField.cs | 3 +- .../EntityFrameworkCore/PlatformDbContext.cs | 1 + ....cs => 20260425160411_Initial.Designer.cs} | 7 ++++- ...2_Initial.cs => 20260425160411_Initial.cs} | 1 + .../PlatformDbContextModelSnapshot.cs | 5 ++++ ui/src/proxy/admin/list-form/models.ts | 2 +- ui/src/proxy/form/models.ts | 3 +- ui/src/views/admin/listForm/Wizard.tsx | 4 +-- ui/src/views/admin/listForm/WizardStep1.tsx | 2 +- ui/src/views/admin/listForm/WizardStep2.tsx | 8 ++--- ui/src/views/admin/listForm/edit/FormEdit.tsx | 30 +++++++++---------- .../views/admin/listForm/edit/FormTabEdit.tsx | 12 ++++---- .../edit/form-fields/FormFieldTabOptions.tsx | 4 +++ ui/src/views/form/FormDevExpress.tsx | 6 +++- ui/src/views/form/types.ts | 2 ++ ui/src/views/form/useFormData.tsx | 14 ++++++--- ui/src/views/list/GanttView.tsx | 2 +- ui/src/views/list/Grid.tsx | 13 ++++---- ui/src/views/list/Tree.tsx | 2 +- ui/src/views/list/useListFormColumns.ts | 8 +++-- ui/src/views/list/useToolbar.tsx | 2 +- 29 files changed, 106 insertions(+), 55 deletions(-) rename api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/{20260330120142_Initial.Designer.cs => 20260425160411_Initial.Designer.cs} (99%) rename api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/{20260330120142_Initial.cs => 20260425160411_Initial.cs} (99%) diff --git a/api/src/Sozsoft.Platform.Application.Contracts/ListForms/Dto/ColumnFormatDto.cs b/api/src/Sozsoft.Platform.Application.Contracts/ListForms/Dto/ColumnFormatDto.cs index cb29364..db089b1 100644 --- a/api/src/Sozsoft.Platform.Application.Contracts/ListForms/Dto/ColumnFormatDto.cs +++ b/api/src/Sozsoft.Platform.Application.Contracts/ListForms/Dto/ColumnFormatDto.cs @@ -80,6 +80,7 @@ public class ColumnFormatDto : AuditedEntityDto /// public bool AllowSearch { get; set; } = false; public bool AllowEditing { get; set; } = true; + public bool AllowAdding { get; set; } = true; public string ColumnCssClass { get; set; } // Sutuna css sinif ismi //[TextArea] public string ColumnCssValue { get; set; } // Sutuna ait css sinifinin icerigi diff --git a/api/src/Sozsoft.Platform.Application.Contracts/ListForms/GridOptionsDto/GridEditingDto.cs b/api/src/Sozsoft.Platform.Application.Contracts/ListForms/GridOptionsDto/GridEditingDto.cs index 2d30756..991645f 100644 --- a/api/src/Sozsoft.Platform.Application.Contracts/ListForms/GridOptionsDto/GridEditingDto.cs +++ b/api/src/Sozsoft.Platform.Application.Contracts/ListForms/GridOptionsDto/GridEditingDto.cs @@ -13,7 +13,7 @@ public class GridEditingDto /// Accepted Values: 'full' | 'reshape' | 'repaint' /// public string RefreshMode { get; set; } = "full"; - public bool AllowEditing { get; set; } = false; + public bool AllowUpdating { get; set; } = false; public bool AllowDetail { get; set; } = false; public bool AllowDeleting { get; set; } = false; public bool AllowAllDeleting { get; set; } = false; diff --git a/api/src/Sozsoft.Platform.Application.Contracts/ListForms/Wizard/ListFormWizardDto.cs b/api/src/Sozsoft.Platform.Application.Contracts/ListForms/Wizard/ListFormWizardDto.cs index e91cef7..0aa3f12 100644 --- a/api/src/Sozsoft.Platform.Application.Contracts/ListForms/Wizard/ListFormWizardDto.cs +++ b/api/src/Sozsoft.Platform.Application.Contracts/ListForms/Wizard/ListFormWizardDto.cs @@ -15,7 +15,7 @@ public class ListFormWizardDto public bool IsOrganizationUnit { get; set; } public bool AllowAdding { get; set; } - public bool AllowEditing { get; set; } + public bool AllowUpdating { get; set; } public bool AllowDeleting { get; set; } public bool AllowDetail { get; set; } public bool ConfirmDelete { get; set; } diff --git a/api/src/Sozsoft.Platform.Application/ListForms/Administration/ListFormFieldsAppService.cs b/api/src/Sozsoft.Platform.Application/ListForms/Administration/ListFormFieldsAppService.cs index bc3f354..5da7ae3 100644 --- a/api/src/Sozsoft.Platform.Application/ListForms/Administration/ListFormFieldsAppService.cs +++ b/api/src/Sozsoft.Platform.Application/ListForms/Administration/ListFormFieldsAppService.cs @@ -58,6 +58,7 @@ public class ListFormFieldsAppService : CrudAppService< entity.Visible = updateInput.Visible; entity.AllowSearch = updateInput.AllowSearch; entity.AllowEditing = updateInput.AllowEditing; + entity.AllowAdding = updateInput.AllowAdding; entity.ListOrderNo = updateInput.ListOrderNo; entity.SourceDbType = updateInput.SourceDbType; entity.Width = updateInput.Width; @@ -150,6 +151,7 @@ public class ListFormFieldsAppService : CrudAppService< item.Visible = input.Visible; item.AllowSearch = input.AllowSearch; item.AllowEditing = input.AllowEditing; + item.AllowAdding = input.AllowAdding; } else if (input.EditType == ListFormFieldEditTabs.CustomizationForm) { @@ -266,6 +268,7 @@ public class ListFormFieldsAppService : CrudAppService< field.Visible = sourceField.Visible; field.AllowSearch = sourceField.AllowSearch; field.AllowEditing = sourceField.AllowEditing; + field.AllowAdding = sourceField.AllowAdding; } else if (input.CopiedFields.All || input.CopiedFields.Permission) { diff --git a/api/src/Sozsoft.Platform.Application/ListForms/ListFormWizardAppService.cs b/api/src/Sozsoft.Platform.Application/ListForms/ListFormWizardAppService.cs index 8e4412f..950a0e1 100644 --- a/api/src/Sozsoft.Platform.Application/ListForms/ListFormWizardAppService.cs +++ b/api/src/Sozsoft.Platform.Application/ListForms/ListFormWizardAppService.cs @@ -220,7 +220,7 @@ public class ListFormWizardAppService( DeleteFieldsDefaultValueJson = WizardConsts.DefaultDeleteFieldsDefaultValueJson(input.KeyFieldDbSourceType), InsertFieldsDefaultValueJson = WizardConsts.DefaultInsertFieldsDefaultValueJson(input.KeyFieldDbSourceType), PagerOptionJson = WizardConsts.DefaultPagerOptionJson, - EditingOptionJson = WizardConsts.DefaultEditingOptionJson(titleLangKey, 600, 500, input.AllowDeleting, input.AllowAdding, input.AllowEditing, input.ConfirmDelete, false, input.AllowDetail), + EditingOptionJson = WizardConsts.DefaultEditingOptionJson(titleLangKey, 600, 500, input.AllowDeleting, input.AllowAdding, input.AllowUpdating, input.ConfirmDelete, false, input.AllowDetail), EditingFormJson = editingFormDtos.Count > 0 ? JsonSerializer.Serialize(editingFormDtos) : null, }, autoSave: true); diff --git a/api/src/Sozsoft.Platform.DbMigrator/Seeds/LanguagesData.json b/api/src/Sozsoft.Platform.DbMigrator/Seeds/LanguagesData.json index c6f36a6..cdfb7c9 100644 --- a/api/src/Sozsoft.Platform.DbMigrator/Seeds/LanguagesData.json +++ b/api/src/Sozsoft.Platform.DbMigrator/Seeds/LanguagesData.json @@ -4530,12 +4530,24 @@ "en": "Auto Expand All", "tr": "Otomatik Tümünü Genişlet" }, + { + "resourceName": "Platform", + "key": "ListForms.ListFormEdit.AllowUpdating", + "en": "Allow Updating", + "tr": "Güncellemeye İzin Ver" + }, { "resourceName": "Platform", "key": "ListForms.ListFormEdit.AllowEditing", "en": "Allow Editing", "tr": "Düzenlemeye İzin Ver" }, + { + "resourceName": "Platform", + "key": "ListForms.ListFormEdit.AllowAdding", + "en": "Allow Adding", + "tr": "Ekleme İzni" + }, { "resourceName": "Platform", "key": "ListForms.ListFormEdit.AllowTaskAdding", diff --git a/api/src/Sozsoft.Platform.DbMigrator/Seeds/ListFormSeeder_DefaultJsons.cs b/api/src/Sozsoft.Platform.DbMigrator/Seeds/ListFormSeeder_DefaultJsons.cs index 6a148c2..8aea812 100644 --- a/api/src/Sozsoft.Platform.DbMigrator/Seeds/ListFormSeeder_DefaultJsons.cs +++ b/api/src/Sozsoft.Platform.DbMigrator/Seeds/ListFormSeeder_DefaultJsons.cs @@ -35,7 +35,7 @@ public static class ListFormSeeder_DefaultJsons int Height, bool AllowDeleting, bool AllowAdding, - bool AllowEditing, + bool AllowUpdating, bool ConfirmDelete, bool SendOnlyChangedFormValuesUpdate, bool AllowDetail = false) => JsonSerializer.Serialize(new GridEditingDto @@ -43,7 +43,7 @@ public static class ListFormSeeder_DefaultJsons Popup = new GridEditingPopupDto() { Title = Title, Width = Width, Height = Height }, AllowDeleting = AllowDeleting, AllowAdding = AllowAdding, - AllowEditing = AllowEditing, + AllowUpdating = AllowUpdating, ConfirmDelete = ConfirmDelete, SendOnlyChangedFormValuesUpdate = SendOnlyChangedFormValuesUpdate, AllowDetail = AllowDetail diff --git a/api/src/Sozsoft.Platform.Domain.Shared/WizardConsts.cs b/api/src/Sozsoft.Platform.Domain.Shared/WizardConsts.cs index c08857d..0a56cf2 100644 --- a/api/src/Sozsoft.Platform.Domain.Shared/WizardConsts.cs +++ b/api/src/Sozsoft.Platform.Domain.Shared/WizardConsts.cs @@ -198,7 +198,7 @@ public static class WizardConsts int Height, bool AllowDeleting, bool AllowAdding, - bool AllowEditing, + bool AllowUpdating, bool ConfirmDelete, bool SendOnlyChangedFormValuesUpdate, bool AllowDetail = false) => JsonSerializer.Serialize(new @@ -206,7 +206,7 @@ public static class WizardConsts Popup = new { Title = Title, Width = Width, Height = Height }, AllowDeleting = AllowDeleting, AllowAdding = AllowAdding, - AllowEditing = AllowEditing, + AllowUpdating = AllowUpdating, ConfirmDelete = ConfirmDelete, SendOnlyChangedFormValuesUpdate = SendOnlyChangedFormValuesUpdate, AllowDetail = AllowDetail diff --git a/api/src/Sozsoft.Platform.Domain/Entities/Tenant/ListForm/ListFormField.cs b/api/src/Sozsoft.Platform.Domain/Entities/Tenant/ListForm/ListFormField.cs index ede05cc..ef1ee09 100644 --- a/api/src/Sozsoft.Platform.Domain/Entities/Tenant/ListForm/ListFormField.cs +++ b/api/src/Sozsoft.Platform.Domain/Entities/Tenant/ListForm/ListFormField.cs @@ -23,7 +23,8 @@ public class ListFormField : FullAuditedEntity public string SortDirection { get; set; } // Sortindex varsa alacagi degerler asc, desc public bool? AllowSearch { get; set; } = true; - public bool? AllowEditing { get; set; } + public bool? AllowEditing { get; set; } = true; + public bool? AllowAdding { get; set; } = true; public string BandName { get; set; } public string ColumnFilterJson { get; set; } diff --git a/api/src/Sozsoft.Platform.EntityFrameworkCore/EntityFrameworkCore/PlatformDbContext.cs b/api/src/Sozsoft.Platform.EntityFrameworkCore/EntityFrameworkCore/PlatformDbContext.cs index 2397cc7..d1374c6 100644 --- a/api/src/Sozsoft.Platform.EntityFrameworkCore/EntityFrameworkCore/PlatformDbContext.cs +++ b/api/src/Sozsoft.Platform.EntityFrameworkCore/EntityFrameworkCore/PlatformDbContext.cs @@ -370,6 +370,7 @@ public class PlatformDbContext : // Varsayılan değerler b.Property(a => a.AllowSearch).HasDefaultValue(false); b.Property(a => a.AllowEditing).HasDefaultValue(true); + b.Property(a => a.AllowAdding).HasDefaultValue(true); b.Property(a => a.IsActive).HasDefaultValue(true); b.Property(a => a.Visible).HasDefaultValue(true); b.Property(a => a.ListOrderNo).HasDefaultValue(30); diff --git a/api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/20260330120142_Initial.Designer.cs b/api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/20260425160411_Initial.Designer.cs similarity index 99% rename from api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/20260330120142_Initial.Designer.cs rename to api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/20260425160411_Initial.Designer.cs index 0513ff7..1f951b9 100644 --- a/api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/20260330120142_Initial.Designer.cs +++ b/api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/20260425160411_Initial.Designer.cs @@ -13,7 +13,7 @@ using Volo.Abp.EntityFrameworkCore; namespace Sozsoft.Platform.Migrations { [DbContext(typeof(PlatformDbContext))] - [Migration("20260330120142_Initial")] + [Migration("20260425160411_Initial")] partial class Initial { /// @@ -2538,6 +2538,11 @@ namespace Sozsoft.Platform.Migrations .HasColumnType("nvarchar(20)") .HasDefaultValue("left"); + b.Property("AllowAdding") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(true); + b.Property("AllowEditing") .ValueGeneratedOnAdd() .HasColumnType("bit") diff --git a/api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/20260330120142_Initial.cs b/api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/20260425160411_Initial.cs similarity index 99% rename from api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/20260330120142_Initial.cs rename to api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/20260425160411_Initial.cs index a2ae16c..75e3194 100644 --- a/api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/20260330120142_Initial.cs +++ b/api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/20260425160411_Initial.cs @@ -2041,6 +2041,7 @@ namespace Sozsoft.Platform.Migrations SortDirection = table.Column(type: "nvarchar(10)", maxLength: 10, nullable: true), AllowSearch = table.Column(type: "bit", nullable: true, defaultValue: false), AllowEditing = table.Column(type: "bit", nullable: true, defaultValue: true), + AllowAdding = table.Column(type: "bit", nullable: true, defaultValue: true), BandName = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: true), ColumnFilterJson = table.Column(type: "text", nullable: true), ColumnHeaderJson = table.Column(type: "text", nullable: true), diff --git a/api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/PlatformDbContextModelSnapshot.cs b/api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/PlatformDbContextModelSnapshot.cs index 67b4374..dff100e 100644 --- a/api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/PlatformDbContextModelSnapshot.cs +++ b/api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/PlatformDbContextModelSnapshot.cs @@ -2535,6 +2535,11 @@ namespace Sozsoft.Platform.Migrations .HasColumnType("nvarchar(20)") .HasDefaultValue("left"); + b.Property("AllowAdding") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(true); + b.Property("AllowEditing") .ValueGeneratedOnAdd() .HasColumnType("bit") diff --git a/ui/src/proxy/admin/list-form/models.ts b/ui/src/proxy/admin/list-form/models.ts index 6efa5e9..dd8af41 100644 --- a/ui/src/proxy/admin/list-form/models.ts +++ b/ui/src/proxy/admin/list-form/models.ts @@ -39,7 +39,7 @@ export interface ListFormWizardDto { isBranch: boolean isOrganizationUnit: boolean allowAdding: boolean - allowEditing: boolean + allowUpdating: boolean allowDeleting: boolean confirmDelete: boolean allowDetail: boolean diff --git a/ui/src/proxy/form/models.ts b/ui/src/proxy/form/models.ts index 161c197..5e4bce0 100644 --- a/ui/src/proxy/form/models.ts +++ b/ui/src/proxy/form/models.ts @@ -209,6 +209,7 @@ export interface ColumnFormatDto extends AuditedEntityDto { sortDirection?: string allowSearch: boolean allowEditing: boolean + allowAdding: boolean columnCssClass?: string columnCssValue?: string bandName?: string @@ -440,7 +441,7 @@ export interface SchedulerResourceDto { export interface GridEditingDto { mode?: GridsEditMode refreshMode?: GridsEditRefreshMode - allowEditing: boolean + allowUpdating: boolean allowDetail: boolean allowDeleting: boolean allowAllDeleting: boolean diff --git a/ui/src/views/admin/listForm/Wizard.tsx b/ui/src/views/admin/listForm/Wizard.tsx index 0858ae1..e4f6540 100644 --- a/ui/src/views/admin/listForm/Wizard.tsx +++ b/ui/src/views/admin/listForm/Wizard.tsx @@ -39,7 +39,7 @@ const initialValues: ListFormWizardDto = { isBranch: false, isOrganizationUnit: false, allowAdding: true, - allowEditing: true, + allowUpdating: true, allowDeleting: true, confirmDelete: true, allowDetail: false, @@ -87,7 +87,7 @@ const step2ValidationSchema = Yup.object().shape({ isBranch: Yup.boolean(), isOrganizationUnit: Yup.boolean(), allowAdding: Yup.boolean(), - allowEditing: Yup.boolean(), + allowUpdating: Yup.boolean(), allowDeleting: Yup.boolean(), confirmDelete: Yup.boolean(), }) diff --git a/ui/src/views/admin/listForm/WizardStep1.tsx b/ui/src/views/admin/listForm/WizardStep1.tsx index 907400d..ea98831 100644 --- a/ui/src/views/admin/listForm/WizardStep1.tsx +++ b/ui/src/views/admin/listForm/WizardStep1.tsx @@ -175,7 +175,7 @@ function TreeNode({ className={`text-xs shrink-0 ${isSelected ? 'text-indigo-200' : 'text-gray-400'}`} onClick={() => !isEditing && onSelect(node.code)} > - {translate('::' + node.code)} + {translate('::' + node.displayName)} {isEditing ? ( diff --git a/ui/src/views/admin/listForm/WizardStep2.tsx b/ui/src/views/admin/listForm/WizardStep2.tsx index aa36a6d..8baafd0 100644 --- a/ui/src/views/admin/listForm/WizardStep2.tsx +++ b/ui/src/views/admin/listForm/WizardStep2.tsx @@ -362,11 +362,11 @@ const WizardStep2 = ({ - + { title={`${listFormCode} - ${translate(`::${listFormValues.title}`)}`} defaultTitle={APP_NAME} > -
-
-

- - 🔙 {listFormCode} - {translate(`::${listFormValues.title}`)} - -

- {listFormValues.isTenant && ( - - Bu bir MULTI TENANT form'dur, veri kaybı olmaması için, sorgularda TENANTID - parametresini kullanmayı unutmayınız. - - )} -
+
+ {/* SOL TARAF */} +

+ + 🔙 {listFormCode} - {translate(`::${listFormValues.title}`)} + +

+ + {/* SAĞ TARAF */} + {listFormValues.isTenant && ( + + + )}
diff --git a/ui/src/views/admin/listForm/edit/FormTabEdit.tsx b/ui/src/views/admin/listForm/edit/FormTabEdit.tsx index ae267be..097aeb2 100644 --- a/ui/src/views/admin/listForm/edit/FormTabEdit.tsx +++ b/ui/src/views/admin/listForm/edit/FormTabEdit.tsx @@ -73,16 +73,16 @@ function FormTabEdit(props: FormEditProps & { listFormCode: string }) { /> diff --git a/ui/src/views/admin/listForm/edit/form-fields/FormFieldTabOptions.tsx b/ui/src/views/admin/listForm/edit/form-fields/FormFieldTabOptions.tsx index b80139d..ba014d1 100644 --- a/ui/src/views/admin/listForm/edit/form-fields/FormFieldTabOptions.tsx +++ b/ui/src/views/admin/listForm/edit/form-fields/FormFieldTabOptions.tsx @@ -18,6 +18,7 @@ const schema = object().shape({ visible: bool().required(), allowSearch: bool().required(), allowEditing: bool().required(), + allowAdding: bool().required(), }) function FormFieldTabOptions({ @@ -104,6 +105,9 @@ function FormFieldTabOptions({ + + +