Incremental work on dashboard + API
This commit is contained in:
parent
59076c8b1f
commit
05fd146c1a
|
|
@ -225,13 +225,13 @@ namespace ElsaDashboard.Application.Shared
|
|||
|
||||
private async Task OnActivityPickedAsync(ActivityDescriptorSelectedEventArgs e, string? sourceActivityId, string? targetActivityId, string? outcome)
|
||||
{
|
||||
var activityDescriptor = e.ActivityInfo;
|
||||
var activityInfo = e.ActivityInfo;
|
||||
|
||||
await FlyoutPanelService.ShowAsync<ActivityEditor>(
|
||||
activityDescriptor.DisplayName,
|
||||
new { ActivityDescriptor = activityDescriptor },
|
||||
activityInfo.DisplayName,
|
||||
new { ActivityInfo = activityInfo },
|
||||
ButtonDescriptor.Create("Cancel", _ => ShowActivityPickerAsync(sourceActivityId, targetActivityId, outcome)),
|
||||
ButtonDescriptor.Create("OK", _ => AddActivityAsync(activityDescriptor, sourceActivityId, targetActivityId, outcome), true));
|
||||
ButtonDescriptor.Create("OK", _ => AddActivityAsync(activityInfo, sourceActivityId, targetActivityId, outcome), true));
|
||||
}
|
||||
|
||||
private async ValueTask OnActivityClick(MouseEventArgs e)
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ namespace Elsa.Server.Api.Endpoints.WorkflowDefinitions
|
|||
[SwaggerResponseExample(StatusCodes.Status200OK, typeof(WorkflowDefinitionPagedListExample))]
|
||||
[SwaggerOperation(
|
||||
Summary = "Returns a list of workflow definitions.",
|
||||
Description = "Returns paginated a list of workflow definition using the specified workflow definition ID and optional version options. When no version options are specified, the latest version is returned.",
|
||||
Description = "Returns paginated a list of workflow definitions. When no version options are specified, the latest versions are returned.",
|
||||
OperationId = "WorkflowDefinitions.List",
|
||||
Tags = new[] { "WorkflowDefinitions" })
|
||||
]
|
||||
|
|
@ -41,7 +41,8 @@ namespace Elsa.Server.Api.Endpoints.WorkflowDefinitions
|
|||
{
|
||||
version ??= VersionOptions.Latest;
|
||||
var totalCount = await _workflowDefinitionManager.CountAsync(version, cancellationToken);
|
||||
var items = await _workflowDefinitionManager.ListAsync(page, pageSize, version, cancellationToken);
|
||||
var skip = page * pageSize;
|
||||
var items = await _workflowDefinitionManager.ListAsync(skip, pageSize, version, cancellationToken);
|
||||
var pagedList = new PagedList<WorkflowDefinition>(items.ToList(), page, pageSize, totalCount);
|
||||
|
||||
return Json(pagedList, _serializer.GetSettings());
|
||||
|
|
|
|||
|
|
@ -0,0 +1,60 @@
|
|||
using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Elsa.Models;
|
||||
using Elsa.Serialization;
|
||||
using Elsa.Server.Api.Models;
|
||||
using Elsa.Server.Api.Swagger;
|
||||
using Elsa.Services;
|
||||
using Elsa.Services.Models;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Swashbuckle.AspNetCore.Annotations;
|
||||
using Swashbuckle.AspNetCore.Filters;
|
||||
|
||||
namespace Elsa.Server.Api.Endpoints.WorkflowRegistry
|
||||
{
|
||||
[ApiController]
|
||||
[ApiVersion("1")]
|
||||
[Route("v{apiVersion:apiVersion}/workflow-registry")]
|
||||
[Produces("application/json")]
|
||||
public class List : Controller
|
||||
{
|
||||
private readonly IWorkflowRegistry _workflowRegistry;
|
||||
private readonly IContentSerializer _serializer;
|
||||
|
||||
public List(IWorkflowRegistry workflowRegistry, IContentSerializer serializer)
|
||||
{
|
||||
_workflowRegistry = workflowRegistry;
|
||||
_serializer = serializer;
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
[ProducesResponseType(StatusCodes.Status200OK, Type = typeof(PagedList<WorkflowDefinition>))]
|
||||
[SwaggerResponseExample(StatusCodes.Status200OK, typeof(WorkflowDefinitionPagedListExample))]
|
||||
[SwaggerOperation(
|
||||
Summary = "Returns a list of workflow blueprints.",
|
||||
Description = "Returns paginated a list of workflow blueprints. When no version options are specified, the latest version is returned.",
|
||||
OperationId = "WorkflowBlueprints.List",
|
||||
Tags = new[] { "WorkflowBlueprints" })
|
||||
]
|
||||
public async Task<ActionResult<PagedList<WorkflowDefinition>>> Handle(int? page = default, int? pageSize = default, VersionOptions? version = default, CancellationToken cancellationToken = default)
|
||||
{
|
||||
version ??= VersionOptions.Latest;
|
||||
var workflowBlueprints = await _workflowRegistry.GetWorkflowsAsync(cancellationToken).Where(x => x.WithVersion(version.Value)).ToListAsync(cancellationToken);
|
||||
var totalCount = workflowBlueprints.Count;
|
||||
var skip = page * pageSize;
|
||||
var items = workflowBlueprints.AsEnumerable();
|
||||
|
||||
if (skip != null)
|
||||
items = items.Skip(skip.Value);
|
||||
|
||||
if (pageSize != null)
|
||||
items = items.Take(pageSize.Value);
|
||||
|
||||
var pagedList = new PagedList<IWorkflowBlueprint>(items.ToList(), page, pageSize, totalCount);
|
||||
|
||||
return Json(pagedList, _serializer.GetSettings());
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue