Files
Moonlight/Moonlight/Shared/Views/Admin/Users/Index.razor
2023-10-29 16:05:29 +01:00

52 lines
1.8 KiB
Plaintext

@page "/admin/users"
@using Moonlight.App.Extensions.Attributes
@using Moonlight.App.Models.Enums
@using Moonlight.App.Repositories
@using BlazorTable
@attribute [RequirePermission(Permission.AdminUsers)]
@inject Repository<User> UserRepository
<AdminUsersNavigation Index="0"/>
<div class="card mt-5">
<div class="card-body">
<LazyLoader Load="Load">
<Table TableItem="User"
Items="AllUsers"
PageSize="50"
TableClass="table table-row-bordered table-row-gray-100 align-middle gs-0 gy-3 fs-6"
TableHeadClass="fw-bold text-muted">
<Column TableItem="User" Title="Id" Field="@(x => x.Id)" Sortable="true" Filterable="true"/>
<Column TableItem="User" Title="Username" Field="@(x => x.Username)" Sortable="true" Filterable="true">
<Template>
<a href="/admin/users/view/@(context.Id)">@(context.Username)</a>
</Template>
</Column>
<Column TableItem="User" Title="Email" Field="@(x => x.Email)" Sortable="true" Filterable="true"/>
<Column TableItem="User" Title="Created at" Field="@(x => x.CreatedAt)" Sortable="true" Filterable="true">
<Template>
<span>@(Formatter.FormatDate(context.CreatedAt))</span>
</Template>
</Column>
<Pager ShowPageNumber="true" ShowTotalCount="true" AlwaysShow="true"/>
</Table>
</LazyLoader>
</div>
</div>
@code
{
private User[] AllUsers;
private Task Load(LazyLoader _)
{
AllUsers = UserRepository
.Get()
.ToArray();
return Task.CompletedTask;
}
}