You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
134 lines
4.7 KiB
134 lines
4.7 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Threading.Tasks;
|
|
using AntDesign;
|
|
using Lsw.Abp.AntDesignUI;
|
|
using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.PageToolbars;
|
|
using Lsw.Abp.FeatureManagement.Blazor.AntDesignUI.Components;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
using Volo.Abp.AspNetCore.Components.Web.Extensibility.EntityActions;
|
|
using Volo.Abp.AspNetCore.Components.Web.Extensibility.TableColumns;
|
|
using Volo.Abp.FeatureManagement;
|
|
using Volo.Abp.TenantManagement;
|
|
using Volo.Abp.TenantManagement.Localization;
|
|
|
|
namespace Lsw.Abp.TenantManagement.Blazor.AntDesignUI.Pages;
|
|
|
|
public partial class TenantManagement
|
|
{
|
|
protected const string FeatureProviderName = "T";
|
|
|
|
protected bool HasManageFeaturesPermission;
|
|
protected string ManageFeaturesPolicyName;
|
|
|
|
protected FeatureManagementModal FeatureManagementModal;
|
|
|
|
protected PageToolbar Toolbar { get; } = new();
|
|
|
|
protected List<TableColumn> TenantManagementTableColumns => TableColumns.Get<TenantManagement>();
|
|
|
|
public TenantManagement()
|
|
{
|
|
LocalizationResource = typeof(AbpTenantManagementResource);
|
|
ObjectMapperContext = typeof(AbpTenantManagementBlazorAntDesignModule);
|
|
|
|
CreatePolicyName = TenantManagementPermissions.Tenants.Create;
|
|
UpdatePolicyName = TenantManagementPermissions.Tenants.Update;
|
|
DeletePolicyName = TenantManagementPermissions.Tenants.Delete;
|
|
|
|
ManageFeaturesPolicyName = TenantManagementPermissions.Tenants.ManageFeatures;
|
|
}
|
|
|
|
protected override ValueTask SetBreadcrumbItemsAsync()
|
|
{
|
|
BreadcrumbItems.Add(new AbpBreadcrumbItem(L["Menu:TenantManagement"]));
|
|
BreadcrumbItems.Add(new AbpBreadcrumbItem(L["Tenants"]));
|
|
|
|
return base.SetBreadcrumbItemsAsync();
|
|
}
|
|
|
|
protected override async Task SetPermissionsAsync()
|
|
{
|
|
await base.SetPermissionsAsync();
|
|
|
|
HasManageFeaturesPermission = await AuthorizationService.IsGrantedAsync(ManageFeaturesPolicyName);
|
|
}
|
|
|
|
protected override string GetDeleteConfirmationMessage(TenantDto entity)
|
|
{
|
|
return string.Format(L["TenantDeletionConfirmationMessage"], entity.Name);
|
|
}
|
|
|
|
protected override ValueTask SetToolbarItemsAsync()
|
|
{
|
|
Toolbar.AddButton(L["ManageHostFeatures"],
|
|
async () => await FeatureManagementModal.OpenAsync(FeatureProviderName),
|
|
IconType.Outline.Setting,
|
|
requiredPolicyName: FeatureManagementPermissions.ManageHostFeatures);
|
|
|
|
Toolbar.AddButton(L["NewTenant"],
|
|
OpenCreateModalAsync,
|
|
IconType.Outline.Plus,
|
|
requiredPolicyName: CreatePolicyName);
|
|
|
|
return base.SetToolbarItemsAsync();
|
|
}
|
|
|
|
protected override ValueTask SetEntityActionsAsync()
|
|
{
|
|
EntityActions
|
|
.Get<TenantManagement>()
|
|
.AddRange(new EntityAction[]
|
|
{
|
|
new EntityAction
|
|
{
|
|
Text = L["Edit"],
|
|
Visible = (data) => HasUpdatePermission,
|
|
Clicked = async (data) => { await OpenEditModalAsync(data.As<TenantDto>()); }
|
|
},
|
|
new EntityAction
|
|
{
|
|
Text = L["Features"],
|
|
Visible = (data) => HasManageFeaturesPermission,
|
|
Clicked = async (data) =>
|
|
{
|
|
var tenant = data.As<TenantDto>();
|
|
await FeatureManagementModal.OpenAsync(FeatureProviderName, tenant.Id.ToString());
|
|
}
|
|
},
|
|
new EntityAction
|
|
{
|
|
Text = L["Delete"],
|
|
Visible = (data) => HasDeletePermission,
|
|
Clicked = async (data) => await DeleteEntityAsync(data.As<TenantDto>()),
|
|
ConfirmationMessage = (data) => GetDeleteConfirmationMessage(data.As<TenantDto>())
|
|
}
|
|
});
|
|
|
|
return base.SetEntityActionsAsync();
|
|
}
|
|
|
|
protected override ValueTask SetTableColumnsAsync()
|
|
{
|
|
TenantManagementTableColumns
|
|
.AddRange(new TableColumn[]
|
|
{
|
|
new TableColumn
|
|
{
|
|
Title = L["TenantName"],
|
|
Data = nameof(TenantDto.Name),
|
|
},
|
|
new TableColumn
|
|
{
|
|
Title = L["Actions"],
|
|
Actions = EntityActions.Get<TenantManagement>()
|
|
},
|
|
});
|
|
|
|
// TenantManagementTableColumns.AddRange(GetExtensionTableColumns(
|
|
// TenantManagementModuleExtensionConsts.ModuleName,
|
|
// TenantManagementModuleExtensionConsts.EntityNames.Tenant));
|
|
|
|
return base.SetTableColumnsAsync();
|
|
}
|
|
}
|
|
|