diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor/PageToolbars/MudPageToolbarButton.razor b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor/PageToolbars/MudPageToolbarButton.razor new file mode 100644 index 0000000000..e37ccee5c3 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor/PageToolbars/MudPageToolbarButton.razor @@ -0,0 +1,21 @@ +@using global::MudBlazor + + + @Text + + +@code { + private string? IconString => Icon?.ToString(); + + private async Task OnClickHandler() + { + if (OnClickAsync != null) + { + await OnClickAsync(); + } + } +} diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor/PageToolbars/MudPageToolbarButton.razor.cs b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor/PageToolbars/MudPageToolbarButton.razor.cs new file mode 100644 index 0000000000..a8918a5f18 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor/PageToolbars/MudPageToolbarButton.razor.cs @@ -0,0 +1,24 @@ +using System; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Components; +using MudBlazor; + +namespace Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor.PageToolbars; + +public partial class MudPageToolbarButton : ComponentBase +{ + [Parameter] + public Color Color { get; set; } = Color.Primary; + + [Parameter] + public object? Icon { get; set; } + + [Parameter] + public string Text { get; set; } = default!; + + [Parameter] + public Func? OnClickAsync { get; set; } + + [Parameter] + public bool Disabled { get; set; } +} diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor/PageToolbars/PageToolbarExtensions.cs b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor/PageToolbars/PageToolbarExtensions.cs index c96cfad11c..136a95c689 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor/PageToolbars/PageToolbarExtensions.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor/PageToolbars/PageToolbarExtensions.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Threading.Tasks; using MudBlazor; @@ -50,20 +50,32 @@ public static class PageToolbarExtensions int order = 0, string? requiredPolicyName = null) { - // TODO@MudBlazor: Implement ToolbarButton contributor - // toolbar.AddComponent( - // new Dictionary - // { - // { nameof(ToolbarButton.Color), color ?? Color.Primary}, - // { nameof(ToolbarButton.Text), text}, - // { nameof(ToolbarButton.Disabled), disabled}, - // { nameof(ToolbarButton.Icon), icon}, - // { nameof(ToolbarButton.Clicked),clicked}, - // }, - // order, - // requiredPolicyName - // ); + toolbar.AddComponent( + new Dictionary + { + { nameof(MudPageToolbarButton.Color), color ?? Color.Primary }, + { nameof(MudPageToolbarButton.Text), text }, + { nameof(MudPageToolbarButton.Disabled), disabled }, + { nameof(MudPageToolbarButton.Icon), icon }, + { nameof(MudPageToolbarButton.OnClickAsync), clicked }, + }, + order, + requiredPolicyName + ); return toolbar; } + + public static PageToolbar AddMudButton( + this PageToolbar toolbar, + string text, + Func clicked, + string? icon = null, + Color? color = null, + bool disabled = false, + int order = 0, + string? requiredPolicyName = null) + { + return toolbar.AddButton(text, clicked, icon, color, disabled, order, requiredPolicyName); + } } diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor/Routing/AbpRouterOptions.cs b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor/Routing/AbpRouterOptions.cs index d0f8bb98b1..390322da3b 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor/Routing/AbpRouterOptions.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor/Routing/AbpRouterOptions.cs @@ -1,4 +1,4 @@ -using System.Reflection; +using System.Reflection; namespace Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor.Routing; diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor/Routing/RouterAssemblyList.cs b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor/Routing/RouterAssemblyList.cs index 4d2dfa8be5..a23841c13e 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor/Routing/RouterAssemblyList.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor/Routing/RouterAssemblyList.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using System.Reflection; namespace Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor.Routing; diff --git a/framework/src/Volo.Abp.MudBlazorUI/AbpMudCrudPageBase.cs b/framework/src/Volo.Abp.MudBlazorUI/AbpMudCrudPageBase.cs index e6a4f07695..28e474e21f 100644 --- a/framework/src/Volo.Abp.MudBlazorUI/AbpMudCrudPageBase.cs +++ b/framework/src/Volo.Abp.MudBlazorUI/AbpMudCrudPageBase.cs @@ -314,7 +314,7 @@ public abstract class AbpMudCrudPageBase< await InvokeAsync(StateHasChanged); } - protected virtual async Task OnDataGridReadAsync(GridState state) + protected virtual async Task> OnDataGridReadAsync(GridState state) { CurrentSorting = state.SortDefinitions .Select(s => s.SortBy + (s.Descending ? " DESC" : "")) @@ -323,6 +323,12 @@ public abstract class AbpMudCrudPageBase< await GetEntitiesAsync(); await InvokeAsync(StateHasChanged); + + return new GridData + { + Items = Entities, + TotalItems = TotalCount ?? 0 + }; } protected virtual async Task OpenCreateDialogAsync() diff --git a/modules/basic-theme/Volo.Abp.BasicTheme.slnx b/modules/basic-theme/Volo.Abp.BasicTheme.slnx index 44256584c5..42b7f7973c 100644 --- a/modules/basic-theme/Volo.Abp.BasicTheme.slnx +++ b/modules/basic-theme/Volo.Abp.BasicTheme.slnx @@ -1,9 +1,13 @@ + + + + diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Server.MudBlazorBasicTheme/Themes/Basic/LanguageSwitch.razor b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Server.MudBlazorBasicTheme/Themes/Basic/LanguageSwitch.razor index 62d7f8b9c7..695238de9b 100644 --- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Server.MudBlazorBasicTheme/Themes/Basic/LanguageSwitch.razor +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Server.MudBlazorBasicTheme/Themes/Basic/LanguageSwitch.razor @@ -1,7 +1,9 @@ @using Volo.Abp.Localization @using System.Globalization @using System.Collections.Immutable +@using Microsoft.JSInterop @using MudBlazor +@using Volo.Abp.AspNetCore.Components.Web @inject ILanguageProvider LanguageProvider @inject IJSRuntime JsRuntime @inject ICookieService CookieService diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Server.MudBlazorBasicTheme/Themes/Basic/LoginDisplay.razor b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Server.MudBlazorBasicTheme/Themes/Basic/LoginDisplay.razor index 6dac37fb5f..580b0f6a30 100644 --- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Server.MudBlazorBasicTheme/Themes/Basic/LoginDisplay.razor +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Server.MudBlazorBasicTheme/Themes/Basic/LoginDisplay.razor @@ -4,6 +4,7 @@ @using Microsoft.Extensions.Localization @using global::Localization.Resources.AbpUi @using MudBlazor +@using Volo.Abp.UI.Navigation @inject ICurrentUser CurrentUser @inject ICurrentTenant CurrentTenant @inject IStringLocalizer L diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/AbpAspNetCoreComponentsWebMudBlazorBasicThemeModule.cs b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/AbpAspNetCoreComponentsWebMudBlazorBasicThemeModule.cs index 4e841b7075..d0bee588e6 100644 --- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/AbpAspNetCoreComponentsWebMudBlazorBasicThemeModule.cs +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/AbpAspNetCoreComponentsWebMudBlazorBasicThemeModule.cs @@ -1,5 +1,5 @@ using Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor; -using Volo.Abp.AspNetCore.Components.Web.Theming.Theming; +using Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor.Theming; using Volo.Abp.Modularity; namespace Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme; diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/MudBlazorBasicTheme.cs b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/MudBlazorBasicTheme.cs index 87692e8525..95dc61c3e7 100644 --- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/MudBlazorBasicTheme.cs +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/MudBlazorBasicTheme.cs @@ -1,4 +1,7 @@ -using Volo.Abp.AspNetCore.Components.Web.Theming.Theming; +using System; +using Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme.Themes.Basic; +using Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor.Layout; +using Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor.Theming; namespace Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme; @@ -6,29 +9,16 @@ public class MudBlazorBasicTheme : ITheme { public static string Name = "MudBlazorBasic"; - public string GetLayout(string name, bool fallbackToDefault = true) + public Type GetLayout(string name, bool fallbackToDefault = true) { switch (name) { case StandardLayouts.Application: - return "~/Themes/Basic/MainLayout"; case StandardLayouts.Account: - return "~/Themes/Basic/MainLayout"; case StandardLayouts.Empty: - return "~/Themes/Basic/NullLayout"; + return typeof(MainLayout); default: - return fallbackToDefault ? "~/Themes/Basic/MainLayout" : null; - } - } - - public string GetStyle(string name, bool fallbackToDefault = true) - { - switch (name) - { - case StandardStyles.Global: - return "~/themes/basic/main.css"; - default: - return fallbackToDefault ? "~/themes/basic/main.css" : null; + return fallbackToDefault ? typeof(MainLayout) : typeof(NullLayout); } } } diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/AppWithoutAuth.razor b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/AppWithoutAuth.razor index 4593a376c2..1c1d1b1366 100644 --- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/AppWithoutAuth.razor +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/AppWithoutAuth.razor @@ -1,6 +1,5 @@ @using Microsoft.Extensions.Options @using Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor.Routing -@using global::MudBlazor @inject IOptions RouterOptions @@ -9,7 +8,7 @@ - Sorry, there's nothing at this address. +

Sorry, there's nothing at this address.

diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/LoginDisplay.razor b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/LoginDisplay.razor index fcfc63fabb..783ddd8c74 100644 --- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/LoginDisplay.razor +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/LoginDisplay.razor @@ -3,6 +3,7 @@ @using MudBlazor @using Microsoft.Extensions.Localization @using global::Localization.Resources.AbpUi +@using Volo.Abp.DependencyInjection @inject ICurrentUser CurrentUser @inject IStringLocalizer L diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/MainLayout.razor b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/MainLayout.razor index 0ac87def8c..13fc28689d 100644 --- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/MainLayout.razor +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/MainLayout.razor @@ -1,8 +1,7 @@ @using Volo.Abp.Ui.LayoutHooks @using Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor.Components.LayoutHooks @using Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor.Components -@using Volo.Abp.AspNetCore.Components.Web.Theming.Layout -@using MudBlazor +@using Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor.Layout @inherits LayoutComponentBase diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/NavMenu.razor b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/NavMenu.razor index bdb64e1bfa..75541cb2b9 100644 --- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/NavMenu.razor +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/NavMenu.razor @@ -1,10 +1,7 @@ -@using Volo.Abp.UI.Navigation -@using MudBlazor @using Microsoft.AspNetCore.Components.Routing -@inject IMenuManager MenuManager - @foreach (var menuItem in MenuItems.Items) + @foreach (var menuItem in Menu.Items) { @if (menuItem.Items.IsNullOrEmpty()) { diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/NavMenu.razor.cs b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/NavMenu.razor.cs index ea109684c2..80a534f791 100644 --- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/NavMenu.razor.cs +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/NavMenu.razor.cs @@ -1,14 +1,35 @@ +using System; using System.Threading.Tasks; +using Microsoft.AspNetCore.Components; +using Volo.Abp.AspNetCore.Components.Web.Security; using Volo.Abp.UI.Navigation; namespace Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme.Themes.Basic; -public partial class NavMenu +public partial class NavMenu : IDisposable { - protected ApplicationMenu MenuItems { get; set; } = new(); + [Inject] + protected IMenuManager MenuManager { get; set; } - protected override async Task OnInitializedAsync() + [Inject] + protected ApplicationConfigurationChangedService ApplicationConfigurationChangedService { get; set; } + + protected ApplicationMenu Menu { get; set; } + + protected async override Task OnInitializedAsync() + { + Menu = await MenuManager.GetMainMenuAsync(); + ApplicationConfigurationChangedService.Changed += ApplicationConfigurationChanged; + } + + private async void ApplicationConfigurationChanged() + { + Menu = await MenuManager.GetMainMenuAsync(); + await InvokeAsync(StateHasChanged); + } + + public void Dispose() { - MenuItems = await MenuManager.GetMainMenuAsync(); + ApplicationConfigurationChangedService.Changed -= ApplicationConfigurationChanged; } } diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/NullLayout.razor b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/NullLayout.razor index 138f027ecd..c79079e1a8 100644 --- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/NullLayout.razor +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/NullLayout.razor @@ -1,8 +1,7 @@ @using Volo.Abp.Ui.LayoutHooks @using Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor.Components.LayoutHooks -@using Volo.Abp.AspNetCore.Components.Web.Theming.Layout @inherits LayoutComponentBase -@using global::MudBlazor +@using Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor.Layout diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/_Imports.razor b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/_Imports.razor index 4e91324cd8..ee829ba586 100644 --- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/_Imports.razor +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/_Imports.razor @@ -1,4 +1,9 @@ -@using Microsoft.AspNetCore.Components.Web -@using Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor @using MudBlazor -@using Volo.Abp.MudBlazorUI +@using System.Net.Http +@using Microsoft.AspNetCore.Components.Authorization +@using Microsoft.AspNetCore.Components.Forms +@using Microsoft.AspNetCore.Components.Routing +@using Microsoft.AspNetCore.Components.Web +@using Microsoft.JSInterop +@using Volo.Abp.MudBlazorUI; +@using Volo.Abp.MudBlazorUI.Components; \ No newline at end of file diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.MudBlazorBasicTheme/MudBlazorBasicThemeToolbarContributor.cs b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.MudBlazorBasicTheme/MudBlazorBasicThemeToolbarContributor.cs index 794042cd7e..31282207a4 100644 --- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.MudBlazorBasicTheme/MudBlazorBasicThemeToolbarContributor.cs +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.MudBlazorBasicTheme/MudBlazorBasicThemeToolbarContributor.cs @@ -1,11 +1,9 @@ using System.Threading.Tasks; -using Microsoft.AspNetCore.Components; using Microsoft.AspNetCore.Components.Authorization; using Microsoft.Extensions.DependencyInjection; -using Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme.Themes.Basic; using Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor.Toolbars; using Volo.Abp.AspNetCore.Components.WebAssembly.MudBlazorBasicTheme.Themes.Basic; -using Volo.Abp.DependencyInjection; +using LoginDisplay = Volo.Abp.AspNetCore.Components.WebAssembly.MudBlazorBasicTheme.Themes.Basic.LoginDisplay; namespace Volo.Abp.AspNetCore.Components.WebAssembly.MudBlazorBasicTheme; diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.MudBlazorBasicTheme/Themes/Basic/LanguageSwitch.razor b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.MudBlazorBasicTheme/Themes/Basic/LanguageSwitch.razor index dda55daa21..aa2ead2372 100644 --- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.MudBlazorBasicTheme/Themes/Basic/LanguageSwitch.razor +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.MudBlazorBasicTheme/Themes/Basic/LanguageSwitch.razor @@ -1,6 +1,7 @@ @using Volo.Abp.Localization @using System.Globalization @using System.Collections.Immutable +@using Microsoft.JSInterop @using Volo.Abp.AspNetCore.Components.Web @using MudBlazor @inject ILanguageProvider LanguageProvider diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.MudBlazorBasicTheme/Themes/Basic/LoginDisplay.razor b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.MudBlazorBasicTheme/Themes/Basic/LoginDisplay.razor index 66a0f8376d..c9b3f32ce6 100644 --- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.MudBlazorBasicTheme/Themes/Basic/LoginDisplay.razor +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.MudBlazorBasicTheme/Themes/Basic/LoginDisplay.razor @@ -1,9 +1,11 @@ @using Microsoft.Extensions.Localization @using global::Localization.Resources.AbpUi @using Microsoft.Extensions.Options +@using Microsoft.JSInterop @using Volo.Abp.AspNetCore.Components.Web @using Volo.Abp.AspNetCore.Components.WebAssembly.MudBlazorBasicTheme -@using MudBlazor +@using Volo.Abp.AspNetCore.Components.Web.Security +@using Volo.Abp.UI.Navigation @inherits AbpComponentBase @inject IJSRuntime JsRuntime @inject NavigationManager Navigation @@ -18,11 +20,11 @@ { @foreach (var menuItem in Menu.Items) { - @menuItem.DisplayName + @menuItem.DisplayName } } - @UiLocalizer["Logout"] + @UiLocalizer["Logout"] @@ -52,31 +54,9 @@ { ApplicationConfigurationChangedService.Changed -= ApplicationConfigurationChanged; } -} - -@implements IDisposable - - private async Task NavigateToAsync(string? uri, string? target = null) - { - if (target == "_blank") - { - await JsRuntime.InvokeVoidAsync("open", uri, target); - } - else - { - Navigation.NavigateTo(uri); - } - } - - private void BeginSignOut() + + protected void Logout() { - if (AbpAspNetCoreComponentsWebOptions.Value.IsBlazorWebApp) - { - Navigation.NavigateTo(AuthenticationOptions.Value.LogoutUrl, forceLoad: true); - } - else - { - Navigation.NavigateToLogout(AuthenticationOptions.Value.LogoutUrl); - } + Navigation.NavigateTo("/Account/Logout", forceLoad: true); } } diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/AbpIdentityBlazorMappers.cs b/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/AbpIdentityBlazorMappers.cs index 50a2668b56..f125cbcfe5 100644 --- a/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/AbpIdentityBlazorMappers.cs +++ b/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/AbpIdentityBlazorMappers.cs @@ -1,3 +1,4 @@ +using Riok.Mapperly.Abstractions; using Volo.Abp.Mapperly; namespace Volo.Abp.Identity.Blazor.MudBlazor; diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/AbpIdentityBlazorMudBlazorModule.cs b/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/AbpIdentityBlazorMudBlazorModule.cs index b71c40a089..37227e0573 100644 --- a/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/AbpIdentityBlazorMudBlazorModule.cs +++ b/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/AbpIdentityBlazorMudBlazorModule.cs @@ -1,6 +1,6 @@ using Localization.Resources.AbpUi; using Microsoft.Extensions.DependencyInjection; -using Volo.Abp.AspNetCore.Components.Web.Theming.Routing; +using Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor.Routing; using Volo.Abp.Mapperly; using Volo.Abp.MudBlazorUI; using Volo.Abp.Identity.Localization; 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 fb3b707e63..5b322beb57 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 @@ -46,8 +46,8 @@ Required="true" RequiredError="@L["FieldIsRequired", L["DisplayName:RoleName"]]" /> - - + + @@ -73,8 +73,8 @@ Required="true" RequiredError="@L["FieldIsRequired", L["DisplayName:RoleName"]]" /> - - + + diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/Pages/Identity/RoleManagement.razor.cs b/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/Pages/Identity/RoleManagement.razor.cs index 6e4a5eb42d..bdfd30c94b 100644 --- a/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/Pages/Identity/RoleManagement.razor.cs +++ b/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/Pages/Identity/RoleManagement.razor.cs @@ -2,7 +2,9 @@ using System; using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Components; using Microsoft.Extensions.Localization; +using MudBlazor; using Volo.Abp.AspNetCore.Components.Web.Extensibility.EntityActions; using Volo.Abp.AspNetCore.Components.Web.Extensibility.TableColumns; using Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor.PageToolbars; @@ -10,7 +12,6 @@ using Volo.Abp.Identity.Localization; using Volo.Abp.MudBlazorUI; using Volo.Abp.ObjectExtending; using Volo.Abp.PermissionManagement.Blazor.MudBlazor.Components; -using Volo.Abp.BlazoriseUI; namespace Volo.Abp.Identity.Blazor.MudBlazor.Pages.Identity; @@ -52,9 +53,9 @@ public partial class RoleManagement protected override ValueTask SetBreadcrumbItemsAsync() { - BreadcrumbItems.Add(new BreadcrumbItem(LUiNavigation["Menu:Administration"].Value)); - BreadcrumbItems.Add(new BreadcrumbItem(L["Menu:IdentityManagement"].Value)); - BreadcrumbItems.Add(new BreadcrumbItem(L["Roles"].Value)); + BreadcrumbItems.Add(new Volo.Abp.MudBlazorUI.BreadcrumbItem(LUiNavigation["Menu:Administration"].Value)); + BreadcrumbItems.Add(new Volo.Abp.MudBlazorUI.BreadcrumbItem(L["Menu:IdentityManagement"].Value)); + BreadcrumbItems.Add(new Volo.Abp.MudBlazorUI.BreadcrumbItem(L["Roles"].Value)); return base.SetBreadcrumbItemsAsync(); } diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/Pages/Identity/RoleNameComponent.razor b/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/Pages/Identity/RoleNameComponent.razor index 966e835340..890671d13c 100644 --- a/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/Pages/Identity/RoleNameComponent.razor +++ b/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/Pages/Identity/RoleNameComponent.razor @@ -8,9 +8,9 @@ @(Data.As().Name) @if (Data.As().IsDefault) { - @L["DisplayName:IsDefault"] + @L["DisplayName:IsDefault"] } @if (Data.As().IsPublic) { - @L["DisplayName:IsPublic"] + @L["DisplayName:IsPublic"] } 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 7c87fe0b5f..fd21defc7d 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 @@ -5,7 +5,6 @@ @using Volo.Abp.MudBlazorUI.Components.ObjectExtending @using Volo.Abp.Identity.Localization @using Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor.Components -@using Volo.Abp.BlazoriseUI @using Microsoft.Extensions.Localization @using Volo.Abp.UI.Navigation.Localization.Resource @inject IStringLocalizer LUiNavigation @@ -81,9 +80,9 @@ - + - + @@ -96,7 +95,7 @@ { @foreach (var role in NewUserRoles) { - + } } @@ -152,10 +151,10 @@ Variant="Variant.Outlined" /> @if (!IsEditCurrentUser) { - + } - + @@ -168,7 +167,7 @@ @foreach (var role in EditUserRoles) { - + } diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/Pages/Identity/UserManagement.razor.cs b/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/Pages/Identity/UserManagement.razor.cs index 6e3458fef8..c0b953127c 100644 --- a/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/Pages/Identity/UserManagement.razor.cs +++ b/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/Pages/Identity/UserManagement.razor.cs @@ -4,12 +4,12 @@ using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Components.Web; using Microsoft.Extensions.Localization; using MudBlazor; using Volo.Abp.AspNetCore.Components.Web.Extensibility.EntityActions; using Volo.Abp.AspNetCore.Components.Web.Extensibility.TableColumns; using Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor.PageToolbars; -using Volo.Abp.BlazoriseUI; using Volo.Abp.Authorization.Permissions; using Volo.Abp.Identity.Localization; using Volo.Abp.MudBlazorUI; @@ -40,6 +40,7 @@ public partial class UserManagement protected int _createTabIndex = 0; protected int _editTabIndex = 0; protected bool _showPassword; + protected bool IsEditCurrentUser; protected PageToolbar Toolbar { get; } = new(); @@ -80,9 +81,9 @@ public partial class UserManagement protected override ValueTask SetBreadcrumbItemsAsync() { - BreadcrumbItems.Add(new BreadcrumbItem(LUiNavigation["Menu:Administration"].Value)); - BreadcrumbItems.Add(new BreadcrumbItem(L["Menu:IdentityManagement"].Value)); - BreadcrumbItems.Add(new BreadcrumbItem(L["Users"].Value)); + BreadcrumbItems.Add(new Volo.Abp.MudBlazorUI.BreadcrumbItem(LUiNavigation["Menu:Administration"].Value)); + BreadcrumbItems.Add(new Volo.Abp.MudBlazorUI.BreadcrumbItem(L["Menu:IdentityManagement"].Value)); + BreadcrumbItems.Add(new Volo.Abp.MudBlazorUI.BreadcrumbItem(L["Users"].Value)); return base.SetBreadcrumbItemsAsync(); } diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/Volo.Abp.Identity.Blazor.MudBlazor.csproj b/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/Volo.Abp.Identity.Blazor.MudBlazor.csproj index 6649068b03..65d42e0683 100644 --- a/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/Volo.Abp.Identity.Blazor.MudBlazor.csproj +++ b/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/Volo.Abp.Identity.Blazor.MudBlazor.csproj @@ -5,6 +5,8 @@ net10.0 + enable + Nullable diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/_Imports.razor b/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/_Imports.razor index 5861fe75ee..489189a8c9 100644 --- a/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/_Imports.razor +++ b/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/_Imports.razor @@ -3,5 +3,4 @@ @using Volo.Abp.AspNetCore.Components.Web @using Volo.Abp.MudBlazorUI @using Volo.Abp.MudBlazorUI.Components -@using MudBlazor -@using MudBlazor.Components +@using global::MudBlazor diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/Menus/MyProjectNameMenuContributor.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/Menus/MyProjectNameMenuContributor.cs index fdfdc05cf0..27a5a4f8a2 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/Menus/MyProjectNameMenuContributor.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Client/Menus/MyProjectNameMenuContributor.cs @@ -5,9 +5,9 @@ using MyCompanyName.MyProjectName.Localization; using MyCompanyName.MyProjectName.MultiTenancy; using Volo.Abp.Account.Localization; using Volo.Abp.Authorization.Permissions; -using Volo.Abp.Identity.Blazor; -using Volo.Abp.SettingManagement.Blazor.Menus; -using Volo.Abp.TenantManagement.Blazor.Navigation; +using Volo.Abp.Identity.Blazor.MudBlazor; +using Volo.Abp.SettingManagement.Blazor.MudBlazor.Menus; +using Volo.Abp.TenantManagement.Blazor.MudBlazor.Navigation; using Volo.Abp.UI.Navigation; namespace MyCompanyName.MyProjectName.Blazor.Client.Menus; diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/Components/App.razor b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/Components/App.razor index f75e281511..a4f105cfe2 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/Components/App.razor +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/Components/App.razor @@ -2,7 +2,6 @@ @using System.Globalization @using Microsoft.Extensions.Hosting @using Volo.Abp.AspNetCore.Components.Server.MudBlazorBasicTheme.Bundling -@using Volo.Abp.AspNetCore.Components.Web.Theming.Bundling @inject IHostEnvironment Env @{ var rtl = CultureHelper.IsRtl ? "rtl" : string.Empty; diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/Menus/MyProjectNameMenuContributor.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/Menus/MyProjectNameMenuContributor.cs index 48d545868f..a8df05eb56 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/Menus/MyProjectNameMenuContributor.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/Menus/MyProjectNameMenuContributor.cs @@ -1,16 +1,14 @@ using System; using System.Threading.Tasks; using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.DependencyInjection; using MyCompanyName.MyProjectName.Localization; using MyCompanyName.MyProjectName.MultiTenancy; using Volo.Abp.Account.Localization; -using Volo.Abp.Identity.Blazor; using Volo.Abp.Authorization.Permissions; -using Volo.Abp.SettingManagement.Blazor.Menus; -using Volo.Abp.TenantManagement.Blazor.Navigation; +using Volo.Abp.Identity.Blazor.MudBlazor; +using Volo.Abp.SettingManagement.Blazor.MudBlazor.Menus; +using Volo.Abp.TenantManagement.Blazor.MudBlazor.Navigation; using Volo.Abp.UI.Navigation; -using Volo.Abp.Users; namespace MyCompanyName.MyProjectName.Blazor.Server.Tiered.Menus; diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/Components/App.razor b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/Components/App.razor index f75e281511..a4f105cfe2 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/Components/App.razor +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/Components/App.razor @@ -2,7 +2,6 @@ @using System.Globalization @using Microsoft.Extensions.Hosting @using Volo.Abp.AspNetCore.Components.Server.MudBlazorBasicTheme.Bundling -@using Volo.Abp.AspNetCore.Components.Web.Theming.Bundling @inject IHostEnvironment Env @{ var rtl = CultureHelper.IsRtl ? "rtl" : string.Empty; diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/Menus/MyProjectNameMenuContributor.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/Menus/MyProjectNameMenuContributor.cs index eeabef69b1..266e0bddda 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/Menus/MyProjectNameMenuContributor.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/Menus/MyProjectNameMenuContributor.cs @@ -1,9 +1,9 @@ using System.Threading.Tasks; using MyCompanyName.MyProjectName.Localization; using MyCompanyName.MyProjectName.MultiTenancy; -using Volo.Abp.Identity.Blazor; -using Volo.Abp.SettingManagement.Blazor.Menus; -using Volo.Abp.TenantManagement.Blazor.Navigation; +using Volo.Abp.Identity.Blazor.MudBlazor; +using Volo.Abp.SettingManagement.Blazor.MudBlazor.Menus; +using Volo.Abp.TenantManagement.Blazor.MudBlazor.Navigation; using Volo.Abp.UI.Navigation; namespace MyCompanyName.MyProjectName.Blazor.Server.Menus; diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Client/Menus/MyProjectNameMenuContributor.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Client/Menus/MyProjectNameMenuContributor.cs index 93067729fa..0b5af29792 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Client/Menus/MyProjectNameMenuContributor.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Client/Menus/MyProjectNameMenuContributor.cs @@ -5,9 +5,9 @@ using MyCompanyName.MyProjectName.Localization; using MyCompanyName.MyProjectName.MultiTenancy; using Volo.Abp.Account.Localization; using Volo.Abp.Authorization.Permissions; -using Volo.Abp.Identity.Blazor; -using Volo.Abp.SettingManagement.Blazor.Menus; -using Volo.Abp.TenantManagement.Blazor.Navigation; +using Volo.Abp.Identity.Blazor.MudBlazor; +using Volo.Abp.SettingManagement.Blazor.MudBlazor.Menus; +using Volo.Abp.TenantManagement.Blazor.MudBlazor.Navigation; using Volo.Abp.UI.Navigation; namespace MyCompanyName.MyProjectName.Blazor.WebApp.Client.Menus; diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Client/Menus/MyProjectNameMenuContributor.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Client/Menus/MyProjectNameMenuContributor.cs index 75dd7244ef..6878aaf036 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Client/Menus/MyProjectNameMenuContributor.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Client/Menus/MyProjectNameMenuContributor.cs @@ -5,9 +5,9 @@ using MyCompanyName.MyProjectName.Localization; using MyCompanyName.MyProjectName.MultiTenancy; using Volo.Abp.Account.Localization; using Volo.Abp.Authorization.Permissions; -using Volo.Abp.Identity.Blazor; -using Volo.Abp.SettingManagement.Blazor.Menus; -using Volo.Abp.TenantManagement.Blazor.Navigation; +using Volo.Abp.Identity.Blazor.MudBlazor; +using Volo.Abp.SettingManagement.Blazor.MudBlazor.Menus; +using Volo.Abp.TenantManagement.Blazor.MudBlazor.Navigation; using Volo.Abp.UI.Navigation; namespace MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Client.Menus; diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/Components/App.razor b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/Components/App.razor index 0f70667f0e..b9ee6f1c65 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/Components/App.razor +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/Components/App.razor @@ -4,7 +4,6 @@ @using Microsoft.AspNetCore.Http @using Microsoft.Extensions.Hosting @using Volo.Abp.AspNetCore.Components.Server.MudBlazorBasicTheme.Bundling -@using Volo.Abp.AspNetCore.Components.Web.Theming.Bundling @using Volo.Abp.AspNetCore.Components.WebAssembly.WebApp @inject IHostEnvironment Env @{ diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/Components/App.razor b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/Components/App.razor index 8e92d02660..8ff22afa72 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/Components/App.razor +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/Components/App.razor @@ -2,7 +2,6 @@ @using System.Globalization @using Microsoft.Extensions.Hosting @using Volo.Abp.AspNetCore.Components.Server.MudBlazorBasicTheme.Bundling -@using Volo.Abp.AspNetCore.Components.Web.Theming.Bundling @inject IHostEnvironment Env @{ var rtl = CultureHelper.IsRtl ? "rtl" : string.Empty;