Fixed server create ui
This commit is contained in:
@@ -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}"
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
@@ -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()
|
||||
{
|
||||
|
||||
@@ -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}"
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user