Updated to latest moonlight and mooncore version. Done refactoring to async scheme and other changes. Recreated database migrations and cleaned models

This commit is contained in:
2025-09-22 12:13:57 +02:00
parent 91fb15a03e
commit 85392208c4
150 changed files with 2722 additions and 2726 deletions

View File

@@ -4,30 +4,42 @@
@inherits MoonCore.Blazor.FlyonUi.Modals.Components.BaseModal
<h1 class="mb-5 font-semibold text-xl">Add a new variable</h1>
<HandleForm @ref="HandleForm" Model="Form" OnValidSubmit="OnValidSubmit">
<div class="grid grid-cols-2 gap-2">
<div class="col-span-2">
<label class="block text-sm font-medium leading-6 text-base-content">Display Name</label>
<input @bind="Form.DisplayName" type="text" class="input w-full"/>
<div class="p-5">
<div class="flex items-center gap-4">
<div class="avatar avatar-placeholder max-sm:hidden">
<div class="border-base-content/20 rounded-box w-13 border-1">
<span class="icon-container text-xl"></span>
</div>
</div>
<div class="col-span-2">
<label class="block text-sm font-medium leading-6 text-base-content">Identifier</label>
<input @bind="Form.Identifier" type="text" class="input w-full"/>
</div>
<div class="col-span-2">
<label class="block text-sm font-medium leading-6 text-base-content">Automatic pulling</label>
<Switch @bind-Value="Form.AutoPulling"/>
<div class="space-y-1">
<h3 class="text-base-content text-2xl font-semibold">Add a new docker image</h3>
<p class="text-base-content/80">Add a new docker image to the star</p>
</div>
</div>
</HandleForm>
<div class="mt-5 flex space-x-2">
<WButton OnClick="_ => Hide()" CssClasses="btn btn-secondary grow">Cancel</WButton>
<WButton OnClick="_ => Submit()" CssClasses="btn btn-primary grow">Create</WButton>
<div class="mt-5">
<HandleForm @ref="HandleForm" Model="Form" OnValidSubmit="OnValidSubmit">
<div class="mt-2">
<label class="label-text">Display Name</label>
<input class="input" @bind="Form.DisplayName" type="text"/>
</div>
<div class="mt-2">
<label class="label-text">Identifier</label>
<input class="input" @bind="Form.Identifier" type="text"/>
</div>
<div class="mt-2">
<label class="label-text">Automatic pulling</label>
<Switch @bind-Value="Form.AutoPulling"/>
</div>
</HandleForm>
</div>
<div class="mt-5 flex justify-end">
<button @onclick="HideAsync" type="button" class="btn btn-secondary me-2">
Cancel
</button>
<WButton OnClick="SubmitAsync">
Create
</WButton>
</div>
</div>
@code
@@ -49,8 +61,8 @@
private async Task OnValidSubmit()
{
await OnSubmit.Invoke(Form);
await Hide();
await HideAsync();
}
private Task Submit() => HandleForm.Submit();
private Task SubmitAsync() => HandleForm.SubmitAsync();
}

View File

