Code clean up and Stop Workflow button implementation
This commit is contained in:
parent
297b7a0e13
commit
d4ce7dd160
|
|
@ -20,6 +20,7 @@ export class ElsaWorkflowTestPanel {
|
|||
@Prop() serverUrl: string;
|
||||
@State() hubConnection: HubConnection;
|
||||
@State() workflowTestActivityMessages: Array<WorkflowTestActivityMessage> = [];
|
||||
@State() workflowStarted: boolean = false;
|
||||
|
||||
i18next: i18n;
|
||||
signalRConnectionId: string;
|
||||
|
|
@ -63,9 +64,9 @@ export class ElsaWorkflowTestPanel {
|
|||
|
||||
async onExecuteWorkflowClick() {
|
||||
this.message = null;
|
||||
this.workflowStarted = true;
|
||||
this.workflowTestActivityMessages = [];
|
||||
eventBus.emit(EventTypes.TestActivityMessageReceived, this, null);
|
||||
const client = await createElsaClient(this.serverUrl);
|
||||
|
||||
const request: WorkflowTestExecuteRequest = {
|
||||
workflowDefinitionId: this.workflowDefinition.definitionId,
|
||||
|
|
@ -73,9 +74,24 @@ export class ElsaWorkflowTestPanel {
|
|||
signalRConnectionId: this.signalRConnectionId
|
||||
};
|
||||
|
||||
const client = await createElsaClient(this.serverUrl);
|
||||
await client.workflowTestApi.execute(request);
|
||||
}
|
||||
|
||||
async onStopWorkflowClick() {
|
||||
eventBus.emit(EventTypes.TestActivityMessageReceived, this, null);
|
||||
|
||||
let message = this.workflowTestActivityMessages.last();
|
||||
debugger;
|
||||
if (!!message) {
|
||||
const client = await createElsaClient(this.serverUrl);
|
||||
await client.workflowInstancesApi.delete(message.workflowInstanceId);
|
||||
}
|
||||
|
||||
this.workflowStarted = false;
|
||||
this.workflowTestActivityMessages = [];
|
||||
}
|
||||
|
||||
render() {
|
||||
|
||||
const t = (x, params?) => this.i18next.t(x, params);
|
||||
|
|
@ -119,11 +135,19 @@ export class ElsaWorkflowTestPanel {
|
|||
<Host>
|
||||
<dl class="elsa-border-b elsa-border-gray-200 elsa-divide-y elsa-divide-gray-200">
|
||||
<div class="elsa-py-3 elsa-flex elsa-justify-between elsa-text-sm elsa-font-medium">
|
||||
<button type="button"
|
||||
onClick={() => this.onExecuteWorkflowClick()}
|
||||
class="elsa-ml-0 elsa-w-full elsa-inline-flex elsa-justify-center elsa-rounded-md elsa-border elsa-border-transparent elsa-shadow-sm elsa-px-4 elsa-py-2 elsa-bg-blue-600 elsa-text-base elsa-font-medium elsa-text-white hover:elsa-bg-blue-700 focus:elsa-outline-none focus:elsa-ring-2 focus:elsa-ring-offset-2 focus:elsa-ring-blue-500 sm:elsa-ml-3 sm:elsa-w-auto sm:elsa-text-sm">
|
||||
{t('ExecuteWorkflow')}
|
||||
</button>
|
||||
{!this.workflowStarted ?
|
||||
<button type="button"
|
||||
onClick={() => this.onExecuteWorkflowClick()}
|
||||
class="elsa-ml-0 elsa-w-full elsa-inline-flex elsa-justify-center elsa-rounded-md elsa-border elsa-border-transparent elsa-shadow-sm elsa-px-4 elsa-py-2 elsa-bg-blue-600 elsa-text-base elsa-font-medium elsa-text-white hover:elsa-bg-blue-700 focus:elsa-outline-none focus:elsa-ring-2 focus:elsa-ring-offset-2 focus:elsa-ring-blue-500 sm:elsa-ml-3 sm:elsa-w-auto sm:elsa-text-sm">
|
||||
{t('ExecuteWorkflow')}
|
||||
</button>
|
||||
:
|
||||
<button type="button"
|
||||
onClick={() => this.onStopWorkflowClick()}
|
||||
class="elsa-ml-0 elsa-w-full elsa-inline-flex elsa-justify-center elsa-rounded-md elsa-border elsa-border-transparent elsa-shadow-sm elsa-px-4 elsa-py-2 elsa-bg-red-600 elsa-text-base elsa-font-medium elsa-text-white hover:elsa-bg-red-700 focus:elsa-outline-none focus:elsa-ring-2 focus:elsa-ring-offset-2 focus:elsa-ring-red-500 sm:elsa-ml-3 sm:elsa-w-auto sm:elsa-text-sm">
|
||||
{t('StopWorkflow')}
|
||||
</button>
|
||||
}
|
||||
</div>
|
||||
</dl>
|
||||
{renderActivityTestMessage()}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ export const resources = {
|
|||
'en': {
|
||||
default: {
|
||||
'ExecuteWorkflow': 'Execute Workflow',
|
||||
'StopWorkflow': 'Stop Workflow',
|
||||
'EntryEndpoint': 'Entry Endpoint',
|
||||
'Status': 'Status'
|
||||
}
|
||||
|
|
@ -9,6 +10,7 @@ export const resources = {
|
|||
'nl-NL': {
|
||||
default: {
|
||||
'ExecuteWorkflow': 'Werkstroom uitvoeren',
|
||||
'StopWorkflow': 'Werkstroom stoppen',
|
||||
'EntryEndpoint': 'Invoer eindpunt',
|
||||
'Status': 'Toestand'
|
||||
}
|
||||
|
|
|
|||
|
|
@ -325,6 +325,7 @@ export class SyntaxNames {
|
|||
|
||||
export interface WorkflowTestActivityMessage {
|
||||
path?: string;
|
||||
workflowInstanceId: string;
|
||||
correlationId: string;
|
||||
activityId: string;
|
||||
status: string;
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@ namespace Elsa.Server.Api.Handlers
|
|||
var context = notification.ActivityExecutionContext;
|
||||
string? path = default;
|
||||
|
||||
//var signalRConnectionId = context.WorkflowExecutionContext.WorkflowBlueprint.SignalRConnectionId;
|
||||
var signalRConnectionId = context.WorkflowExecutionContext.WorkflowInstance.GetMetaData("signalRConnectionId")?.ToString();
|
||||
if (string.IsNullOrWhiteSpace(signalRConnectionId)) return;
|
||||
|
||||
|
|
@ -53,6 +52,7 @@ namespace Elsa.Server.Api.Handlers
|
|||
var message = new WorkflowTestMessage
|
||||
{
|
||||
Path = path,
|
||||
WorkflowInstanceId = context.WorkflowInstance.Id,
|
||||
CorrelationId = context.CorrelationId,
|
||||
ActivityId = context.ActivityId,
|
||||
WorkflowStatus = context.WorkflowExecutionContext.Status == WorkflowStatus.Running
|
||||
|
|
@ -81,12 +81,12 @@ namespace Elsa.Server.Api.Handlers
|
|||
public async Task Handle(ActivityExecutionResultFailed notification, CancellationToken cancellationToken)
|
||||
{
|
||||
var context = notification.ActivityExecutionContext;
|
||||
//var signalRConnectionId = context.WorkflowExecutionContext.WorkflowBlueprint.SignalRConnectionId;
|
||||
var signalRConnectionId = context.WorkflowExecutionContext.WorkflowInstance.GetMetaData("signalRConnectionId")?.ToString();
|
||||
if (string.IsNullOrWhiteSpace(signalRConnectionId)) return;
|
||||
|
||||
var message = new WorkflowTestMessage
|
||||
{
|
||||
WorkflowInstanceId = context.WorkflowInstance.Id,
|
||||
CorrelationId = context.CorrelationId,
|
||||
ActivityId = context.ActivityId,
|
||||
Error = notification.Exception.InnerException?.InnerException?.ToString()
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ namespace Elsa.Server.Api.Models
|
|||
public class WorkflowTestMessage
|
||||
{
|
||||
public string? Path { get; set; }
|
||||
public string WorkflowInstanceId { get; set; } = default!;
|
||||
public string CorrelationId { get; set; } = default!;
|
||||
public string ActivityId { get; set; } = default!;
|
||||
public string Status { get; set; } = default!;
|
||||
|
|
|
|||
Loading…
Reference in a new issue