Added DefaultDockerImage to star. Completed star update form.

This commit is contained in:
2024-12-11 09:59:48 +01:00
parent aa9dbe36bd
commit 220eb28657
16 changed files with 557 additions and 11 deletions

View File

@@ -14,12 +14,12 @@
@inject ToastService ToastService
@inject AlertService AlertService
<div class="flex justify-end mb-5">
<button type="button" @onclick="AddDockerImage" class="btn btn-primary">Add docker image</button>
</div>
<LazyLoader @ref="LazyLoader" Load="Load">
<div class="grid sm:grid-cols-2 xl:grid-cols-3 gap-4">
<div class="flex justify-end">
<button type="button" @onclick="AddDockerImage" class="btn btn-primary">Add docker image</button>
</div>
<div class="grid sm:grid-cols-2 xl:grid-cols-3 gap-4 mt-5">
@foreach (var dockerImage in DockerImages)
{
<div class="col-span-1 card card-body p-2.5">

View File

@@ -1,4 +1,5 @@
@using MoonlightServers.Shared.Http.Requests.Admin.Stars
<div>
<div class="grid grid-cols-1 gap-x-6 gap-y-8 sm:grid-cols-6">
<div class="sm:col-span-3">

View File

@@ -0,0 +1,67 @@
@using MoonCore.Blazor.Tailwind.Components
@using MoonCore.Helpers
@using MoonCore.Models
@using MoonlightServers.Shared.Http.Requests.Admin.Stars
@using MoonlightServers.Shared.Http.Responses.Admin.StarDockerImages
@using MoonlightServers.Shared.Http.Responses.Admin.Stars
@using MoonlightServers.Frontend.UI.Components.Forms
@inject HttpApiClient ApiClient
<LazyLoader Load="Load">
<div>
<div class="grid grid-cols-1 gap-x-6 gap-y-8 sm:grid-cols-6">
<div class="sm:col-span-2">
<label class="block text-sm font-medium leading-6 text-white">Allow docker image change</label>
<div class="mt-2">
<Switch @bind-Value="Request.AllowDockerImageChange" />
</div>
</div>
<div class="sm:col-span-2">
<label class="block text-sm font-medium leading-6 text-white">Default docker image</label>
<div class="mt-2">
<select @bind="Request.DefaultDockerImage" class="form-select w-full">
@foreach (var dockerImage in DockerImages)
{
var index = DockerImages.IndexOf(dockerImage);
if (Request.DefaultDockerImage == index)
{
<option selected="selected"
value="@index">
@dockerImage.DisplayName
</option>
}
else
{
<option value="@index">
@dockerImage.DisplayName
</option>
}
}
</select>
</div>
</div>
</div>
</div>
</LazyLoader>
@code
{
[Parameter] public UpdateStarRequest Request { get; set; }
[Parameter] public StarDetailResponse Star { get; set; }
private List<StarDockerImageDetailResponse> DockerImages;
private async Task Load(LazyLoader _)
{
var pagedVariables = await ApiClient.GetJson<PagedData<StarDockerImageDetailResponse>>(
$"api/admin/servers/stars/{Star.Id}/dockerImages?page=0&pageSize=50"
);
DockerImages = pagedVariables
.Items
.OrderBy(x => x.Id) // Make sure its in the correct order every time
.ToList();
}
}

View File

@@ -1,6 +1,4 @@
@using MoonCore.Blazor.Tailwind.Alerts
@using MoonlightServers.Shared.Http.Responses.Admin.Stars
@using MoonlightServers.Shared.Http.Responses.Admin.StarVariables
@using MoonCore.Blazor.Tailwind.Components
@using MoonCore.Blazor.Tailwind.Modals
@using MoonCore.Blazor.Tailwind.Toasts
@@ -8,6 +6,8 @@
@using MoonCore.Models
@using MoonlightServers.Frontend.UI.Components.Stars.Modals
@using MoonlightServers.Shared.Http.Requests.Admin.StarVariables
@using MoonlightServers.Shared.Http.Responses.Admin.Stars
@using MoonlightServers.Shared.Http.Responses.Admin.StarVariables
@inject HttpApiClient ApiClient
@inject ModalService ModalService