@@ -4,47 +4,57 @@
@inherits MoonCore.Blazor.FlyonUi.Modals.Components.BaseModal
<h1 class="mb-5 font-semibold text-xl">Add a new parse configuration</h1>
<HandleForm @ref="HandleForm" Model="Form" OnValidSubmit="OnValidSubmit">
<div class="grid grid-cols-2 gap-x-2 gap-y-4">
<div class="col-span-1">
<label class="block text-sm font-medium leading-6 text-base-content">File</label>
<input @bind="Form.File" type="text" class="input w-full"/>
<div class="p-5">
<div class="flex items-center gap-4">
<div class="avatar avatar-placeholder max-sm:hidden">
<div class="border-base-content/20 rounded-box w-13 border-1">
<span class="icon-braces text-xl"></span>
</div>
</div>
<div class="col-span-1">
<label class="block text-sm font-medium leading-6 text-base-content">Type</label>
<select @bind="Form.Parser" class="select w-full">
@foreach (var val in Enum.GetValues<FileParsers>())
{
<option value="@val">@val</option>
}
</select>
<div class="space-y-1">
<h3 class="text-base-content text-2xl font-semibold">Add a parse configuration</h3>
<p class="text-base-content/80">Add a new parse configuration to the star</p>
</div>
<div class="col-span-2">
<button type="button" @onclick="AddEntry" class="btn btn-primary w-full">Add entry</button>
</div>
@foreach (var entry in Form.Entries)
{
<div class="col-span-2">
<div class="flex flex-row">
</div>
<div class="mt-5">
<HandleForm @ref="HandleForm" Model="Form" OnValidSubmit="OnValidSubmit">
<div class="mt-2">
<label class="label-text">File</label>
<input class="input" @bind="Form.File" type="text"/>
</div>
<div class="mt-2">
<label class="label-text">Parser</label>
<select @bind="Form.Parser" class="select w-full">
@foreach (var val in Enum.GetValues<FileParsers>())
{
<option value="@val">@val</option>
}
</select>
</div>
<div class="mt-2">
<button type="button" @onclick="AddEntryAsync" class="btn btn-primary w-full">Add entry</button>
</div>
@foreach (var entry in Form.Entries)
{
<div class="flex flex-row mt-2">
<input @bind="entry.Key" placeholder="Key" class="input placeholder-base-content/50 grow rounded-r-none"/>
<input @bind="entry.Value" placeholder="Value" class="input placeholder-base-content/50 grow rounded-none"/>
<button type="button" @onclick="() => RemoveEntry(entry)" class="btn btn-error grow-0 rounded-l-none">
<button type="button" @onclick="() => RemoveEntryAsync(entry)" class="btn btn-error grow-0 rounded-l-none">
<i class="icon-x"></i>
</button>
</div>
</div>
}
}
</HandleForm>
</div>
<div class="mt-5 flex justify-end">
<button @onclick="HideAsync" type="button" class="btn btn-secondary me-2">
Cancel
</button>
<WButton OnClick="SubmitAsync">
Create
</WButton>
</div>
</HandleForm>
<div class="mt-5 flex space-x-2">
<WButton OnClick="_ => Hide()" CssClasses="btn btn-secondary grow">Cancel</WButton>
<WButton OnClick="_ => Submit()" CssClasses="btn btn-primary grow">Create</WButton>
</div>
@code
@@ -57,20 +67,20 @@
private async Task OnValidSubmit()
{
await OnSubmit.Invoke(Form);
await Hide();
await HideAsync();
}
private Task Submit() => HandleForm.Submit();
private Task SubmitAsync() => HandleForm.SubmitAsync();
private async Task AddEntry()
private async Task AddEntryAsync()
{
Form.Entries.Add(new());
await InvokeAsync(StateHasChanged);
}
private async Task RemoveEntry(ParseConfiguration.ParseConfigurationEntry entry)
private async Task RemoveEntryAsync(ParseConfiguration.ParseConfigurationEntry entry)
{
Form.Entries.Remove(entry);
await InvokeAsync(StateHasChanged);
}
}
}

View File

