diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/AbpTenantManagementBlazorAutoMapperProfile.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/AbpTenantManagementBlazorAutoMapperProfile.cs index 12564ad7de..ca5ab2ba51 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/AbpTenantManagementBlazorAutoMapperProfile.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/AbpTenantManagementBlazorAutoMapperProfile.cs @@ -6,9 +6,8 @@ namespace Volo.Abp.TenantManagement.Blazor { public AbpTenantManagementBlazorAutoMapperProfile() { - /* You can configure your AutoMapper mapping configuration here. - * Alternatively, you can split your mapping configurations - * into multiple profile classes for a better organization. */ + CreateMap() + .MapExtraProperties(); } } -} \ No newline at end of file +} diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/AbpTenantManagementBlazorModule.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/AbpTenantManagementBlazorModule.cs index 148f959b40..81c4733582 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/AbpTenantManagementBlazorModule.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/AbpTenantManagementBlazorModule.cs @@ -2,7 +2,7 @@ using Volo.Abp.AspNetCore.Components.WebAssembly.Theming.Routing; using Volo.Abp.AutoMapper; using Volo.Abp.Modularity; -using Volo.Abp.TenantManagement.Blazor.Menus; +using Volo.Abp.TenantManagement.Blazor.Navigation; using Volo.Abp.UI.Navigation; namespace Volo.Abp.TenantManagement.Blazor @@ -10,7 +10,7 @@ namespace Volo.Abp.TenantManagement.Blazor [DependsOn( typeof(AbpAutoMapperModule), typeof(AbpTenantManagementHttpApiClientModule) - )] + )] public class AbpTenantManagementBlazorModule : AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) @@ -33,4 +33,4 @@ namespace Volo.Abp.TenantManagement.Blazor }); } } -} \ No newline at end of file +} diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/FodyWeavers.xml b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/FodyWeavers.xml index 00e1d9a1c1..be0de3a908 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/FodyWeavers.xml +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/FodyWeavers.xml @@ -1,3 +1,3 @@  - + \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Menus/TenantManagementBlazorMenuContributor.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Menus/TenantManagementBlazorMenuContributor.cs deleted file mode 100644 index f21b480a88..0000000000 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Menus/TenantManagementBlazorMenuContributor.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System.Threading.Tasks; -using Volo.Abp.UI.Navigation; - -namespace Volo.Abp.TenantManagement.Blazor.Menus -{ - public class TenantManagementBlazorMenuContributor : IMenuContributor - { - public async Task ConfigureMenuAsync(MenuConfigurationContext context) - { - if (context.Menu.Name == StandardMenus.Main) - { - await ConfigureMainMenu(context); - } - } - - private Task ConfigureMainMenu(MenuConfigurationContext context) - { - //Add main menu items. - - return Task.CompletedTask; - } - } -} \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Menus/TenantManagementBlazorMenus.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Menus/TenantManagementBlazorMenus.cs deleted file mode 100644 index 002fe04d88..0000000000 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Menus/TenantManagementBlazorMenus.cs +++ /dev/null @@ -1,11 +0,0 @@ -namespace Volo.Abp.TenantManagement.Blazor.Menus -{ - public class TenantManagementBlazorMenus - { - private const string Prefix = "MyProjectName"; - - //Add your menu items here... - //public const string Home = Prefix + ".MyNewMenuItem"; - - } -} \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Navigation/AbpIdentityWebMainMenuContributor.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Navigation/AbpIdentityWebMainMenuContributor.cs new file mode 100644 index 0000000000..b389248dc9 --- /dev/null +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Navigation/AbpIdentityWebMainMenuContributor.cs @@ -0,0 +1,32 @@ +using System.Threading.Tasks; +using Volo.Abp.TenantManagement.Localization; +using Volo.Abp.UI.Navigation; + +namespace Volo.Abp.TenantManagement.Blazor.Navigation +{ + public class TenantManagementBlazorMenuContributor : IMenuContributor + { + public async Task ConfigureMenuAsync(MenuConfigurationContext context) + { + if (context.Menu.Name == StandardMenus.Main) + { + await ConfigureMainMenu(context); + } + } + + private async Task ConfigureMainMenu(MenuConfigurationContext context) + { + var administrationMenu = context.Menu.GetAdministration(); + + var l = context.GetLocalizer(); + + var tenantManagementMenuItem = new ApplicationMenuItem(TenantManagementMenuNames.GroupName, l["Menu:TenantManagement"], icon: "fa fa-users"); + administrationMenu.AddItem(tenantManagementMenuItem); + + if (await context.IsGrantedAsync(TenantManagementPermissions.Tenants.Default)) + { + tenantManagementMenuItem.AddItem(new ApplicationMenuItem(TenantManagementMenuNames.Tenants, l["Tenants"], url: "TenantManagement/Tenants")); + } + } + } +} diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Navigation/TenantManagementMenuNames.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Navigation/TenantManagementMenuNames.cs new file mode 100644 index 0000000000..e9876e8d59 --- /dev/null +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Navigation/TenantManagementMenuNames.cs @@ -0,0 +1,9 @@ +namespace Volo.Abp.TenantManagement.Blazor.Navigation +{ + public class TenantManagementMenuNames + { + public const string GroupName = "TenantManagement"; + + public const string Tenants = GroupName + ".Tenants"; + } +} diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor new file mode 100644 index 0000000000..f24a4fa5c7 --- /dev/null +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor @@ -0,0 +1,61 @@ +@page "/tenant-management/tenants" +@attribute [Authorize(TenantManagementPermissions.Tenants.Default)] +@using Microsoft.AspNetCore.Authorization +@using Microsoft.Extensions.Localization +@using Volo.Abp.TenantManagement.Localization +@inherits TenantManagementBase +@inject IStringLocalizer L + +@* ************************* PAGE HEADER ************************* *@ + + +

@L["Tenants"]

+
+ + @if (HasCreatePermission) + { + + + + } + +
+ +@* ************************* DATA GRID ************************* *@ + + + @if (ShouldShowEntityActions) + { + + + + + @L["Actions"] + + + @if (HasUpdatePermission) + { + @L["Edit"] + } + @if (HasDeletePermission) + { + + @L["Delete"] + } + + + + + } + + + @(context.As().Name) + + + + diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor.cs new file mode 100644 index 0000000000..5cdb622398 --- /dev/null +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor.cs @@ -0,0 +1,29 @@ +using System; +using System.Threading.Tasks; +using Volo.Abp.BlazoriseUI; + +namespace Volo.Abp.TenantManagement.Blazor.Pages.TenantManagement +{ + public abstract class TenantManagementBase + : AbpCrudPageBase + { + protected bool ShouldShowEntityActions; + + public TenantManagementBase() + { + ObjectMapperContext = typeof(AbpTenantManagementBlazorModule); + + CreatePolicyName = TenantManagementPermissions.Tenants.Create; + UpdatePolicyName = TenantManagementPermissions.Tenants.Update; + DeletePolicyName = TenantManagementPermissions.Tenants.Delete; + } + + protected override async Task SetPermissionsAsync() + { + await base.SetPermissionsAsync(); + + ShouldShowEntityActions = HasUpdatePermission || + HasDeletePermission; + } + } +} \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/Tenants/Index.razor b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/Tenants/Index.razor deleted file mode 100644 index fccf9239d6..0000000000 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/Tenants/Index.razor +++ /dev/null @@ -1,8 +0,0 @@ -@page "/TenantManagement/Tenants" -@using Microsoft.Extensions.Localization -@using Volo.Abp.TenantManagement.Localization -@inject IStringLocalizer L -@{ -} -

MyProjectName

-

@L["SamplePageMessage"]

\ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Volo.Abp.TenantManagement.Blazor.csproj b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Volo.Abp.TenantManagement.Blazor.csproj index 1bcaeccb0b..0aec8b042a 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Volo.Abp.TenantManagement.Blazor.csproj +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Volo.Abp.TenantManagement.Blazor.csproj @@ -1,20 +1,26 @@ - + - - - - - netstandard2.1 - 3.0 - Volo.Abp.TenantManagement.Blazor - + + - - - - + + netstandard2.1 + 3.0 + + + + + + + + + + + + + + true + + - - - diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/_Import.razor b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/_Imports.razor similarity index 66% rename from modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/_Import.razor rename to modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/_Imports.razor index 4685ac9893..bcb4626f1f 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/_Import.razor +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/_Imports.razor @@ -1,5 +1,6 @@ @using Microsoft.AspNetCore.Components.Web @using Volo.Abp.AspNetCore.Components.WebAssembly +@using Microsoft.AspNetCore.Components.Forms @using Volo.Abp.BlazoriseUI @using Blazorise -@using Blazorise.DataGrid \ No newline at end of file +@using Blazorise.DataGrid