From 4ffb7fc27932e7d324b675697e51838ebaba1d92 Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 7 May 2024 13:19:51 +0800 Subject: [PATCH] Merge webapp menu contributors. --- .../Menus/MyProjectNameMenuContributor.cs | 22 ++++-- .../Menus/MyProjectNameMenuContributor.cs | 20 +++-- .../Menus/MyProjectNameMenuContributor.cs | 79 ------------------- .../Menus/MyProjectNameMenus.cs | 10 --- .../MyProjectNameBlazorModule.cs | 1 + .../Menus/MyProjectNameMenuContributor.cs | 51 ------------ .../Menus/MyProjectNameMenus.cs | 10 --- .../MyProjectNameBlazorModule.cs | 4 +- 8 files changed, 31 insertions(+), 166 deletions(-) delete mode 100644 templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/Menus/MyProjectNameMenuContributor.cs delete mode 100644 templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/Menus/MyProjectNameMenus.cs delete mode 100644 templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/Menus/MyProjectNameMenuContributor.cs delete mode 100644 templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/Menus/MyProjectNameMenus.cs 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 0d3d77e298..93067729fa 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 @@ -1,4 +1,5 @@ -using System.Threading.Tasks; +using System; +using System.Threading.Tasks; using Microsoft.Extensions.Configuration; using MyCompanyName.MyProjectName.Localization; using MyCompanyName.MyProjectName.MultiTenancy; @@ -65,15 +66,22 @@ public class MyProjectNameMenuContributor : IMenuContributor private Task ConfigureUserMenuAsync(MenuConfigurationContext context) { + if (!OperatingSystem.IsBrowser()) + { + return Task.CompletedTask; + } + + var authServerUrl = _configuration["AuthServer:Authority"] ?? ""; var accountStringLocalizer = context.GetLocalizer(); context.Menu.AddItem(new ApplicationMenuItem( - "Account.Manage", - accountStringLocalizer["MyAccount"], - $"Account/Manage", - icon: "fa fa-cog", - order: 1000, - null).RequireAuthenticated()); + "Account.Manage", + accountStringLocalizer["MyAccount"], + $"{authServerUrl.EnsureEndsWith('/')}Account/Manage", + icon: "fa fa-cog", + order: 1000, + target: "_blank") + .RequireAuthenticated()); return Task.CompletedTask; } 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 6a2100cf1b..75dd7244ef 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 @@ -66,16 +66,22 @@ public class MyProjectNameMenuContributor : IMenuContributor private Task ConfigureUserMenuAsync(MenuConfigurationContext context) { - var accountStringLocalizer = context.GetLocalizer(); + if (!OperatingSystem.IsBrowser()) + { + return Task.CompletedTask; + } var authServerUrl = _configuration["AuthServer:Authority"] ?? ""; + var accountStringLocalizer = context.GetLocalizer(); + context.Menu.AddItem(new ApplicationMenuItem( - "Account.Manage", - accountStringLocalizer["MyAccount"], - $"{authServerUrl.EnsureEndsWith('/')}Account/Manage", - icon: "fa fa-cog", - order: 1000, - target: "_blank").RequireAuthenticated()); + "Account.Manage", + accountStringLocalizer["MyAccount"], + $"{authServerUrl.EnsureEndsWith('/')}Account/Manage", + icon: "fa fa-cog", + order: 1000, + target: "_blank") + .RequireAuthenticated()); return Task.CompletedTask; } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/Menus/MyProjectNameMenuContributor.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/Menus/MyProjectNameMenuContributor.cs deleted file mode 100644 index 8b15e7aae7..0000000000 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/Menus/MyProjectNameMenuContributor.cs +++ /dev/null @@ -1,79 +0,0 @@ -using System; -using System.Threading.Tasks; -using Microsoft.Extensions.Configuration; -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.UI.Navigation; - -namespace MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Menus; - -public class MyProjectNameMenuContributor : IMenuContributor -{ - private readonly IConfiguration _configuration; - - public MyProjectNameMenuContributor(IConfiguration configuration) - { - _configuration = configuration; - } - - public async Task ConfigureMenuAsync(MenuConfigurationContext context) - { - if (context.Menu.Name == StandardMenus.Main) - { - await ConfigureMainMenuAsync(context); - } - else if (context.Menu.Name == StandardMenus.User) - { - await ConfigureUserMenuAsync(context); - } - } - - private Task ConfigureMainMenuAsync(MenuConfigurationContext context) - { - var administration = context.Menu.GetAdministration(); - var l = context.GetLocalizer(); - - context.Menu.Items.Insert( - 0, - new ApplicationMenuItem( - MyProjectNameMenus.Home, - l["Menu:Home"], - "/", - icon: "fas fa-home", - order: 0 - ) - ); - - if (MultiTenancyConsts.IsEnabled) - { - administration.SetSubItemOrder(TenantManagementMenuNames.GroupName, 1); - } - else - { - administration.TryRemoveMenuItem(TenantManagementMenuNames.GroupName); - } - - administration.SetSubItemOrder(IdentityMenuNames.GroupName, 2); - administration.SetSubItemOrder(SettingManagementMenus.GroupName, 3); - - return Task.CompletedTask; - } - - private Task ConfigureUserMenuAsync(MenuConfigurationContext context) - { - var l = context.GetLocalizer(); - var accountStringLocalizer = context.GetLocalizer(); - var authServerUrl = _configuration["AuthServer:Authority"] ?? ""; - - context.Menu.AddItem(new ApplicationMenuItem("Account.Manage", accountStringLocalizer["MyAccount"], - $"{authServerUrl.EnsureEndsWith('/')}Account/Manage?returnUrl={_configuration["App:SelfUrl"]}", icon: "fa fa-cog", order: 1000, null, "_blank").RequireAuthenticated()); - context.Menu.AddItem(new ApplicationMenuItem("Account.Logout", l["Logout"], url: "~/Account/Logout", icon: "fa fa-power-off", order: int.MaxValue - 1000).RequireAuthenticated()); - - return Task.CompletedTask; - } -} diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/Menus/MyProjectNameMenus.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/Menus/MyProjectNameMenus.cs deleted file mode 100644 index 6f08562645..0000000000 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/Menus/MyProjectNameMenus.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Menus; - -public class MyProjectNameMenus -{ - private const string Prefix = "MyProjectName"; - public const string Home = Prefix + ".Home"; - - //Add your menu items here... - -} diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/MyProjectNameBlazorModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/MyProjectNameBlazorModule.cs index a1787d15dd..92f0e9faf0 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/MyProjectNameBlazorModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/MyProjectNameBlazorModule.cs @@ -16,6 +16,7 @@ using Microsoft.Extensions.Options; using Microsoft.IdentityModel.Protocols.OpenIdConnect; using Microsoft.OpenApi.Models; using MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Client; +using MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Client.Menus; using MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Components; using MyCompanyName.MyProjectName.Blazor.WebApp.Tiered.Menus; using MyCompanyName.MyProjectName.Localization; diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/Menus/MyProjectNameMenuContributor.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/Menus/MyProjectNameMenuContributor.cs deleted file mode 100644 index 4998bb002a..0000000000 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/Menus/MyProjectNameMenuContributor.cs +++ /dev/null @@ -1,51 +0,0 @@ -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.UI.Navigation; - -namespace MyCompanyName.MyProjectName.Blazor.WebApp.Menus; - -public class MyProjectNameMenuContributor : IMenuContributor -{ - public async Task ConfigureMenuAsync(MenuConfigurationContext context) - { - if (context.Menu.Name == StandardMenus.Main) - { - await ConfigureMainMenuAsync(context); - } - } - - private Task ConfigureMainMenuAsync(MenuConfigurationContext context) - { - var administration = context.Menu.GetAdministration(); - var l = context.GetLocalizer(); - - context.Menu.Items.Insert( - 0, - new ApplicationMenuItem( - MyProjectNameMenus.Home, - l["Menu:Home"], - "/", - icon: "fas fa-home", - order: 0 - ) - ); - - if (MultiTenancyConsts.IsEnabled) - { - administration.SetSubItemOrder(TenantManagementMenuNames.GroupName, 1); - } - else - { - administration.TryRemoveMenuItem(TenantManagementMenuNames.GroupName); - } - - administration.SetSubItemOrder(IdentityMenuNames.GroupName, 2); - administration.SetSubItemOrder(SettingManagementMenus.GroupName, 3); - - return Task.CompletedTask; - } -} diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/Menus/MyProjectNameMenus.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/Menus/MyProjectNameMenus.cs deleted file mode 100644 index acf9533ea0..0000000000 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/Menus/MyProjectNameMenus.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace MyCompanyName.MyProjectName.Blazor.WebApp.Menus; - -public class MyProjectNameMenus -{ - private const string Prefix = "MyProjectName"; - public const string Home = Prefix + ".Home"; - - //Add your menu items here... - -} diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/MyProjectNameBlazorModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/MyProjectNameBlazorModule.cs index ab87807219..2452d3e2ea 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/MyProjectNameBlazorModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/MyProjectNameBlazorModule.cs @@ -11,8 +11,8 @@ using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Options; using Microsoft.OpenApi.Models; using MyCompanyName.MyProjectName.Blazor.WebApp.Client; +using MyCompanyName.MyProjectName.Blazor.WebApp.Client.Menus; using MyCompanyName.MyProjectName.Blazor.WebApp.Components; -using MyCompanyName.MyProjectName.Blazor.WebApp.Menus; using MyCompanyName.MyProjectName.EntityFrameworkCore; using MyCompanyName.MyProjectName.Localization; using MyCompanyName.MyProjectName.MultiTenancy; @@ -226,7 +226,7 @@ public class MyProjectNameBlazorModule : AbpModule { Configure(options => { - options.MenuContributors.Add(new MyProjectNameMenuContributor()); + options.MenuContributors.Add(new MyProjectNameMenuContributor(context.Services.GetConfiguration())); }); }