@@ -5,60 +5,76 @@
@inherits MoonCore.Blazor.FlyonUi.Modals.Components.BaseModal
<h1 class="mb-5 font-semibold text-xl">Add a new variable</h1>
<HandleForm @ref="HandleForm" Model="Form" OnValidSubmit="OnValidSubmit">
<div class="grid grid-cols-2 gap-2">
<div class="col-span-1">
<label class="block text-sm font-medium leading-6 text-base-content">Name</label>
<input @bind="Form.Name" type="text" class="input w-full"/>
<div class="p-5">
<div class="flex items-center gap-4">
<div class="avatar avatar-placeholder max-sm:hidden">
<div class="border-base-content/20 rounded-box w-13 border-1">
<span class="icon-variable text-xl"></span>
</div>
</div>
<div class="col-span-1">
<label class="block text-sm font-medium leading-6 text-base-content">Description</label>
<input @bind="Form.Description" type="text" class="input w-full"/>
</div>
<div class="col-span-1">
<label class="block text-sm font-medium leading-6 text-base-content">Key</label>
<input @bind="Form.Key" type="text" class="input w-full"/>
</div>
<div class="col-span-1">
<label class="block text-sm font-medium leading-6 text-base-content">Default Value</label>
<input @bind="Form.DefaultValue" type="text" class="input w-full"/>
</div>
<div class="col-span-1">
<label class="block text-sm font-medium leading-6 text-base-content">Allow Viewing</label>
<Switch @bind-Value="Form.AllowViewing"/>
</div>
<div class="col-span-1">
<label class="block text-sm font-medium leading-6 text-base-content">Allow Editing</label>
<Switch @bind-Value="Form.AllowEditing"/>
</div>
<div class="col-span-1">
<label class="block text-sm font-medium leading-6 text-base-content">Type</label>
<select @bind="Form.Type" class="select w-full">
@foreach (var val in Enum.GetValues<StarVariableType>())
{
<option value="@val">@val</option>
}
</select>
</div>
<div class="col-span-1">
<label class="block text-sm font-medium leading-6 text-base-content">Filter</label>
<input @bind="Form.Filter" type="text" class="input w-full"/>
<div class="space-y-1">
<h3 class="text-base-content text-2xl font-semibold">Add a new variable</h3>
<p class="text-base-content/80">Add a new variable to the star</p>
</div>
</div>
</HandleForm>
<div class="mt-5">
<HandleForm @ref="HandleForm" Model="Form" OnValidSubmit="OnValidSubmit">
<div class="grid grid-cols-2 gap-2">
<div class="col-span-1">
<label class="label-text">Name</label>
<input @bind="Form.Name" type="text" class="input w-full"/>
</div>
<div class="mt-5 flex space-x-2">
<WButton OnClick="_ => Hide()" CssClasses="btn btn-secondary grow">Cancel</WButton>
<WButton OnClick="_ => Submit()" CssClasses="btn btn-primary grow">Create</WButton>
<div class="col-span-1">
<label class="label-text">Description</label>
<input @bind="Form.Description" type="text" class="input w-full"/>
</div>
<div class="col-span-1">
<label class="label-text">Key</label>
<input @bind="Form.Key" type="text" class="input w-full"/>
</div>
<div class="col-span-1">
<label class="label-text">Default Value</label>
<input @bind="Form.DefaultValue" type="text" class="input w-full"/>
</div>
<div class="col-span-1">
<label class="label-text">Allow Viewing</label>
<Switch @bind-Value="Form.AllowViewing"/>
</div>
<div class="col-span-1">
<label class="label-text">Allow Editing</label>
<Switch @bind-Value="Form.AllowEditing"/>
</div>
<div class="col-span-1">
<label class="label-text">Type</label>
<select @bind="Form.Type" class="select w-full">
@foreach (var val in Enum.GetValues<StarVariableType>())
{
<option value="@val">@val</option>
}
</select>
</div>
<div class="col-span-1">
<label class="label-text">Filter</label>
<input @bind="Form.Filter" type="text" class="input w-full"/>
</div>
</div>
</HandleForm>
</div>
<div class="mt-5 flex justify-end">
<button @onclick="HideAsync" type="button" class="btn btn-secondary me-2">
Cancel
</button>
<WButton OnClick="SubmitAsync">
Create
</WButton>
</div>
</div>
@code
@@ -71,8 +87,8 @@
private async Task OnValidSubmit()
{
await OnSubmit.Invoke(Form);
await Hide();
await HideAsync();
}
private Task Submit() => HandleForm.Submit();
private Task SubmitAsync() => HandleForm.SubmitAsync();
}

View File

@@ -5,30 +5,42 @@
@inherits MoonCore.Blazor.FlyonUi.Modals.Components.BaseModal
<h1 class="mb-5 font-semibold text-xl">Update variable</h1>
<HandleForm @ref="HandleForm" Model="Form" OnValidSubmit="OnValidSubmit">
<div class="grid grid-cols-2 gap-2">
<div class="col-span-2">
<label class="block text-sm font-medium leading-6 text-base-content">Display Name</label>
<input @bind="Form.DisplayName" type="text" class="input w-full"/>
<div class="p-5">
<div class="flex items-center gap-4">
<div class="avatar avatar-placeholder max-sm:hidden">
<div class="border-base-content/20 rounded-box w-13 border-1">
<span class="icon-container text-xl"></span>
</div>
</div>
<div class="col-span-2">
<label class="block text-sm font-medium leading-6 text-base-content">Identifier</label>
<input @bind="Form.Identifier" type="text" class="input w-full"/>
</div>
<div class="col-span-2">
<label class="block text-sm font-medium leading-6 text-base-content">Automatic pulling</label>
<Switch @bind-Value="Form.AutoPulling"/>
<div class="space-y-1">
<h3 class="text-base-content text-2xl font-semibold">Update docker image</h3>
<p class="text-base-content/80">Update docker image properties</p>
</div>
</div>
</HandleForm>
<div class="mt-5 flex space-x-2">
<WButton OnClick="_ => Hide()" CssClasses="btn btn-secondary grow">Cancel</WButton>
<WButton OnClick="_ => Submit()" CssClasses="btn btn-primary grow">Update</WButton>
<div class="mt-5">
<HandleForm @ref="HandleForm" Model="Form" OnValidSubmit="OnValidSubmit">
<div class="mt-2">
<label class="label-text">Display Name</label>
<input class="input" @bind="Form.DisplayName" type="text"/>
</div>
<div class="mt-2">
<label class="label-text">Identifier</label>
<input class="input" @bind="Form.Identifier" type="text"/>
</div>
<div class="mt-2">
<label class="label-text">Automatic pulling</label>
<Switch @bind-Value="Form.AutoPulling"/>
</div>
</HandleForm>
</div>
<div class="mt-5 flex justify-end">
<button @onclick="HideAsync" type="button" class="btn btn-secondary me-2">
Cancel
</button>
<WButton OnClick="SubmitAsync">
Update
</WButton>
</div>
</div>
@code
@@ -52,8 +64,8 @@
private async Task OnValidSubmit()
{
await OnSubmit.Invoke(Form);
await Hide();
await HideAsync();
}
private Task Submit() => HandleForm.Submit();
private Task SubmitAsync() => HandleForm.SubmitAsync();
}

