Implemented template crud, db entities, import/export, ptero and pelican import
This commit is contained in:
75
MoonlightServers.Frontend/Admin/Index.razor
Normal file
75
MoonlightServers.Frontend/Admin/Index.razor
Normal file
@@ -0,0 +1,75 @@
|
||||
@page "/admin/servers"
|
||||
|
||||
@using LucideBlazor
|
||||
@using MoonlightServers.Shared
|
||||
@using ShadcnBlazor.Tab
|
||||
|
||||
@inject IAuthorizationService AuthorizationService
|
||||
@inject NavigationManager Navigation
|
||||
|
||||
@attribute [Authorize(Policy = Permissions.Servers.View)]
|
||||
|
||||
<Tabs DefaultValue="@(Tab ?? "servers")" OnValueChanged="OnTabChanged">
|
||||
<TabsList ClassName="inline-flex w-full lg:w-fit justify-start overflow-x-auto overflow-y-hidden">
|
||||
<TabsTrigger Value="servers" Disabled="@(!ServersAccess.Succeeded)">
|
||||
<ContainerIcon />
|
||||
Servers
|
||||
</TabsTrigger>
|
||||
<TabsTrigger Value="nodes" Disabled="@(!NodesAccess.Succeeded)">
|
||||
<ServerIcon />
|
||||
Nodes
|
||||
</TabsTrigger>
|
||||
<TabsTrigger Value="templates" Disabled="@(!TemplatesAccess.Succeeded)">
|
||||
<Package2Icon />
|
||||
Templates
|
||||
</TabsTrigger>
|
||||
<TabsTrigger Value="manager" Disabled="@(!NodesAccess.Succeeded)">
|
||||
<TableIcon />
|
||||
Manager
|
||||
</TabsTrigger>
|
||||
</TabsList>
|
||||
@if (ServersAccess.Succeeded)
|
||||
{
|
||||
<TabsContent Value="servers">
|
||||
|
||||
</TabsContent>
|
||||
}
|
||||
|
||||
@if (NodesAccess.Succeeded)
|
||||
{
|
||||
<TabsContent Value="nodes">
|
||||
<MoonlightServers.Frontend.Admin.Nodes.Overview />
|
||||
</TabsContent>
|
||||
}
|
||||
|
||||
@if (TemplatesAccess.Succeeded)
|
||||
{
|
||||
<TabsContent Value="templates">
|
||||
<MoonlightServers.Frontend.Admin.Templates.Overview />
|
||||
</TabsContent>
|
||||
}
|
||||
</Tabs>
|
||||
|
||||
@code
|
||||
{
|
||||
[Parameter]
|
||||
[SupplyParameterFromQuery(Name = "tab")]
|
||||
public string? Tab { get; set; }
|
||||
|
||||
[CascadingParameter] public Task<AuthenticationState> AuthState { get; set; }
|
||||
|
||||
private AuthorizationResult ServersAccess;
|
||||
private AuthorizationResult NodesAccess;
|
||||
private AuthorizationResult TemplatesAccess;
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
var authState = await AuthState;
|
||||
|
||||
ServersAccess = await AuthorizationService.AuthorizeAsync(authState.User, Permissions.Servers.View);
|
||||
NodesAccess = await AuthorizationService.AuthorizeAsync(authState.User, Permissions.Nodes.View);
|
||||
TemplatesAccess = await AuthorizationService.AuthorizeAsync(authState.User, Permissions.Templates.View);
|
||||
}
|
||||
|
||||
private void OnTabChanged(string tab) => Navigation.NavigateTo($"/admin/servers?tab={tab}");
|
||||
}
|
||||
Reference in New Issue
Block a user