diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Components/FeatureManagementModal.razor b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Components/FeatureManagementModal.razor
index f59eea6d57..ef5c8751ae 100644
--- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Components/FeatureManagementModal.razor
+++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Components/FeatureManagementModal.razor
@@ -11,75 +11,80 @@
- @if (_groups == null)
- {
- @L["NoFeatureFoundMessage"]
- }
- else
- {
-
-
- @foreach (var group in _groups)
- {
-
- @group.DisplayName
-
- }
-
-
- @foreach (var group in _groups)
- {
-
- @group.DisplayName
-
- @foreach (var feature in group.Features)
- {
- var disabled = IsDisabled(feature.Provider.Name);
+
+ @if (_groups == null)
+ {
+ @L["NoFeatureFoundMessage"]
+ }
+ else
+ {
+
+
+ @foreach (var group in _groups)
+ {
+
+ @group.DisplayName
+
+ }
+
+
+ @foreach (var group in _groups)
+ {
+
+ @group.DisplayName
- if (feature.ValueType is FreeTextStringValueType)
+ @foreach (var feature in group.Features)
{
-
- @feature.DisplayName
-
- @if (feature.Description != null)
- {
- @feature.Description
- }
-
- }
-
- if (feature.ValueType is SelectionStringValueType)
- {
- var items = ((SelectionStringValueType) feature.ValueType).ItemSource.Items;
+ var disabled = IsDisabled(feature.Provider.Name);
-
- @feature.DisplayName
-
-
+
+ }
+
+ if (feature.ValueType is SelectionStringValueType)
+ {
+ var items = ((SelectionStringValueType) feature.ValueType).ItemSource.Items;
+
+
+ @feature.DisplayName
+
+
+ }
+
+ if (feature.ValueType is ToggleStringValueType)
+ {
+
+ @feature.DisplayName
+
+ }
}
-
- if (feature.ValueType is ToggleStringValueType)
- {
-
- @feature.DisplayName
-
- }
- }
-
-
- }
-
-
- }
+
+
+ }
+
+
+ }
+
-
+
\ No newline at end of file
diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Components/FeatureManagementModal.razor.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Components/FeatureManagementModal.razor.cs
index 40aba610eb..f1805a620f 100644
--- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Components/FeatureManagementModal.razor.cs
+++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Components/FeatureManagementModal.razor.cs
@@ -3,6 +3,7 @@ using System.Linq;
using System.Threading.Tasks;
using Blazorise;
using Microsoft.AspNetCore.Components;
+using Volo.Abp.AspNetCore.Components.WebAssembly;
using Volo.Abp.Features;
using Volo.Abp.Validation.StringValues;
@@ -11,6 +12,8 @@ namespace Volo.Abp.FeatureManagement.Blazor.Components
public partial class FeatureManagementModal
{
[Inject] private IFeatureAppService FeatureAppService { get; set; }
+
+ [Inject] protected IUiMessageService UiMessageService { get; set; }
private Modal _modal;
@@ -19,7 +22,7 @@ namespace Volo.Abp.FeatureManagement.Blazor.Components
private List _groups { get; set; }
- private Dictionary ToggleValues;
+ private Dictionary _toggleValues;
public async Task OpenAsync(string providerName, string providerKey)
{
@@ -28,7 +31,7 @@ namespace Volo.Abp.FeatureManagement.Blazor.Components
_groups = (await FeatureAppService.GetAsync(_providerName, _providerKey)).Groups;
- ToggleValues = _groups
+ _toggleValues = _groups
.SelectMany(x => x.Features)
.Where(x => x.ValueType is ToggleStringValueType)
.ToDictionary(x => x.Name, x => bool.Parse(x.Value));
@@ -48,7 +51,7 @@ namespace Volo.Abp.FeatureManagement.Blazor.Components
Features = _groups.SelectMany(g => g.Features).Select(f => new UpdateFeatureDto
{
Name = f.Name,
- Value = f.ValueType is ToggleStringValueType ? ToggleValues[f.Name].ToString() : f.Value
+ Value = f.ValueType is ToggleStringValueType ? _toggleValues[f.Name].ToString() : f.Value
}).ToList()
};
@@ -66,5 +69,17 @@ namespace Volo.Abp.FeatureManagement.Blazor.Components
{
return providerName != _providerName && providerName != DefaultValueFeatureValueProvider.ProviderName;
}
+
+ private async Task OnFeatureValueChangedAsync(string value, FeatureDto feature)
+ {
+ if (feature.ValueType.Validator.IsValid(value))
+ {
+ feature.Value = value;
+ }
+ else
+ {
+ await UiMessageService.WarnAsync(L["Volo.Abp.FeatureManagement:InvalidFeatureValue", feature.DisplayName]);
+ }
+ }
}
}
\ No newline at end of file