View File

@@ -4,46 +4,57 @@
@inherits MoonCore.Blazor.FlyonUi.Modals.Components.BaseModal
<h1 class="mb-5 font-semibold text-xl">Update parse configuration</h1>
<HandleForm @ref="HandleForm" Model="Form" OnValidSubmit="OnValidSubmit">
<div class="grid grid-cols-2 gap-x-2 gap-y-4">
<div class="col-span-1">
<label class="block text-sm font-medium leading-6 text-base-content">File</label>
<input @bind="Form.File" type="text" class="input w-full"/>
<div class="p-5">
<div class="flex items-center gap-4">
<div class="avatar avatar-placeholder max-sm:hidden">
<div class="border-base-content/20 rounded-box w-13 border-1">
<span class="icon-braces text-xl"></span>
</div>
</div>
<div class="col-span-1">
<label class="block text-sm font-medium leading-6 text-base-content">Type</label>
<select @bind="Form.Parser" class="select w-full">
@foreach (var val in Enum.GetValues<FileParsers>())
{
<option value="@val">@val</option>
}
</select>
<div class="space-y-1">
<h3 class="text-base-content text-2xl font-semibold">Update parse configuration</h3>
<p class="text-base-content/80">Update parse configuration properties</p>
</div>
<div class="col-span-2">
<button type="button" @onclick="AddEntry" class="btn btn-primary w-full">Add entry</button>
</div>
@foreach (var entry in Form.Entries)
{
<div class="col-span-2">
<div class="flex flex-row">
</div>
<div class="mt-5">
<HandleForm @ref="HandleForm" Model="Form" OnValidSubmit="OnValidSubmit">
<div class="mt-2">
<label class="label-text">File</label>
<input class="input" @bind="Form.File" type="text"/>
</div>
<div class="mt-2">
<label class="label-text">Parser</label>
<select @bind="Form.Parser" class="select w-full">
@foreach (var val in Enum.GetValues<FileParsers>())
{
<option value="@val">@val</option>
}
</select>
</div>
<div class="mt-2">
<button type="button" @onclick="AddEntryAsync" class="btn btn-primary w-full">Add entry</button>
</div>
@foreach (var entry in Form.Entries)
{
<div class="flex flex-row mt-2">
<input @bind="entry.Key" placeholder="Key" class="input placeholder-base-content/50 grow rounded-r-none"/>
<input @bind="entry.Value" placeholder="Value" class="input placeholder-base-content/50 grow rounded-none"/>
<button type="button" @onclick="() => RemoveEntry(entry)" class="btn btn-error grow-0 rounded-l-none">
<button type="button" @onclick="() => RemoveEntryAsync(entry)" class="btn btn-error grow-0 rounded-l-none">
<i class="icon-x"></i>
</button>
</div>
</div>
}
}
</HandleForm>
</div>
<div class="mt-5 flex justify-end">
<button @onclick="HideAsync" type="button" class="btn btn-secondary me-2">
Cancel
</button>
<WButton OnClick="SubmitAsync">
Update
</WButton>
</div>
</HandleForm>
<div class="mt-5 flex space-x-2">
<WButton OnClick="_ => Submit()" CssClasses="btn btn-primary grow">Save changes</WButton>
</div>
@code
@@ -63,18 +74,18 @@
private async Task OnValidSubmit()
{
await OnSubmit.Invoke(Form);
await Hide();
await HideAsync();
}
private Task Submit() => HandleForm.Submit();
private Task SubmitAsync() => HandleForm.SubmitAsync();
private async Task AddEntry()
private async Task AddEntryAsync()
{
Form.Entries.Add(new());
await InvokeAsync(StateHasChanged);
}
private async Task RemoveEntry(ParseConfiguration.ParseConfigurationEntry entry)
private async Task RemoveEntryAsync(ParseConfiguration.ParseConfigurationEntry entry)
{
Form.Entries.Remove(entry);
await InvokeAsync(StateHasChanged);

View File

@@ -6,60 +6,76 @@
@inherits MoonCore.Blazor.FlyonUi.Modals.Components.BaseModal
<h1 class="mb-5 font-semibold text-xl">Update variable</h1>
<HandleForm @ref="HandleForm" Model="Form" OnValidSubmit="OnValidSubmit">
<div class="grid grid-cols-1 md:grid-cols-2 gap-2">
<div class="col-span-1">
<label class="block text-sm font-medium leading-6 text-base-content">Name</label>
<input @bind="Form.Name" type="text" class="input w-full"/>
<div class="p-5">
<div class="flex items-center gap-4">
<div class="avatar avatar-placeholder max-sm:hidden">
<div class="border-base-content/20 rounded-box w-13 border-1">
<span class="icon-variable text-xl"></span>
</div>
</div>
<div class="col-span-1">
<label class="block text-sm font-medium leading-6 text-base-content">Description</label>
<input @bind="Form.Description" type="text" class="input w-full"/>
</div>
<div class="col-span-1">
<label class="block text-sm font-medium leading-6 text-base-content">Key</label>
<input @bind="Form.Key" type="text" class="input w-full"/>
</div>
<div class="col-span-1">
<label class="block text-sm font-medium leading-6 text-base-content">Default Value</label>
<input @bind="Form.DefaultValue" type="text" class="input w-full"/>
</div>
<div class="col-span-1">
<label class="block text-sm font-medium leading-6 text-base-content">Allow Viewing</label>
<Switch @bind-Value="Form.AllowViewing"/>
</div>
<div class="col-span-1">
<label class="block text-sm font-medium leading-6 text-base-content">Allow Editing</label>
<Switch @bind-Value="Form.AllowEditing"/>
</div>
<div class="col-span-1">
<label class="block text-sm font-medium leading-6 text-base-content">Type</label>
<select @bind="Form.Type" class="select w-full">
@foreach (var val in Enum.GetValues<StarVariableType>())
{
<option value="@val">@val</option>
}
</select>
</div>
<div class="col-span-1">
<label class="block text-sm font-medium leading-6 text-base-content">Filter</label>
<input @bind="Form.Filter" type="text" class="input w-full"/>
<div class="space-y-1">
<h3 class="text-base-content text-2xl font-semibold">Update variable</h3>
<p class="text-base-content/80">Update variable properties</p>
</div>
</div>
</HandleForm>
<div class="mt-5">
<HandleForm @ref="HandleForm" Model="Form" OnValidSubmit="OnValidSubmit">
<div class="grid grid-cols-2 gap-2">
<div class="col-span-1">
<label class="label-text">Name</label>
<input @bind="Form.Name" type="text" class="input w-full"/>
</div>
<div class="mt-5 flex space-x-2">
<WButton OnClick="_ => Hide()" CssClasses="btn btn-secondary grow">Cancel</WButton>
<WButton OnClick="_ => Submit()" CssClasses="btn btn-primary grow">Update</WButton>
<div class="col-span-1">
<label class="label-text">Description</label>
<input @bind="Form.Description" type="text" class="input w-full"/>
</div>
<div class="col-span-1">
<label class="label-text">Key</label>
<input @bind="Form.Key" type="text" class="input w-full"/>
</div>
<div class="col-span-1">
<label class="label-text">Default Value</label>
<input @bind="Form.DefaultValue" type="text" class="input w-full"/>
</div>
<div class="col-span-1">
<label class="label-text">Allow Viewing</label>
<Switch @bind-Value="Form.AllowViewing"/>
</div>
<div class="col-span-1">
<label class="label-text">Allow Editing</label>
<Switch @bind-Value="Form.AllowEditing"/>
</div>
<div class="col-span-1">
<label class="label-text">Type</label>
<select @bind="Form.Type" class="select w-full">
@foreach (var val in Enum.GetValues<StarVariableType>())
{
<option value="@val">@val</option>
}
</select>
</div>
<div class="col-span-1">
<label class="label-text">Filter</label>
<input @bind="Form.Filter" type="text" class="input w-full"/>
</div>
</div>
</HandleForm>
</div>
<div class="mt-5 flex justify-end">
<button @onclick="HideAsync" type="button" class="btn btn-secondary me-2">
Cancel
</button>
<WButton OnClick="SubmitAsync">
Update
</WButton>
</div>
</div>
@code
@@ -88,8 +104,8 @@
private async Task OnValidSubmit()
{
await OnSubmit.Invoke(Form);
await Hide();
await HideAsync();
}
private Task Submit() => HandleForm.Submit();
private Task SubmitAsync() => HandleForm.SubmitAsync();
}

