@page "/history" @using ECM.JobRunner.Common.JobRunnerReference; @using ECM.JobRunner.Web.Data; @inject DashboardService Api History
Filter
@if (filteredEntries == null) {
  • Loading...
    Loading Job History..
} else if (filteredEntries.Count == 0) {
  • No Job History.
} else { @foreach (var entry in filteredEntries) {
  • @entry.Name
    @entry.CompleteTime.ToString("HH:mm:ss")
  • @foreach (var step in entry.Steps) {
  • @step.Created.ToString("HH:mm:ss") @step.Message
  • } @if (entry.Successful == false) {
  • @entry.FailureMessage @entry.ExecutionTime.ToString("mm':'ss")
  • } @if (entry.Successful == true && entry.Waiting == false) {
  • @entry.SuccessMessage @entry.ExecutionTime.ToString("mm':'ss")
  • } @if (entry.Successful == true && entry.Waiting == true) {
  • @entry.SuccessMessage @entry.ExecutionTime.ToString("mm':'ss")
  • }
} }
@code { private DateTime today; private List? statusEntries; private List? filteredEntries; private int dateFilter = 1; private bool showWaiting = false; // TODO: implement more filters private bool showSuccessful = true; private bool showFailed = true; protected async override void OnInitialized() { Helper.SetPageTitle("History"); DashboardResponse data = await Api.GetData(); UpdateData(data); Api.DataUpdated += Api_DataUpdated; } private void CheckboxChanged(ChangeEventArgs e) { showWaiting = (bool)e.Value; UpdateEntries(statusEntries); InvokeAsync(StateHasChanged); } private void DateFilterChanged(ChangeEventArgs e) { var dateFilterString = e.Value.ToString(); dateFilter = int.Parse(dateFilterString); UpdateEntries(statusEntries); InvokeAsync(StateHasChanged); } protected void Api_DataUpdated(object? sender, DashboardResponse e) { UpdateData(e); } protected void UpdateData(DashboardResponse response) { today = response.heartbeat; statusEntries = response.jobStatus; filteredEntries = UpdateEntries(response.jobStatus); InvokeAsync(StateHasChanged); } protected List? UpdateEntries(List? entries) { if (entries == null) { return null; } var filtered = entries. Where(s => s.Executing == false). ToList(); if (!showWaiting) { filtered = filtered. Where(e => e.Waiting == false).ToList(); } filtered = Helper.GetItemsForLastHours(filtered, dateFilter); return filtered; } }