74 lines
1.8 KiB
Plaintext
74 lines
1.8 KiB
Plaintext
@page "/EventList"
|
|
@using Salmon.Web.Data
|
|
@inject Salmon.Core.Instance Salmon
|
|
|
|
<PageTitle>Évènements</PageTitle>
|
|
|
|
<h1>Liste des évènements</h1>
|
|
|
|
@if (SelectedEvents == null)
|
|
{
|
|
<p><em>Chargement...</em></p>
|
|
}
|
|
else
|
|
{
|
|
<input type="checkbox" @bind="ExcludeValueChange" id="exclude-value-change">
|
|
<label for="exclude-value-change">Exclude value change</label>
|
|
|
|
<table class="table">
|
|
<thead>
|
|
<tr>
|
|
<th>Horodatage</th>
|
|
<th>Type</th>
|
|
<th>Élément</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
@foreach (var ev in SelectedEvents)
|
|
{
|
|
<tr>
|
|
<td>@ev.When.ToString("HH:mm:ss.ffffzzz")</td>
|
|
<td>@ev.Type</td>
|
|
<td>@ev.ThrowerId</td>
|
|
</tr>
|
|
}
|
|
</tbody>
|
|
</table>
|
|
}
|
|
|
|
@code {
|
|
private static System.Timers.Timer Time = new System.Timers.Timer(5000);
|
|
private Event[]? SelectedEvents;
|
|
private bool ExcludeValueChange = true;
|
|
|
|
protected override async Task OnInitializedAsync()
|
|
{
|
|
await base.OnInitializedAsync();
|
|
|
|
await Refresh();
|
|
|
|
Time.Elapsed += async (Object? source, System.Timers.ElapsedEventArgs e) =>
|
|
{
|
|
await InvokeAsync(async () => await Refresh());
|
|
};
|
|
Time.AutoReset = true;
|
|
Time.Enabled = true;
|
|
}
|
|
|
|
public async Task Refresh()
|
|
{
|
|
var ev = new List<Event>();
|
|
|
|
var filters = new Dictionary<string, object>();
|
|
if(ExcludeValueChange)
|
|
filters.Add("!Type", "state_changed");
|
|
|
|
await foreach (var i in Salmon.Event.GetEvents(filters: filters))
|
|
ev.Add(i);
|
|
|
|
SelectedEvents = ev.ToArray();
|
|
|
|
StateHasChanged();
|
|
}
|
|
}
|