View File

@@ -14,9 +14,9 @@
@inject ToastService ToastService
@inject AlertService AlertService
<LazyLoader @ref="LazyLoader" Load="Load">
<LazyLoader @ref="LazyLoader" Load="LoadAsync">
<div class="flex justify-end">
<button type="button" @onclick="AddDockerImage" class="btn btn-primary">Add docker image</button>
<button type="button" @onclick="AddDockerImageAsync" class="btn btn-primary">Add docker image</button>
</div>
<div class="grid sm:grid-cols-2 xl:grid-cols-3 gap-4 mt-5">
@@ -30,11 +30,11 @@
</div>
<div class="gap-x-2">
<button type="button" @onclick="() => UpdateDockerImage(dockerImage)" class="btn btn-primary">
<button type="button" @onclick="() => UpdateDockerImageAsync(dockerImage)" class="btn btn-primary">
<i class="icon-settings text-base"></i>
</button>
<button type="button" @onclick="() => DeleteDockerImage(dockerImage)" class="btn btn-error">
<button type="button" @onclick="() => DeleteDockerImageAsync(dockerImage)" class="btn btn-error">
<i class="icon-trash text-base"></i>
</button>
</div>
@@ -51,59 +51,61 @@
private StarDockerImageResponse[] DockerImages;
private LazyLoader LazyLoader;
private async Task Load(LazyLoader _)
private async Task LoadAsync(LazyLoader _)
{
var pagedVariables = await ApiClient.GetJson<PagedData<StarDockerImageResponse>>(
$"api/admin/servers/stars/{Star.Id}/dockerImages?page=0&pageSize=50"
var pagedVariables = await ApiClient.GetJson<CountedData<StarDockerImageResponse>>(
$"api/admin/servers/stars/{Star.Id}/dockerImages?startIndex=0&count=100"
);
// TODO: Improve paged stuff
DockerImages = pagedVariables.Items;
}
private async Task AddDockerImage()
private async Task AddDockerImageAsync()
{
Func<CreateStarDockerImageRequest, Task> onSubmit = async request =>
{
await ApiClient.Post($"api/admin/servers/stars/{Star.Id}/dockerImages", request);
await ToastService.Success("Successfully created docker image");
await LazyLoader.Reload();
await ToastService.SuccessAsync("Successfully created docker image");
await LazyLoader.ReloadAsync();
};
await ModalService.Launch<CreateDockerImageModal>(parameters =>
await ModalService.LaunchAsync<CreateDockerImageModal>(parameters =>
{
parameters.Add("OnSubmit", onSubmit);
});
}
private async Task UpdateDockerImage(StarDockerImageResponse dockerImage)
private async Task UpdateDockerImageAsync(StarDockerImageResponse dockerImage)
{
Func<UpdateStarDockerImageRequest, Task> onSubmit = async request =>
{
await ApiClient.Patch($"api/admin/servers/stars/{Star.Id}/dockerImages/{dockerImage.Id}", request);
await ToastService.Success("Successfully updated docker image");
await LazyLoader.Reload();
await ToastService.SuccessAsync("Successfully updated docker image");
await LazyLoader.ReloadAsync();
};
await ModalService.Launch<UpdateDockerImageModal>(parameters =>
await ModalService.LaunchAsync<UpdateDockerImageModal>(parameters =>
{
parameters.Add("OnSubmit", onSubmit);
parameters.Add("DockerImage", dockerImage);
});
}
private async Task DeleteDockerImage(StarDockerImageResponse dockerImage)
private async Task DeleteDockerImageAsync(StarDockerImageResponse dockerImage)
{
await AlertService.ConfirmDanger(
await AlertService.ConfirmDangerAsync(
"Delete docker image",
"Do you really want to delete the selected docker image? This cannot be undone",
async () =>
{
await ApiClient.Delete($"api/admin/servers/stars/{Star.Id}/dockerImages/{dockerImage.Id}");
await ToastService.Success("Successfully deleted docker image");
await LazyLoader.Reload();
await ToastService.SuccessAsync("Successfully deleted docker image");
await LazyLoader.ReloadAsync();
}
);
}

View File

@@ -37,6 +37,6 @@
private async Task OnFocusOut()
{
Request.InstallScript = await CodeEditor.GetValue();
Request.InstallScript = await CodeEditor.GetValueAsync();
}
}

View File

@@ -8,7 +8,7 @@
@inject HttpApiClient ApiClient
<LazyLoader Load="Load">
<LazyLoader Load="LoadAsync">
<div>
<div class="grid grid-cols-1 gap-x-6 gap-y-8 sm:grid-cols-6">
<div class="sm:col-span-2">
@@ -53,11 +53,13 @@
private List<StarDockerImageResponse> DockerImages;
private async Task Load(LazyLoader _)
private async Task LoadAsync(LazyLoader _)
{
var pagedVariables = await ApiClient.GetJson<PagedData<StarDockerImageResponse>>(
$"api/admin/servers/stars/{Star.Id}/dockerImages?page=0&pageSize=50"
var pagedVariables = await ApiClient.GetJson<CountedData<StarDockerImageResponse>>(
$"api/admin/servers/stars/{Star.Id}/dockerImages?startIndex=0&count=100"
);
// TODO: Fix this
DockerImages = pagedVariables
.Items

View File

@@ -13,7 +13,7 @@
@inject ToastService ToastService
<div class="flex justify-end mb-5">
<button type="button" @onclick="AddConfig" class="btn btn-primary">Add parse configuration</button>
<button type="button" @onclick="AddConfigAsync" class="btn btn-primary">Add parse configuration</button>
</div>
@if (HasParseError)
@@ -33,11 +33,11 @@ else
</div>
<div class="gap-x-2">
<button type="button" @onclick="() => UpdateConfig(configuration)" class="btn btn-primary">
<button type="button" @onclick="() => UpdateConfigAsync(configuration)" class="btn btn-primary">
<i class="icon-settings text-base"></i>
</button>
<button type="button" @onclick="() => DeleteConfig(configuration)" class="btn btn-error">
<button type="button" @onclick="() => DeleteConfigAsync(configuration)" class="btn btn-error">
<i class="icon-trash text-base"></i>
</button>
</div>
@@ -60,7 +60,7 @@ else
return Task.CompletedTask;
}
private async Task AddConfig()
private async Task AddConfigAsync()
{
Func<ParseConfiguration, Task> onSubmit = async configuration =>
{
@@ -68,35 +68,35 @@ else
SaveChanges();
await InvokeAsync(StateHasChanged);
await ToastService.Success("Successfully created parse configuration");
await ToastService.SuccessAsync("Successfully created parse configuration");
};
await ModalService.Launch<CreateParseConfigModal>(parameters =>
await ModalService.LaunchAsync<CreateParseConfigModal>(parameters =>
{
parameters.Add("OnSubmit", onSubmit);
}, "max-w-xl");
}
private async Task UpdateConfig(ParseConfiguration configuration)
private async Task UpdateConfigAsync(ParseConfiguration configuration)
{
Func<ParseConfiguration, Task> onSubmit = async _ =>
{
SaveChanges();
await InvokeAsync(StateHasChanged);
await ToastService.Success("Successfully updated parse configuration");
await ToastService.SuccessAsync("Successfully updated parse configuration");
};
await ModalService.Launch<UpdateParseConfigModal>(parameters =>
await ModalService.LaunchAsync<UpdateParseConfigModal>(parameters =>
{
parameters.Add("OnSubmit", onSubmit);
parameters.Add("Configuration", configuration);
}, "max-w-xl");
}
private async Task DeleteConfig(ParseConfiguration configuration)
private async Task DeleteConfigAsync(ParseConfiguration configuration)
{
await AlertService.ConfirmDanger(
await AlertService.ConfirmDangerAsync(
"Parse configuration deletion",
"Do you really want to delete the selected parse configuration",
async () =>
@@ -105,7 +105,7 @@ else
SaveChanges();
await InvokeAsync(StateHasChanged);
await ToastService.Success("Successfully deleted parse configuration");
await ToastService.SuccessAsync("Successfully deleted parse configuration");
}
);
}

View File

@@ -15,10 +15,10 @@
@inject ToastService ToastService
<div class="flex justify-end mb-5">
<button type="button" @onclick="AddVariable" class="btn btn-primary">Add variable</button>
<button type="button" @onclick="AddVariableAsync" class="btn btn-primary">Add variable</button>
</div>
<LazyLoader @ref="LazyLoader" Load="Load">
<LazyLoader @ref="LazyLoader" Load="LoadAsync">
<div class="grid sm:grid-cols-2 xl:grid-cols-3 gap-4">
@foreach (var variable in CurrentVariables)
{
@@ -30,11 +30,11 @@
</div>
<div class="gap-x-2">
<button type="button" @onclick="() => UpdateVariable(variable)" class="btn btn-primary">
<button type="button" @onclick="() => UpdateVariableAsync(variable)" class="btn btn-primary">
<i class="icon-settings text-base"></i>
</button>
<button type="button" @onclick="() => DeleteVariable(variable)" class="btn btn-error">
<button type="button" @onclick="() => DeleteVariableAsync(variable)" class="btn btn-error">
<i class="icon-trash text-base"></i>
</button>
</div>
@@ -51,59 +51,59 @@
private StarVariableResponse[] CurrentVariables;
private LazyLoader LazyLoader;
private async Task Load(LazyLoader arg)
private async Task LoadAsync(LazyLoader arg)
{
var pagedVariables = await ApiClient.GetJson<PagedData<StarVariableResponse>>(
$"api/admin/servers/stars/{Star.Id}/variables?page=0&pageSize=50"
var pagedVariables = await ApiClient.GetJson<CountedData<StarVariableResponse>>(
$"api/admin/servers/stars/{Star.Id}/variables?startIndex=0&count=100"
);
CurrentVariables = pagedVariables.Items;
}
private async Task AddVariable()
private async Task AddVariableAsync()
{
Func<CreateStarVariableRequest, Task> onSubmit = async request =>
{
await ApiClient.Post($"api/admin/servers/stars/{Star.Id}/variables", request);
await ToastService.Success("Successfully created variable");
await LazyLoader.Reload();
await ToastService.SuccessAsync("Successfully created variable");
await LazyLoader.ReloadAsync();
};
await ModalService.Launch<CreateVariableModal>(parameters =>
await ModalService.LaunchAsync<CreateVariableModal>(parameters =>
{
parameters.Add("OnSubmit", onSubmit);
}, "max-w-xl");
}
private async Task UpdateVariable(StarVariableResponse variable)
private async Task UpdateVariableAsync(StarVariableResponse variable)
{
Func<UpdateStarVariableRequest, Task> onSubmit = async request =>
{
await ApiClient.Patch($"api/admin/servers/stars/{Star.Id}/variables/{variable.Id}", request);
await ToastService.Success("Successfully updated variable");
await LazyLoader.Reload();
await ToastService.SuccessAsync("Successfully updated variable");
await LazyLoader.ReloadAsync();
};
await ModalService.Launch<UpdateVariableModal>(parameters =>
await ModalService.LaunchAsync<UpdateVariableModal>(parameters =>
{
parameters.Add("OnSubmit", onSubmit);
parameters.Add("Variable", variable);
}, "max-w-xl");
}
private async Task DeleteVariable(StarVariableResponse variable)
private async Task DeleteVariableAsync(StarVariableResponse variable)
{
await AlertService.ConfirmDanger(
await AlertService.ConfirmDangerAsync(
"Delete variable",
"Do you really want to delete the selected variable? This cannot be undone",
async () =>
{
await ApiClient.Delete($"api/admin/servers/stars/{Star.Id}/variables/{variable.Id}");
await ToastService.Success("Successfully deleted variable");
await LazyLoader.Reload();
await ToastService.SuccessAsync("Successfully deleted variable");
await LazyLoader.ReloadAsync();
}
);
}