diff --git a/framework/src/Volo.Abp.MudBlazorUI/MudBlazorUiPageProgressService.cs b/framework/src/Volo.Abp.MudBlazorUI/MudBlazorUiPageProgressService.cs index 0104eebebf..aeb9d51841 100644 --- a/framework/src/Volo.Abp.MudBlazorUI/MudBlazorUiPageProgressService.cs +++ b/framework/src/Volo.Abp.MudBlazorUI/MudBlazorUiPageProgressService.cs @@ -1,4 +1,5 @@ using System; +using System.Threading; using System.Threading.Tasks; using Volo.Abp.AspNetCore.Components.Progression; using Volo.Abp.DependencyInjection; @@ -6,25 +7,43 @@ using Volo.Abp.DependencyInjection; namespace Volo.Abp.MudBlazorUI; [Dependency(ReplaceServices = true)] -public class MudBlazorUiPageProgressService : IUiPageProgressService, IScopedDependency +public class MudBlazorUiPageProgressService : IUiPageProgressService, IScopedDependency, IDisposable { /// /// An event raised after the progress is changed. /// public event EventHandler? ProgressChanged; + protected virtual int HideDelayMs => 250; + + private int _activeCount; + private UiPageProgressOptions _lastOptions = new(); + private readonly Timer _hideTimer; + + public MudBlazorUiPageProgressService() + { + _hideTimer = new Timer(_ => ProgressChanged?.Invoke(this, new UiPageProgressEventArgs(-1, _lastOptions))); + } + public Task Go(int? percentage, Action? options = null) { - var uiPageProgressOptions = CreateDefaultOptions(); - options?.Invoke(uiPageProgressOptions); + var opt = new UiPageProgressOptions(); + options?.Invoke(opt); + _lastOptions = opt; - ProgressChanged?.Invoke(this, new UiPageProgressEventArgs(percentage, uiPageProgressOptions)); + if (percentage == -1 && Interlocked.Decrement(ref _activeCount) <= 0) + { + Interlocked.Exchange(ref _activeCount, 0); + _hideTimer.Change(HideDelayMs, Timeout.Infinite); + } + else if (percentage == null && Interlocked.Increment(ref _activeCount) == 1) + { + _hideTimer.Change(Timeout.Infinite, Timeout.Infinite); + ProgressChanged?.Invoke(this, new UiPageProgressEventArgs(null, opt)); + } return Task.CompletedTask; } - protected virtual UiPageProgressOptions CreateDefaultOptions() - { - return new UiPageProgressOptions(); - } + public void Dispose() => _hideTimer.Dispose(); } diff --git a/modules/account/src/Volo.Abp.Account.Blazor.MudBlazor/_Imports.razor b/modules/account/src/Volo.Abp.Account.Blazor.MudBlazor/_Imports.razor index 95b2bfdc7f..a5bda013b8 100644 --- a/modules/account/src/Volo.Abp.Account.Blazor.MudBlazor/_Imports.razor +++ b/modules/account/src/Volo.Abp.Account.Blazor.MudBlazor/_Imports.razor @@ -3,3 +3,4 @@ @using Volo.Abp.MudBlazorUI @using Volo.Abp.MudBlazorUI.Components @using MudBlazor +@using Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor.Layout diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor.MudBlazor/Components/FeatureManagementModal.razor b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor.MudBlazor/Components/FeatureManagementModal.razor index 57831e2598..fd4711c104 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor.MudBlazor/Components/FeatureManagementModal.razor +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor.MudBlazor/Components/FeatureManagementModal.razor @@ -5,7 +5,7 @@ @using Volo.Abp.FeatureManagement.Localization @inherits AbpFeatureManagementComponentBase - + @L["Features"]@ProviderKeyDisplayName @@ -16,7 +16,7 @@ } else { - @foreach (var group in Groups) { diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor.MudBlazor/_Imports.razor b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor.MudBlazor/_Imports.razor index 4e91324cd8..b1be76fe73 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor.MudBlazor/_Imports.razor +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor.MudBlazor/_Imports.razor @@ -1,4 +1,5 @@ @using Microsoft.AspNetCore.Components.Web @using Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor +@using Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor.Layout @using MudBlazor @using Volo.Abp.MudBlazorUI diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/Pages/Identity/RoleManagement.razor b/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/Pages/Identity/RoleManagement.razor index 995b1859de..d9f8700ee2 100644 --- a/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/Pages/Identity/RoleManagement.razor +++ b/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/Pages/Identity/RoleManagement.razor @@ -33,7 +33,7 @@ @* ************************* CREATE DIALOG ************************* *@ @if (HasCreatePermission) { - + @L["NewRole"] @@ -58,7 +58,7 @@ @* ************************* EDIT DIALOG ************************* *@ @if (HasUpdatePermission) { - + @L["Edit"] diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/Pages/Identity/UserManagement.razor b/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/Pages/Identity/UserManagement.razor index 77f335eed4..f6b0849311 100644 --- a/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/Pages/Identity/UserManagement.razor +++ b/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/Pages/Identity/UserManagement.razor @@ -44,16 +44,17 @@ @* ************************* CREATE DIALOG ************************* *@ @if (HasCreatePermission) { - + @L["NewUser"] - + + @L["Edit"] - + + @L["Permissions"] - @_entityDisplayName @@ -18,11 +18,11 @@ Immediate="true" /> - @@ -32,7 +32,7 @@ @if (_groups != null && _groups.Any()) { - @@ -41,11 +41,13 @@ x.IsGranted)})")">
diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor.MudBlazor/Components/ResourcePermissionManagementModal.razor b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor.MudBlazor/Components/ResourcePermissionManagementModal.razor index 011c5dd926..14aa92d735 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor.MudBlazor/Components/ResourcePermissionManagementModal.razor +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor.MudBlazor/Components/ResourcePermissionManagementModal.razor @@ -1,7 +1,7 @@ @using global::MudBlazor @inherits Volo.Abp.AspNetCore.Components.AbpComponentBase - + @L["ResourcePermissions"] - @ResourceDisplayName @@ -82,7 +82,7 @@ @* Create Resource Permission Dialog *@ @if (_createDialogVisible) { - + @L["AddResourcePermission"] @@ -127,7 +127,7 @@ @* Edit Resource Permission Dialog *@ @if (_editDialogVisible) { - + @L["UpdateResourcePermission"] diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor.MudBlazor/_Imports.razor b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor.MudBlazor/_Imports.razor index bfec4381b3..614bc218c7 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor.MudBlazor/_Imports.razor +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor.MudBlazor/_Imports.razor @@ -1,3 +1,4 @@ @using Microsoft.AspNetCore.Components.Web @using Volo.Abp.AspNetCore.Components.Web +@using Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor.Layout @using MudBlazor diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor.MudBlazor/Pages/SettingManagement/EmailSettingGroup/EmailSettingGroupViewComponent.razor b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor.MudBlazor/Pages/SettingManagement/EmailSettingGroup/EmailSettingGroupViewComponent.razor index e306bebe83..bec6df4d84 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor.MudBlazor/Pages/SettingManagement/EmailSettingGroup/EmailSettingGroupViewComponent.razor +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor.MudBlazor/Pages/SettingManagement/EmailSettingGroup/EmailSettingGroupViewComponent.razor @@ -73,7 +73,7 @@ @if (HasSendTestEmailPermission) { - + @L["SendTestEmail"] diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor.MudBlazor/_Imports.razor b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor.MudBlazor/_Imports.razor index 4e91324cd8..b1be76fe73 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor.MudBlazor/_Imports.razor +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor.MudBlazor/_Imports.razor @@ -1,4 +1,5 @@ @using Microsoft.AspNetCore.Components.Web @using Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor +@using Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor.Layout @using MudBlazor @using Volo.Abp.MudBlazorUI diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor.MudBlazor/Pages/TenantManagement/TenantManagement.razor b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor.MudBlazor/Pages/TenantManagement/TenantManagement.razor index 3cbbc614dc..e2211914f4 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor.MudBlazor/Pages/TenantManagement/TenantManagement.razor +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor.MudBlazor/Pages/TenantManagement/TenantManagement.razor @@ -32,7 +32,7 @@ @* ************************* CREATE MODAL ************************* *@ @if (HasCreatePermission) { - + @L["NewTenant"] @@ -69,7 +69,7 @@ @* ************************* EDIT MODAL ************************* *@ @if (HasUpdatePermission) { - + @L["Edit"] diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor.MudBlazor/_Imports.razor b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor.MudBlazor/_Imports.razor index 4e91324cd8..b1be76fe73 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor.MudBlazor/_Imports.razor +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor.MudBlazor/_Imports.razor @@ -1,4 +1,5 @@ @using Microsoft.AspNetCore.Components.Web @using Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor +@using Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor.Layout @using MudBlazor @using Volo.Abp.MudBlazorUI