Salmon/Salmon.Web/Pages/ElementPage.razor

84 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>
<table class="table">
<thead>
<tr>
<th>Dernier changement</th>
<th>Nom</th>
<th>Valeur</th>
</tr>
</thead>
<tbody>
@foreach (var t in Triplets)
{
<tr>
<td>@t.LastFlush</td>
<td>@t.predicate</td>
<td>@t.value</td>
</tr>
}
</tbody>
</table>
<h4>Évènements</h4>
}
@code {
[Parameter]
public string Id { get; set; }
string? Error = $"Chargement...";
Salmon.Core.Element? ThisElement = null;
List<Triplet>? Triplets = null;
List<Event>? Events = null;
protected async override Task OnInitializedAsync()
{
await base.OnInitializedAsync();
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;
}
}
}