Thor/Thor.BlazorWAsm/Components/TemplateTable.razor
2025-03-21 07:19:48 +01:00

62 lines
1.3 KiB
Plaintext

@inject TemplateService Templates;
<button @onclick="ShowNewModal">Créer une grille</button>
@foreach(var i in Grids)
{
<div class="row align-items-center">
<a href=@("/model/"+i.Identifier)>@i.Name</a>
</div>
}
<Modal @ref="modal" Title="Modal title">
<BodyTemplate>
<label>
Nom de la grille
<InputText @bind-Value=@Name />
</label>
</BodyTemplate>
<FooterTemplate>
<Button Color="ButtonColor.Primary" @onclick="CreateNewModal">✔️ Confirmer la création de la grille</Button>
</FooterTemplate>
</Modal>
@code {
private Modal modal = default!;
[Parameter]
public string Name { get; set; } = String.Empty;
public List<TemplateGrid> Grids { get; set; } = [];
protected override async Task OnInitializedAsync()
{
await base.OnInitializedAsync();
await Refresh();
}
public async Task ShowNewModal()
{
await modal.ShowAsync();
}
async Task CreateNewModal()
{
await modal.HideAsync();
var n = await Templates.Create(Name);
//todo: switch to correct page
await Refresh();
}
public async Task Refresh()
{
Grids.Clear();
await foreach (var i in Templates.Get())
Grids.Add(i);
StateHasChanged();
}
}