55 lines
2.1 KiB
Plaintext
55 lines
2.1 KiB
Plaintext
@page "/administration"
|
|
@rendermode InteractiveServer
|
|
|
|
@using static Microsoft.AspNetCore.Components.Web.RenderMode
|
|
@using BlazorStrap
|
|
@using HopFrame.Web.Pages.Administration.Layout
|
|
@using BlazorStrap.V5
|
|
@using HopFrame.Security.Authorization
|
|
@using HopFrame.Web.Admin.Providers
|
|
@using HopFrame.Web.Components
|
|
@using HopFrame.Web.Models
|
|
@using Microsoft.AspNetCore.Components.Web
|
|
@using Microsoft.Extensions.Options
|
|
@layout AdminLayout
|
|
|
|
<AuthorizedView Permission="@Options.Value.Dashboard" RedirectIfUnauthorized="@ConstructRedirectUri()" />
|
|
|
|
<PageTitle>Admin Dashboard</PageTitle>
|
|
|
|
<BSContainer>
|
|
<BSRow Justify="Justify.Center">
|
|
@foreach (var adminPage in Pages.LoadRegisteredAdminPages()) {
|
|
<AuthorizedView Permission="@adminPage.Permissions.Read">
|
|
<BSCol Column="4" style="margin-bottom: 10px">
|
|
<BSCard CardType="CardType.Card" Color="BSColor.Dark" style="min-height: 200px; min-width: 200px">
|
|
<BSCard CardType="CardType.Body" style="display: flex; flex-direction: column">
|
|
<BSCard CardType="CardType.Title">@adminPage.Title</BSCard>
|
|
<BSCard CardType="CardType.Subtitle"><span style="color: gray">@adminPage.Permissions.Read</span></BSCard>
|
|
<BSCard CardType="CardType.Text">@adminPage.Description</BSCard>
|
|
<BSButton IsOutlined="true" MarginTop="Margins.Auto" style="width: max-content; align-self: center" OnClick="() => NavigateTo(adminPage.Url)" Color="BSColor.Light">Open</BSButton>
|
|
</BSCard>
|
|
</BSCard>
|
|
</BSCol>
|
|
</AuthorizedView>
|
|
}
|
|
</BSRow>
|
|
</BSContainer>
|
|
|
|
@inject NavigationManager Navigator
|
|
@inject IAdminPagesProvider Pages
|
|
@inject IOptions<AdminPermissionOptions> Options
|
|
@inject HopFrameWebModuleConfig Config
|
|
|
|
@code {
|
|
|
|
public void NavigateTo(string url) {
|
|
Navigator.NavigateTo("/administration/" + url, true);
|
|
}
|
|
|
|
public string ConstructRedirectUri() {
|
|
return Config.AdminLoginPageUri + "?redirect=/administration";
|
|
}
|
|
|
|
}
|