Added expired services overview to store pages
This commit is contained in:
parent
3092daaad4
commit
6d5a5fd16c
|
@ -16,6 +16,11 @@
|
||||||
<i class="bx bx-sm bx-gift me-2"></i> Gifts
|
<i class="bx bx-sm bx-gift me-2"></i> Gifts
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="nav-item mt-2">
|
||||||
|
<a class="nav-link text-active-primary ms-0 me-10 py-5 @(Index == 3 ? "active" : "")" href="/admin/store/expired">
|
||||||
|
<i class="bx bx-sm bx-timer me-2"></i> Expired services
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
74
Moonlight/Shared/Views/Admin/Store/Expired.razor
Normal file
74
Moonlight/Shared/Views/Admin/Store/Expired.razor
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
@page "/admin/store/expired"
|
||||||
|
|
||||||
|
@using Moonlight.App.Extensions.Attributes
|
||||||
|
@using Moonlight.App.Models.Enums
|
||||||
|
@using Moonlight.App.Database.Entities.Store
|
||||||
|
@using BlazorTable
|
||||||
|
@using Microsoft.EntityFrameworkCore
|
||||||
|
@using Moonlight.App.Repositories
|
||||||
|
|
||||||
|
@attribute [RequirePermission(Permission.AdminStore)]
|
||||||
|
|
||||||
|
@inject Repository<Service> ServiceRepository
|
||||||
|
|
||||||
|
<AdminStoreNavigation Index="3"/>
|
||||||
|
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<h3 class="card-title">Expired services</h3>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<LazyLoader Load="Load">
|
||||||
|
<Table TableItem="Service"
|
||||||
|
Items="Services"
|
||||||
|
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="Service" Field="@(x => x.Id)" Title="Id" Filterable="true" Sortable="true"/>
|
||||||
|
<Column TableItem="Service" Field="@(x => x.Nickname)" Title="Name" Filterable="true" Sortable="false">
|
||||||
|
<Template>
|
||||||
|
<a href="/admin/services/view/@(context.Id)">@(context.Nickname ?? $"Service {context.Id}")</a>
|
||||||
|
</Template>
|
||||||
|
</Column>
|
||||||
|
<Column TableItem="Service" Field="@(x => x.Owner)" Title="Owner" Filterable="false" Sortable="false">
|
||||||
|
<Template>
|
||||||
|
<span>@(context.Owner.Username)</span>
|
||||||
|
</Template>
|
||||||
|
</Column>
|
||||||
|
<Column TableItem="Service" Field="@(x => x.Product)" Title="Type" Filterable="false" Sortable="false">
|
||||||
|
<Template>
|
||||||
|
<span>@(context.Product.Type)</span>
|
||||||
|
</Template>
|
||||||
|
</Column>
|
||||||
|
<Column TableItem="Service" Field="@(x => x.Product)" Title="Product" Filterable="false" Sortable="false">
|
||||||
|
<Template>
|
||||||
|
<span>@(context.Product.Name)</span>
|
||||||
|
</Template>
|
||||||
|
</Column>
|
||||||
|
<Column TableItem="Service" Field="@(x => x.CreatedAt)" Title="Created at" Filterable="true" Sortable="true"/>
|
||||||
|
<Column TableItem="Service" Field="@(x => x.RenewAt)" Title="" Filterable="false" Sortable="true">
|
||||||
|
<Template>
|
||||||
|
<span>Expired since @(Formatter.FormatAgoFromDateTime(context.RenewAt))</span>
|
||||||
|
</Template>
|
||||||
|
</Column>
|
||||||
|
</Table>
|
||||||
|
</LazyLoader>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@code
|
||||||
|
{
|
||||||
|
private Service[] Services;
|
||||||
|
|
||||||
|
private Task Load(LazyLoader lazyLoader)
|
||||||
|
{
|
||||||
|
Services = ServiceRepository
|
||||||
|
.Get()
|
||||||
|
.Include(x => x.Owner)
|
||||||
|
.Include(x => x.Product)
|
||||||
|
.Where(x => x.RenewAt < DateTime.UtcNow)
|
||||||
|
.ToArray();
|
||||||
|
|
||||||
|
return Task.CompletedTask;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue