From e2ed6109ca3f7638e17d7e7636fe4e8c9af46649 Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Fri, 7 Jul 2023 19:17:29 +0200 Subject: [PATCH] Implement multi-select workflow definition filter --- .../Pages/WorkflowInstances/List/Index.razor | 13 +++++---- .../WorkflowInstances/List/Index.razor.cs | 27 ++++++++++++++++--- 2 files changed, 31 insertions(+), 9 deletions(-) diff --git a/src/modules/Elsa.Studio.Workflows/Pages/WorkflowInstances/List/Index.razor b/src/modules/Elsa.Studio.Workflows/Pages/WorkflowInstances/List/Index.razor index 2fde54c1..a316ee17 100644 --- a/src/modules/Elsa.Studio.Workflows/Pages/WorkflowInstances/List/Index.razor +++ b/src/modules/Elsa.Studio.Workflows/Pages/WorkflowInstances/List/Index.razor @@ -1,6 +1,6 @@ @page "/workflows/instances" @using System.Globalization -@using Elsa.Api.Client.Resources.WorkflowInstances.Enums +@using Elsa.Api.Client.Resources.WorkflowDefinitions.Models @using Elsa.Studio.Workflows.Pages.WorkflowInstances.List.Models @using Variant = MudBlazor.Variant @@ -27,6 +27,13 @@ Cancel Retry + + + @foreach (var workflowDefinition in WorkflowDefinitions) + { + @workflowDefinition.Name + } + @@ -56,9 +63,6 @@ Finished - - Faulted - @@ -78,7 +82,6 @@ @context.CreatedAt.ToString("G", CultureInfo.InvariantCulture) @context.LastExecutedAt?.ToString("G", CultureInfo.InvariantCulture) @context.FinishedAt?.ToString("G", CultureInfo.InvariantCulture) - @context.FaultedAt?.ToString("G", CultureInfo.InvariantCulture) View diff --git a/src/modules/Elsa.Studio.Workflows/Pages/WorkflowInstances/List/Index.razor.cs b/src/modules/Elsa.Studio.Workflows/Pages/WorkflowInstances/List/Index.razor.cs index 0869c4b2..ce2cbbfd 100644 --- a/src/modules/Elsa.Studio.Workflows/Pages/WorkflowInstances/List/Index.razor.cs +++ b/src/modules/Elsa.Studio.Workflows/Pages/WorkflowInstances/List/Index.razor.cs @@ -1,13 +1,10 @@ +using Elsa.Api.Client.Resources.WorkflowDefinitions.Models; using Elsa.Api.Client.Resources.WorkflowDefinitions.Responses; using Elsa.Api.Client.Resources.WorkflowInstances.Enums; using Elsa.Api.Client.Resources.WorkflowInstances.Requests; using Elsa.Api.Client.Shared.Models; -using Elsa.Studio.DomInterop.Contracts; using Elsa.Studio.Workflows.Domain.Contracts; -using Elsa.Studio.Workflows.Models; -using Elsa.Studio.Workflows.Pages.WorkflowDefinitions.List; using Elsa.Studio.Workflows.Pages.WorkflowInstances.List.Models; -using Humanizer; using Microsoft.AspNetCore.Components; using MudBlazor; @@ -24,6 +21,21 @@ public partial class Index [Inject] private ISnackbar Snackbar { get; set; } = default!; [Inject] private IWorkflowInstanceService WorkflowInstanceService { get; set; } = default!; [Inject] private IWorkflowDefinitionService WorkflowDefinitionService { get; set; } = default!; + + private ICollection WorkflowDefinitions { get; set; } = new List(); + private ICollection SelectedWorkflowDefinitions { get; set; } = new List(); + + protected override async Task OnInitializedAsync() + { + await LoadWorkflowDefinitionsAsync(); + } + + private async Task LoadWorkflowDefinitionsAsync() + { + var workflowDefinitionsResponse = await WorkflowDefinitionService.ListAsync(new ListWorkflowDefinitionsRequest(), VersionOptions.Published); + + WorkflowDefinitions = workflowDefinitionsResponse.Items; + } private async Task> ServerReload(TableState state) { @@ -31,6 +43,7 @@ private async Task> ServerReload(TableState state { Page = state.Page, PageSize = state.PageSize, + DefinitionIds = SelectedWorkflowDefinitions.Select(x => x.DefinitionId).ToList(), }; var workflowInstancesResponse = await WorkflowInstanceService.ListAsync(request); @@ -102,4 +115,10 @@ private async Task OnBulkDeleteClicked() await WorkflowInstanceService.BulkDeleteAsync(workflowInstanceIds); Reload(); } + + private async Task OnSelectedWorkflowDefinitionsChanged(IEnumerable values) + { + SelectedWorkflowDefinitions = values.ToList(); + await _table.ReloadServerData(); + } } \ No newline at end of file