|
|
@@ -1,11 +1,10 @@
|
|
|
-@using RackPeek.Domain.Resources.Hardware.Models
|
|
|
-@using RackPeek.Domain.Resources.Hardware.Desktops
|
|
|
+@using RackPeek.Domain.Resources.Hardware.Desktops
|
|
|
@using RackPeek.Domain.Resources.Hardware.Desktops.Cpus
|
|
|
@using RackPeek.Domain.Resources.Hardware.Desktops.Drives
|
|
|
@using RackPeek.Domain.Resources.Hardware.Desktops.Gpus
|
|
|
@using RackPeek.Domain.Resources.Hardware.Desktops.Nics
|
|
|
+@using RackPeek.Domain.Resources.Hardware.Models
|
|
|
@using RackPeek.Web.Components.Modals
|
|
|
-
|
|
|
@inject GetDesktopUseCase GetDesktopUseCase
|
|
|
@inject UpdateDesktopUseCase UpdateDesktopUseCase
|
|
|
@inject DeleteDesktopUseCase DeleteDesktopUseCase
|
|
|
@@ -31,7 +30,7 @@
|
|
|
<div class="text-zinc-100 hover:text-emerald-300">
|
|
|
<NavLink href="@($"/resources/hardware/{Desktop.Name}")" class="block">
|
|
|
|
|
|
- @Desktop.Name
|
|
|
+ @Desktop.Name
|
|
|
</NavLink>
|
|
|
</div>
|
|
|
|
|
|
@@ -43,7 +42,7 @@
|
|
|
</span>
|
|
|
}
|
|
|
<div class="flex items-center gap-2">
|
|
|
-
|
|
|
+
|
|
|
<button
|
|
|
class="text-xs text-red-400 hover:text-red-300 transition"
|
|
|
title="Delete server"
|
|
|
@@ -52,7 +51,7 @@
|
|
|
</button>
|
|
|
</div>
|
|
|
</div>
|
|
|
-
|
|
|
+
|
|
|
|
|
|
</div>
|
|
|
|
|
|
@@ -76,7 +75,8 @@
|
|
|
{
|
|
|
@foreach (var cpu in Desktop.Cpus)
|
|
|
{
|
|
|
- <div class="flex items-center justify-between text-zinc-300 group hover:bg-zinc-800/40 rounded px-1 py-0.5">
|
|
|
+ <div
|
|
|
+ class="flex items-center justify-between text-zinc-300 group hover:bg-zinc-800/40 rounded px-1 py-0.5">
|
|
|
<button
|
|
|
class="hover:text-emerald-400"
|
|
|
title="Edit CPU"
|
|
|
@@ -102,7 +102,8 @@
|
|
|
|
|
|
@if (Desktop.Ram is not null)
|
|
|
{
|
|
|
- <div class="flex items-center justify-between text-zinc-300 group hover:bg-zinc-800/40 rounded px-1 py-0.5">
|
|
|
+ <div
|
|
|
+ class="flex items-center justify-between text-zinc-300 group hover:bg-zinc-800/40 rounded px-1 py-0.5">
|
|
|
<button
|
|
|
class="hover:text-emerald-400"
|
|
|
@onclick="EditRam">
|
|
|
@@ -130,7 +131,8 @@
|
|
|
{
|
|
|
@foreach (var drive in Desktop.Drives)
|
|
|
{
|
|
|
- <div class="flex items-center justify-between text-zinc-300 group hover:bg-zinc-800/40 rounded px-1 py-0.5">
|
|
|
+ <div
|
|
|
+ class="flex items-center justify-between text-zinc-300 group hover:bg-zinc-800/40 rounded px-1 py-0.5">
|
|
|
<button
|
|
|
class="hover:text-emerald-400"
|
|
|
@onclick="() => OpenEditDrive(drive)">
|
|
|
@@ -159,7 +161,8 @@
|
|
|
{
|
|
|
@foreach (var nic in Desktop.Nics)
|
|
|
{
|
|
|
- <div class="flex items-center justify-between text-zinc-300 group hover:bg-zinc-800/40 rounded px-1 py-0.5">
|
|
|
+ <div
|
|
|
+ class="flex items-center justify-between text-zinc-300 group hover:bg-zinc-800/40 rounded px-1 py-0.5">
|
|
|
<button
|
|
|
class="hover:text-emerald-400"
|
|
|
@onclick="() => OpenEditNic(nic)">
|
|
|
@@ -188,7 +191,8 @@
|
|
|
{
|
|
|
@foreach (var gpu in Desktop.Gpus)
|
|
|
{
|
|
|
- <div class="flex items-center justify-between text-zinc-300 group hover:bg-zinc-800/40 rounded px-1 py-0.5">
|
|
|
+ <div
|
|
|
+ class="flex items-center justify-between text-zinc-300 group hover:bg-zinc-800/40 rounded px-1 py-0.5">
|
|
|
<button
|
|
|
class="hover:text-emerald-400"
|
|
|
@onclick="() => OpenEditGpu(gpu)">
|
|
|
@@ -205,7 +209,7 @@
|
|
|
IsOpen="@_cpuModalOpen"
|
|
|
IsOpenChanged="v => _cpuModalOpen = v"
|
|
|
Value="@_editingCpu"
|
|
|
- OnSubmit="HandleCpuSubmit"
|
|
|
+ OnSubmit="HandleCpuSubmit"
|
|
|
OnDelete="HandleCpuDelete"/>
|
|
|
|
|
|
<RamModal
|
|
|
@@ -218,7 +222,7 @@
|
|
|
IsOpen="@_driveModalOpen"
|
|
|
IsOpenChanged="v => _driveModalOpen = v"
|
|
|
Value="@_editingDrive"
|
|
|
- OnSubmit="HandleDriveSubmit"
|
|
|
+ OnSubmit="HandleDriveSubmit"
|
|
|
OnDelete="HandleDriveDelete"/>
|
|
|
|
|
|
<NicModal
|
|
|
@@ -226,14 +230,14 @@
|
|
|
IsOpenChanged="v => _nicModalOpen = v"
|
|
|
Value="@_editingNic"
|
|
|
OnSubmit="HandleNicSubmit"
|
|
|
- OnDelete="HandleNicDelete" />
|
|
|
+ OnDelete="HandleNicDelete"/>
|
|
|
|
|
|
<GpuModal
|
|
|
IsOpen="@_gpuModalOpen"
|
|
|
IsOpenChanged="v => _gpuModalOpen = v"
|
|
|
Value="@_editingGpu"
|
|
|
OnSubmit="HandleGpuSubmit"
|
|
|
- OnDelete="HandleGpuDelete" />
|
|
|
+ OnDelete="HandleGpuDelete"/>
|
|
|
|
|
|
<ConfirmModal
|
|
|
IsOpen="_confirmDeleteOpen"
|
|
|
@@ -243,16 +247,17 @@
|
|
|
ConfirmClass="bg-red-600 hover:bg-red-500"
|
|
|
OnConfirm="DeleteServer">
|
|
|
Are you sure you want to delete <strong>@Desktop.Name</strong>?
|
|
|
- <br />
|
|
|
+ <br/>
|
|
|
This will detach all dependent systems.
|
|
|
</ConfirmModal>
|
|
|
|
|
|
@code {
|
|
|
- [Parameter] [EditorRequired]
|
|
|
- public Desktop Desktop { get; set; } = default!;
|
|
|
+ [Parameter] [EditorRequired] public Desktop Desktop { get; set; } = default!;
|
|
|
|
|
|
#region RAM
|
|
|
+
|
|
|
private bool _isRamModalOpen;
|
|
|
+
|
|
|
private void EditRam()
|
|
|
{
|
|
|
_isRamModalOpen = true;
|
|
|
@@ -264,32 +269,34 @@
|
|
|
await UpdateDesktopUseCase.ExecuteAsync(Desktop.Name, Desktop.Model, value.Size, value.Mts);
|
|
|
Desktop = await GetDesktopUseCase.ExecuteAsync(Desktop.Name);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
#endregion
|
|
|
-
|
|
|
+
|
|
|
#region CPU
|
|
|
+
|
|
|
bool _cpuModalOpen;
|
|
|
int _editingCpuIndex;
|
|
|
Cpu? _editingCpu;
|
|
|
-
|
|
|
+
|
|
|
void OpenAddCpu()
|
|
|
{
|
|
|
_editingCpuIndex = -1;
|
|
|
_editingCpu = null;
|
|
|
_cpuModalOpen = true;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
void OpenEditCpu(Cpu cpu)
|
|
|
{
|
|
|
_editingCpu = cpu;
|
|
|
- Desktop.Cpus ??= new();
|
|
|
- _editingCpuIndex = Desktop.Cpus.IndexOf(cpu);;
|
|
|
+ Desktop.Cpus ??= new List<Cpu>();
|
|
|
+ _editingCpuIndex = Desktop.Cpus.IndexOf(cpu);
|
|
|
+ ;
|
|
|
_cpuModalOpen = true;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
async Task HandleCpuSubmit(Cpu cpu)
|
|
|
{
|
|
|
- Desktop.Cpus ??= new();
|
|
|
+ Desktop.Cpus ??= new List<Cpu>();
|
|
|
|
|
|
if (_editingCpuIndex < 0)
|
|
|
{
|
|
|
@@ -299,7 +306,7 @@
|
|
|
{
|
|
|
await UpdateCpuUseCase.ExecuteAsync(Desktop.Name, _editingCpuIndex, cpu.Model, cpu.Cores, cpu.Threads);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
Desktop = await GetDesktopUseCase.ExecuteAsync(Desktop.Name);
|
|
|
}
|
|
|
|
|
|
@@ -308,33 +315,34 @@
|
|
|
await RemoveCpuUseCase.ExecuteAsync(Desktop.Name, _editingCpuIndex);
|
|
|
Desktop = await GetDesktopUseCase.ExecuteAsync(Desktop.Name);
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
#endregion
|
|
|
-
|
|
|
+
|
|
|
#region Drives
|
|
|
+
|
|
|
bool _driveModalOpen;
|
|
|
int _editingDriveIndex;
|
|
|
Drive? _editingDrive;
|
|
|
-
|
|
|
+
|
|
|
void OpenAddDrive()
|
|
|
{
|
|
|
_editingDriveIndex = -1;
|
|
|
_editingDrive = null;
|
|
|
_driveModalOpen = true;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
void OpenEditDrive(Drive drive)
|
|
|
{
|
|
|
_editingDrive = drive;
|
|
|
- Desktop.Drives ??= new();
|
|
|
- _editingDriveIndex = Desktop.Drives.IndexOf(drive);;
|
|
|
+ Desktop.Drives ??= new List<Drive>();
|
|
|
+ _editingDriveIndex = Desktop.Drives.IndexOf(drive);
|
|
|
+ ;
|
|
|
_driveModalOpen = true;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
async Task HandleDriveSubmit(Drive drive)
|
|
|
{
|
|
|
- Desktop.Drives ??= new();
|
|
|
+ Desktop.Drives ??= new List<Drive>();
|
|
|
|
|
|
if (_editingDriveIndex < 0)
|
|
|
{
|
|
|
@@ -342,9 +350,9 @@
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- await UpdateDriveUseCase.ExecuteAsync(Desktop.Name, _editingDriveIndex, drive.Type, drive.Size);
|
|
|
+ await UpdateDriveUseCase.ExecuteAsync(Desktop.Name, _editingDriveIndex, drive.Type, drive.Size);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
Desktop = await GetDesktopUseCase.ExecuteAsync(Desktop.Name);
|
|
|
StateHasChanged();
|
|
|
}
|
|
|
@@ -355,11 +363,11 @@
|
|
|
Desktop = await GetDesktopUseCase.ExecuteAsync(Desktop.Name);
|
|
|
StateHasChanged();
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
#endregion
|
|
|
-
|
|
|
+
|
|
|
#region NICs
|
|
|
+
|
|
|
bool _nicModalOpen;
|
|
|
int _editingNicIndex;
|
|
|
Nic? _editingNic;
|
|
|
@@ -373,7 +381,7 @@
|
|
|
|
|
|
void OpenEditNic(Nic nic)
|
|
|
{
|
|
|
- Desktop.Nics ??= new();
|
|
|
+ Desktop.Nics ??= new List<Nic>();
|
|
|
_editingNicIndex = Desktop.Nics.IndexOf(nic);
|
|
|
_editingNic = nic;
|
|
|
_nicModalOpen = true;
|
|
|
@@ -381,7 +389,7 @@
|
|
|
|
|
|
async Task HandleNicSubmit(Nic nic)
|
|
|
{
|
|
|
- Desktop.Nics ??= new();
|
|
|
+ Desktop.Nics ??= new List<Nic>();
|
|
|
|
|
|
if (_editingNicIndex < 0)
|
|
|
{
|
|
|
@@ -409,9 +417,11 @@
|
|
|
await RemoveNicUseCase.ExecuteAsync(Desktop.Name, _editingNicIndex);
|
|
|
Desktop = await GetDesktopUseCase.ExecuteAsync(Desktop.Name);
|
|
|
}
|
|
|
+
|
|
|
#endregion
|
|
|
|
|
|
#region GPUs
|
|
|
+
|
|
|
bool _gpuModalOpen;
|
|
|
int _editingGpuIndex;
|
|
|
Gpu? _editingGpu;
|
|
|
@@ -425,7 +435,7 @@
|
|
|
|
|
|
void OpenEditGpu(Gpu gpu)
|
|
|
{
|
|
|
- Desktop.Gpus ??= new();
|
|
|
+ Desktop.Gpus ??= new List<Gpu>();
|
|
|
_editingGpuIndex = Desktop.Gpus.IndexOf(gpu);
|
|
|
_editingGpu = gpu;
|
|
|
_gpuModalOpen = true;
|
|
|
@@ -433,7 +443,7 @@
|
|
|
|
|
|
async Task HandleGpuSubmit(Gpu gpu)
|
|
|
{
|
|
|
- Desktop.Gpus ??= new();
|
|
|
+ Desktop.Gpus ??= new List<Gpu>();
|
|
|
|
|
|
if (_editingGpuIndex < 0)
|
|
|
{
|
|
|
@@ -459,15 +469,15 @@
|
|
|
await RemoveGpuUseCase.ExecuteAsync(Desktop.Name, _editingGpuIndex);
|
|
|
Desktop = await GetDesktopUseCase.ExecuteAsync(Desktop.Name);
|
|
|
}
|
|
|
+
|
|
|
#endregion
|
|
|
|
|
|
}
|
|
|
|
|
|
@code {
|
|
|
private bool _confirmDeleteOpen;
|
|
|
- [Parameter]
|
|
|
- public EventCallback<string> OnDeleted { get; set; }
|
|
|
-
|
|
|
+ [Parameter] public EventCallback<string> OnDeleted { get; set; }
|
|
|
+
|
|
|
void ConfirmDelete()
|
|
|
{
|
|
|
_confirmDeleteOpen = true;
|
|
|
@@ -482,4 +492,5 @@
|
|
|
if (OnDeleted.HasDelegate)
|
|
|
await OnDeleted.InvokeAsync(Desktop.Name);
|
|
|
}
|
|
|
+
|
|
|
}
|