diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/ExtensionProperties.razor.cs b/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/ExtensionProperties.razor.cs index 27f69f3ba4..b840119d18 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/ExtensionProperties.razor.cs +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/ExtensionProperties.razor.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Immutable; +using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Components; using Microsoft.Extensions.Localization; @@ -29,8 +30,13 @@ public partial class ExtensionProperties : Component public ImmutableList Properties { get; set; } = ImmutableList.Empty; - protected async override Task OnInitializedAsync() + protected override async Task OnInitializedAsync() { - Properties = await ObjectExtensionManager.Instance.GetPropertiesAndCheckPolicyAsync(ServiceProvider); + Properties = + (await ObjectExtensionManager.Instance.GetPropertiesAndCheckPolicyAsync(ServiceProvider)) + .Where(p => ModalType == ExtensionPropertyModalType.CreateModal + ? p.UI.CreateModal.IsVisible + : p.UI.EditModal.IsVisible) + .ToImmutableList(); } } diff --git a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ExtensionPropertyUiFormConfiguration.cs b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ExtensionPropertyUiFormConfiguration.cs index d1d041a9b1..9a95cd6481 100644 --- a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ExtensionPropertyUiFormConfiguration.cs +++ b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ExtensionPropertyUiFormConfiguration.cs @@ -6,4 +6,9 @@ public class ExtensionPropertyUiFormConfiguration /// Default: true. /// public bool IsVisible { get; set; } = true; + + /// + /// Default: false. + /// + public bool IsReadOnly { get; set; } = false; } diff --git a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleExtensionConfigurationHelper.cs b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleExtensionConfigurationHelper.cs index 9a13b17028..40b9e8feb6 100644 --- a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleExtensionConfigurationHelper.cs +++ b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleExtensionConfigurationHelper.cs @@ -175,6 +175,10 @@ public static class ModuleExtensionConfigurationHelper property.DefaultValueFactory = propertyConfig.DefaultValueFactory; property.Lookup = propertyConfig.UI.Lookup; property.UI.Order = propertyConfig.UI.Order; + property.UI.CreateModal.IsVisible = propertyConfig.UI.OnCreateForm.IsVisible; + property.UI.CreateModal.IsReadOnly = propertyConfig.UI.OnCreateForm.IsReadOnly; + property.UI.EditModal.IsVisible = propertyConfig.UI.OnEditForm.IsVisible; + property.UI.EditModal.IsReadOnly = propertyConfig.UI.OnEditForm.IsReadOnly; property.Policy = propertyConfig.Policy; foreach (var configuration in propertyConfig.Configuration) { diff --git a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ObjectExtensionPropertyInfo.cs b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ObjectExtensionPropertyInfo.cs index e5ed79b99e..35c40e8043 100644 --- a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ObjectExtensionPropertyInfo.cs +++ b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ObjectExtensionPropertyInfo.cs @@ -90,16 +90,34 @@ public class ObjectExtensionPropertyInfo : IHasNameWithLocalizableDisplayName, I { public int Order { get; set; } + public ExtensionPropertyUICreateModal CreateModal { get; set; } + public ExtensionPropertyUIEditModal EditModal { get; set; } public ExtensionPropertyUI() { + CreateModal = new ExtensionPropertyUICreateModal(); EditModal = new ExtensionPropertyUIEditModal(); } } + public class ExtensionPropertyUICreateModal + { + /// + /// Default: true. + /// + public bool IsVisible { get; set; } = true; + + public bool IsReadOnly { get; set; } + } + public class ExtensionPropertyUIEditModal { + /// + /// Default: true. + /// + public bool IsVisible { get; set; } = true; + public bool IsReadOnly { get; set; } } }