Add list for USB vendors.

This commit is contained in:
2025-09-12 01:42:31 +01:00
parent 83dc40c980
commit 89eba245e2
4 changed files with 130 additions and 48 deletions

View File

@@ -53,7 +53,6 @@
</ItemGroup>
<ItemGroup>
<Folder Include="Components\Admin\Pages\Usb\Vendors\" />
<Folder Include="wwwroot\assets\"/>
</ItemGroup>

View File

@@ -50,6 +50,9 @@
<NavLink class="nav-link" href="/admin/usb/products">
USB Products
</NavLink>
<NavLink class="nav-link" href="/admin/usb/vendors">
USB Vendors
</NavLink>
<NavLink class="nav-link" href="/admin/versions">
Versions
</NavLink>

View File

@@ -0,0 +1,52 @@
@page "/admin/usb/vendors"
@attribute [Authorize]
@layout AdminLayout
@rendermode InteractiveServer
@inject Microsoft.EntityFrameworkCore.IDbContextFactory<DbContext> DbContextFactory
<PageTitle>USB vendors</PageTitle>
@if(!_initialized)
{
<div class="stats-section">
<h1 style="color: red; align-content: center; padding: 2rem">Loading...</h1>
</div>
return;
}
<section class="stats-section">
<h4>USB vendors</h4>
<table class="table table-dark table-striped table-bordered mt-4 mb-4">
<thead class="thead-dark">
<tr>
<th class="fw-bold bg-secondary text-light">
@DisplayNameHelper.GetDisplayName(typeof(UsbVendor), nameof(UsbVendor.Vendor))
</th>
<th class="fw-bold bg-secondary text-light">
@DisplayNameHelper.GetDisplayName(typeof(UsbVendor), nameof(UsbVendor.VendorId))
</th>
<th class="fw-bold bg-secondary text-light">
Actions
</th>
</tr>
</thead>
<tbody>
@foreach(UsbVendor item in _items)
{
<tr>
<td>
@item.Vendor
</td>
<td>
@item.VendorId
</td>
<td>
<a class="btn btn-primary" href="/admin/usb/vendors/@item.VendorId" target="_blank">Details</a>
</td>
</tr>
}
</tbody>
</table>
</section>

View File

@@ -0,0 +1,28 @@
using Aaru.Server.Database.Models;
using Microsoft.EntityFrameworkCore;
using DbContext = Aaru.Server.Database.DbContext;
namespace Aaru.Server.Components.Admin.Pages.Usb.Vendors;
public partial class List
{
bool _initialized;
List<UsbVendor> _items;
/// <inheritdoc />
protected override async Task OnInitializedAsync()
{
await base.OnInitializedAsync();
StateHasChanged();
await using DbContext ctx = await DbContextFactory.CreateDbContextAsync();
_items = await ctx.UsbVendors.OrderBy(static v => v.Vendor).ThenBy(static v => v.VendorId).ToListAsync();
_initialized = true;
StateHasChanged();
}
}