From 7304a0555b335170cb48ac5eb7b02fa538fd86ec Mon Sep 17 00:00:00 2001 From: maliming Date: Sat, 12 Apr 2025 16:44:55 +0800 Subject: [PATCH] Refactor feature management modal to improve disabled state handling and update feature selection logic --- .../FeatureManagementModal.cshtml | 63 ++++++++----------- .../FeatureManagementModal.cshtml.cs | 6 +- 2 files changed, 30 insertions(+), 39 deletions(-) diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml index 9b8aeaef5c..b6782249ab 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml @@ -45,23 +45,23 @@ @for (var j = 0; j < featureGroup.Features.Count; j++) { var feature = featureGroup.Features[j]; + var disabled = Model.IsDisabled(feature);
+ - @if (feature.ValueType is ToggleStringValueType) { - - - @if (feature.Description != null) + + if (feature.Description != null) {
@feature.Description
} @@ -69,20 +69,16 @@ @if (feature.ValueType is FreeTextStringValueType) { - var type = "text"; - if(feature.ValueType.Validator is NumericValueValidator) - { - type = "number"; - } - - @if (feature.Description != null) + var type = feature.ValueType.Validator is NumericValueValidator ? "number" : "text"; + + if (feature.Description != null) {
@feature.Description
} @@ -90,20 +86,13 @@ @if (feature.ValueType is SelectionStringValueType selectType) { - var disabled = Model.IsDisabled(feature) ? "disabled" : "";
- @foreach (var item in selectType.ItemSource.Items) { - if (item.Value == feature.Value) - { - - } - else - { - - } + var selected = item.Value == feature.Value ? "selected=\"selected\"" : ""; + @CreateHtmlLocalizer(item.DisplayText.ResourceName).GetString(item.DisplayText.Name) } @if (feature.Description != null) @@ -112,8 +101,8 @@ }
} - +
} diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml.cs index a96a0c0f88..a9366da30e 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml.cs @@ -69,7 +69,7 @@ public class FeatureManagementModal : AbpPageModel { var features = new UpdateFeaturesDto { - Features = FeatureGroups.SelectMany(g => g.Features).Where(x => !x.Value.IsNullOrWhiteSpace() || x.BoolValue.HasValue).Select(f => new UpdateFeatureDto + Features = FeatureGroups.SelectMany(g => g.Features).Where(x => !x.IsDisabled).Select(f => new UpdateFeatureDto { Name = f.Name, Value = f.Type == nameof(ToggleStringValueType) ? f.BoolValue.ToString() : f.Value @@ -97,11 +97,13 @@ public class FeatureManagementModal : AbpPageModel public class FeatureViewModel { + public bool IsDisabled { get; set; } + public string Name { get; set; } public string Value { get; set; } - public bool? BoolValue { get; set; } + public bool BoolValue { get; set; } public string Type { get; set; } }