@using LucideBlazor @using Moonlight.Frontend.Infrastructure.Helpers @using MoonlightServers.Shared @using MoonlightServers.Shared.Admin.Templates @using ShadcnBlazor.Accordions @using ShadcnBlazor.Buttons @using ShadcnBlazor.Extras.AlertDialogs @using ShadcnBlazor.Extras.Forms @using ShadcnBlazor.Extras.Toasts @using ShadcnBlazor.Fields @using ShadcnBlazor.Inputs @inject HttpClient HttpClient @inject ToastService ToastService @inject AlertDialogService AlertDialogService
@Request.DisplayName
@{ var id = $"variableDisplayName{Variable.Id}"; } Display Name @{ var id = $"variableDescription{Variable.Id}"; } Description @{ var id = $"variableKey{Variable.Id}"; } Key @{ var id = $"variableDefaultValue{Variable.Id}"; } Default Value
Save changes
@code { [Parameter] public VariableDto Variable { get; set; } [Parameter] public DetailedTemplateDto Template { get; set; } [Parameter] public Func OnChanged { get; set; } private UpdateVariableDto Request; protected override void OnInitialized() { Request = new UpdateVariableDto() { DisplayName = Variable.DisplayName, DefaultValue = Variable.DefaultValue, EnvName = Variable.EnvName, Description = Variable.Description }; } private async Task OnValidSubmitAsync(EditContext editContext, ValidationMessageStore validationMessageStore) { var response = await HttpClient.PutAsJsonAsync( $"api/admin/servers/templates/{Template.Id}/variables/{Variable.Id}", Request, SerializationContext.Default.Options ); if (!response.IsSuccessStatusCode) { await ProblemDetailsHelper.HandleProblemDetailsAsync(response, Request, validationMessageStore); return false; } await ToastService.SuccessAsync( "Variable Update", $"Successfully updated variable {Request.DisplayName}" ); await OnChanged.Invoke(); return true; } private async Task DeleteAsync() { await AlertDialogService.ConfirmDangerAsync( "Variable Deletion", $"Do you really want to delete the variable {Variable.DisplayName}? This cannot be undone", async () => { var response = await HttpClient.DeleteAsync($"api/admin/servers/templates/{Template.Id}/variables/{Variable.Id}"); response.EnsureSuccessStatusCode(); await ToastService.SuccessAsync( "Variable Deletion", $"Variable {Variable.DisplayName} successfully deleted" ); await OnChanged.Invoke(); } ); } }