77 lines
2.9 KiB
Plaintext
77 lines
2.9 KiB
Plaintext
@using LucideBlazor
|
|
@using MoonlightServers.Shared.Admin.Templates
|
|
@using ShadcnBlazor.Accordions
|
|
@using ShadcnBlazor.Buttons
|
|
@using ShadcnBlazor.Fields
|
|
@using ShadcnBlazor.Inputs
|
|
|
|
<div class="mb-5 flex justify-end">
|
|
<Button @onclick="Add">
|
|
<PlusIcon/>
|
|
Create
|
|
</Button>
|
|
</div>
|
|
|
|
<div class="grid grid-cols-1 lg:grid-cols-2 gap-8">
|
|
@foreach (var file in FilesConfig.ConfigurationFiles)
|
|
{
|
|
<Accordion ClassName="-space-y-px" Type="AccordionType.Single">
|
|
<AccordionItem
|
|
ClassName="overflow-hidden border bg-card px-4 first:rounded-t-lg last:rounded-b-lg last:border-b"
|
|
Value="element">
|
|
<AccordionTrigger ClassName="hover:no-underline">
|
|
<div class="flex items-center gap-3">
|
|
<FileCogIcon/>
|
|
<span class="text-left">@file.Path</span>
|
|
</div>
|
|
</AccordionTrigger>
|
|
<AccordionContent ClassName="ps-7">
|
|
<FieldGroup>
|
|
<FieldSet>
|
|
<Field>
|
|
@{
|
|
var id = $"configFilePath{file.GetHashCode()}";
|
|
}
|
|
<FieldLabel for="@id">Path</FieldLabel>
|
|
<TextInputField
|
|
@bind-Value="file.Path"
|
|
id="@id"/>
|
|
</Field>
|
|
|
|
<Field>
|
|
@{
|
|
var id = $"configFileParser{file.GetHashCode()}";
|
|
}
|
|
<FieldLabel for="@id">Parser</FieldLabel>
|
|
<TextInputField
|
|
@bind-Value="file.Parser"
|
|
id="@id"/>
|
|
</Field>
|
|
</FieldSet>
|
|
<FieldSet>
|
|
<ConfigFileMappingEditor @bind-Value="file.Mappings" />
|
|
</FieldSet>
|
|
<Field Orientation="FieldOrientation.Horizontal" ClassName="justify-end">
|
|
<Button Variant="ButtonVariant.Destructive"
|
|
@onclick="() => Delete(file)">
|
|
Delete
|
|
</Button>
|
|
</Field>
|
|
</FieldGroup>
|
|
</AccordionContent>
|
|
</AccordionItem>
|
|
</Accordion>
|
|
}
|
|
</div>
|
|
|
|
@code
|
|
{
|
|
[Parameter] public UpdateFilesConfigDto FilesConfig { get; set; }
|
|
|
|
private void Add()
|
|
=> FilesConfig.ConfigurationFiles.Add(new());
|
|
|
|
private void Delete(UpdateConfigurationFileDto dto)
|
|
=> FilesConfig.ConfigurationFiles.Remove(dto);
|
|
}
|