From f5cd821b1ca8938d280fcaaedc7c6e6e1bb58a3a Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Fri, 12 Sep 2025 12:44:47 +0100 Subject: [PATCH] Add USB device details view with loading state --- .../Admin/Pages/Usb/Devices/Details.razor | 59 +++++++++++++++++++ .../Admin/Pages/Usb/Devices/Details.razor.cs | 28 +++++++++ 2 files changed, 87 insertions(+) create mode 100644 Aaru.Server/Components/Admin/Pages/Usb/Devices/Details.razor create mode 100644 Aaru.Server/Components/Admin/Pages/Usb/Devices/Details.razor.cs diff --git a/Aaru.Server/Components/Admin/Pages/Usb/Devices/Details.razor b/Aaru.Server/Components/Admin/Pages/Usb/Devices/Details.razor new file mode 100644 index 00000000..01a79677 --- /dev/null +++ b/Aaru.Server/Components/Admin/Pages/Usb/Devices/Details.razor @@ -0,0 +1,59 @@ +@page "/admin/usb/devices/{id:int}" +@attribute [Authorize] +@layout AdminLayout +@rendermode InteractiveServer + +@inject Microsoft.EntityFrameworkCore.IDbContextFactory DbContextFactory + +USB device + +@if(!_initialized) +{ +
+

Loading...

+
+ + return; +} + +
+
+

USB device

+
+
+
+ @DisplayNameHelper.GetDisplayName(typeof(Usb), nameof(Usb.Manufacturer)) +
+
+ @_model?.Manufacturer +
+
+ @DisplayNameHelper.GetDisplayName(typeof(Usb), nameof(Usb.Product)) +
+
+ @_model?.Product +
+
+ @DisplayNameHelper.GetDisplayName(typeof(Usb), nameof(Usb.VendorID)) +
+
+ @_model?.VendorID +
+
+ @DisplayNameHelper.GetDisplayName(typeof(Usb), nameof(Usb.ProductID)) +
+
+ @_model?.ProductID +
+
+ @DisplayNameHelper.GetDisplayName(typeof(Usb), nameof(Usb.RemovableMedia)) +
+
+ @_model?.RemovableMedia +
+
+
+
+ Back to List +
+
\ No newline at end of file diff --git a/Aaru.Server/Components/Admin/Pages/Usb/Devices/Details.razor.cs b/Aaru.Server/Components/Admin/Pages/Usb/Devices/Details.razor.cs new file mode 100644 index 00000000..a2ba9f49 --- /dev/null +++ b/Aaru.Server/Components/Admin/Pages/Usb/Devices/Details.razor.cs @@ -0,0 +1,28 @@ +using Microsoft.AspNetCore.Components; +using Microsoft.EntityFrameworkCore; +using DbContext = Aaru.Server.Database.DbContext; + +namespace Aaru.Server.Components.Admin.Pages.Usb.Devices; + +public partial class Details +{ + bool _initialized; + CommonTypes.Metadata.Usb? _model; + [Parameter] + public int Id { get; set; } + + protected override async Task OnInitializedAsync() + { + await base.OnInitializedAsync(); + + StateHasChanged(); + + await using DbContext ctx = await DbContextFactory.CreateDbContextAsync(); + + _model = await ctx.Usb.FirstOrDefaultAsync(m => m.Id == Id); + + _initialized = true; + + StateHasChanged(); + } +} \ No newline at end of file