From 60e28c8455785ebdcd14fec2b75f34a7b039aa5b Mon Sep 17 00:00:00 2001 From: Ahmet Date: Wed, 23 Sep 2020 17:59:17 +0300 Subject: [PATCH] Improved feature management blazor modal Closes: https://github.com/abpframework/abp/issues/5540 --- .../Components/FeatureManagementModal.razor | 125 +++++++++--------- .../FeatureManagementModal.razor.cs | 21 ++- 2 files changed, 83 insertions(+), 63 deletions(-) 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