83 lines
1.7 KiB
Plaintext
83 lines
1.7 KiB
Plaintext
@page "/Element/{Id}"
|
|
|
|
@inject Salmon.Core.Instance Salmon;
|
|
|
|
<div class="input-group mb-3">
|
|
<div class="input-group-prepend">
|
|
<span class="input-group-text" id="basic-addon3">UniqueId</span>
|
|
</div>
|
|
<input type="text" class="form-control" aria-describedby="basic-addon3" readonly value="@Id">
|
|
</div>
|
|
|
|
@if (Error is not null)
|
|
{
|
|
<p>@Error</p>
|
|
}
|
|
else if (ThisElement == null)
|
|
{
|
|
<p>Chargement...</p>
|
|
}
|
|
else
|
|
{
|
|
<h3>@ThisElement.LongName</h3>
|
|
|
|
<h4>Propriétés</h4>
|
|
<TripletTable Triplets=@Triplets />
|
|
|
|
<h4>Enfants</h4>
|
|
<ElementDeck FilterByParent=@Id />
|
|
|
|
<h4>Évènements</h4>
|
|
<EventTable Events=@Events />
|
|
}
|
|
|
|
@code {
|
|
[Parameter]
|
|
public string Id { get; set; }
|
|
string? Error = $"Chargement...";
|
|
|
|
Salmon.Core.Element? ThisElement = null;
|
|
List<Triplet>? Triplets { get; set; } = null;
|
|
List<Event>? Events { get; set; } = null;
|
|
|
|
|
|
|
|
protected async override Task OnInitializedAsync()
|
|
{
|
|
await base.OnInitializedAsync();
|
|
|
|
await Refresh();
|
|
}
|
|
|
|
private async Task Refresh()
|
|
{
|
|
Triplets = Salmon.State.Get(Id).ToList();
|
|
if (Triplets.Count == 0)
|
|
{
|
|
Error = $"Aucun triplet associé à l'ID {Id}.";
|
|
return;
|
|
}
|
|
|
|
try
|
|
{
|
|
ThisElement = Salmon.Translator.Decode(Triplets);
|
|
Error = null;
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
Error = $"Erreur: {e}";
|
|
return;
|
|
}
|
|
|
|
List<Event> events = new();
|
|
await foreach (var e in Salmon.Event.GetEvents(subject: Id, limit: 25))
|
|
events.Add(e);
|
|
|
|
Events = events;
|
|
|
|
StateHasChanged();
|
|
}
|
|
|
|
|
|
}
|