Fixed server create ui

This commit is contained in:
2025-07-16 21:29:43 +02:00
parent 61253919cf
commit e83d1351cb
5 changed files with 24 additions and 22 deletions

View File

@@ -3,6 +3,7 @@
@using MoonCore.Models
@using MoonlightServers.Shared.Http.Responses.Admin.NodeAllocations
@using MoonCore.Blazor.FlyonUi.Forms
@using MoonlightServers.Frontend.UI.Views.Admin.All
@using MoonlightServers.Shared.Http.Responses.Admin.Nodes
@inject HttpApiClient ApiClient
@@ -14,7 +15,7 @@
<InputMultipleItem TItem="NodeAllocationResponse"
DisplayField="@(x => $"{x.IpAddress}:{x.Port}")"
SearchField="@(x => $"{x.IpAddress}:{x.Port}")"
Value="Allocations"
Value="Parent.Allocations"
ItemSource="ItemSource">
</InputMultipleItem>
</div>
@@ -24,19 +25,18 @@
@code
{
[Parameter] public CreateServerRequest Request { get; set; }
[Parameter] public List<NodeAllocationResponse> Allocations { get; set; }
[Parameter] public NodeResponse? Node { get; set; }
[Parameter] public Create Parent { get; set; }
private async Task<NodeAllocationResponse[]> ItemSource()
{
// Handle unselected node
// ReSharper disable once ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract
if (Node == null)
if (Parent.Node == null)
return [];
var items = await PagedData<NodeAllocationResponse>.All(async (page, pageSize) =>
await ApiClient.GetJson<PagedData<NodeAllocationResponse>>(
$"api/admin/servers/nodes/{Node.Id}/allocations/free?page={page}&pageSize={pageSize}"
$"api/admin/servers/nodes/{Parent.Node.Id}/allocations/free?page={page}&pageSize={pageSize}"
)
);

View File

@@ -5,6 +5,7 @@
@using MoonlightServers.Shared.Http.Responses.Admin.Stars
@using Moonlight.Shared.Http.Responses.Admin.Users
@using MoonCore.Blazor.FlyonUi.Forms
@using MoonlightServers.Frontend.UI.Views.Admin.All
@inject HttpApiClient ApiClient
@@ -23,7 +24,7 @@
DisplayField="@(x => x.Username)"
SearchField="@(x => x.Username)"
ItemSource="LoadUsers"
@bind-Value="User">
@bind-Value="Parent.Owner">
</InputItem>
</div>
</div>
@@ -35,7 +36,7 @@
DisplayField="@(x => x.Name)"
SearchField="@(x => x.Name)"
ItemSource="LoadStars"
@bind-Value="Star">
@bind-Value="Parent.Star">
</InputItem>
</div>
</div>
@@ -47,7 +48,7 @@
DisplayField="@(x => x.Name)"
SearchField="@(x => x.Name)"
ItemSource="LoadNodes"
@bind-Value="Node">
@bind-Value="Parent.Node">
</InputItem>
</div>
</div>
@@ -88,10 +89,7 @@
@code
{
[Parameter] public CreateServerRequest Request { get; set; }
[Parameter] public UserResponse? User { get; set; }
[Parameter] public NodeResponse? Node { get; set; }
[Parameter] public StarDetailResponse? Star { get; set; }
[Parameter] public Create Parent { get; set; }
private async Task<StarDetailResponse[]> LoadStars()
{

View File

@@ -2,6 +2,7 @@
@using MoonlightServers.Shared.Http.Requests.Admin.Servers
@using MoonCore.Helpers
@using MoonCore.Models
@using MoonlightServers.Frontend.UI.Views.Admin.All
@using MoonlightServers.Shared.Http.Requests.Admin.ServerVariables
@using MoonlightServers.Shared.Http.Responses.Admin.Stars
@using MoonlightServers.Shared.Http.Responses.Admin.StarVariables
@@ -40,13 +41,13 @@
@code
{
[Parameter] public CreateServerRequest Request { get; set; }
[Parameter] public StarDetailResponse? Star { get; set; }
[Parameter] public Create Parent { get; set; }
private StarVariableDetailResponse[] StarVariables;
private async Task Load(LazyLoader _)
{
if (Star == null)
if (Parent.Star == null)
{
StarVariables = [];
return;
@@ -54,7 +55,7 @@
StarVariables = await PagedData<StarVariableDetailResponse>.All(async (page, pageSize) =>
await ApiClient.GetJson<PagedData<StarVariableDetailResponse>>(
$"api/admin/servers/stars/{Request.StarId}/variables?page={page}&pageSize={pageSize}"
$"api/admin/servers/stars/{Parent.Star.Id}/variables?page={page}&pageSize={pageSize}"
)
);
}

View File

@@ -31,13 +31,13 @@
<HandleForm @ref="Form" Model="Request" OnValidSubmit="OnSubmit">
<Tabs>
<Tab Name="General">
<GeneralServerCreate Request="Request" Star="Star" Node="Node" User="Owner" />
<GeneralServerCreate Request="Request" Parent="this" />
</Tab>
<Tab Name="Allocations">
<AllocationsServerCreate Request="Request" Allocations="Allocations" Node="Node" />
<AllocationsServerCreate Request="Request" Parent="this" />
</Tab>
<Tab Name="Variables">
<VariablesServerCreate Request="Request" Star="Star" />
<VariablesServerCreate Request="Request" Parent="this" />
</Tab>
<Tab Name="Advanced">
<AdvancedServerCreate Request="Request" />
@@ -51,10 +51,10 @@
private HandleForm Form;
private CreateServerRequest Request;
private List<NodeAllocationResponse> Allocations = new();
private UserResponse? Owner;
private StarDetailResponse? Star;
private NodeResponse? Node;
public List<NodeAllocationResponse> Allocations = new();
public UserResponse? Owner;
public StarDetailResponse? Star;
public NodeResponse? Node;
protected override void OnInitialized()
{