Fix fork display for blueprint & instance views

This commit is contained in:
Sipke Schoorstra 2021-05-10 12:24:14 +02:00
parent fa916d3822
commit 45f9ab8467
3 changed files with 23 additions and 11 deletions

View file

@ -108,9 +108,15 @@ export class ElsaWorkflowBlueprintViewerScreen {
}
mapActivityModel(source: ActivityBlueprint): ActivityModel {
const descriptors: Array<ActivityDescriptor> = state.activityDescriptors;
const descriptor = descriptors.find(x => x.type == source.type);
const properties: Array<ActivityDefinitionProperty> = collection.map(source.properties.data, (v, k) => ({name: k, expressions: {'Literal': v}, syntax: SyntaxNames.Literal}));
const activityDescriptors: Array<ActivityDescriptor> = state.activityDescriptors;
const activityDescriptor = activityDescriptors.find(x => x.type == source.type);
const properties: Array<ActivityDefinitionProperty> = collection.map(source.properties.data, (value, key) => {
const propertyDescriptor = activityDescriptor.properties.find(x => x.name == key);
const defaultSyntax = propertyDescriptor.defaultSyntax || SyntaxNames.Literal;
const expressions = {};
expressions[defaultSyntax] = value;
return ({name: key, expressions: expressions, syntax: defaultSyntax});
});
return {
activityId: source.id,
@ -119,7 +125,7 @@ export class ElsaWorkflowBlueprintViewerScreen {
name: source.name,
type: source.type,
properties: properties,
outcomes: [...descriptor.outcomes],
outcomes: [...activityDescriptor.outcomes],
persistOutput: source.persistOutput,
persistWorkflow: source.persistWorkflow,
saveWorkflowContext: source.saveWorkflowContext,

View file

@ -143,9 +143,15 @@ export class ElsaWorkflowInstanceViewerScreen {
}
mapActivityModel(source: ActivityBlueprint): ActivityModel {
const descriptors: Array<ActivityDescriptor> = state.activityDescriptors;
const descriptor = descriptors.find(x => x.type == source.type);
const properties: Array<ActivityDefinitionProperty> = collection.map(source.properties.data, (v, k) => ({name: k, expressions: {'Literal': v}, syntax: SyntaxNames.Literal}));
const activityDescriptors: Array<ActivityDescriptor> = state.activityDescriptors;
const activityDescriptor = activityDescriptors.find(x => x.type == source.type);
const properties: Array<ActivityDefinitionProperty> = collection.map(source.properties.data, (value, key) => {
const propertyDescriptor = activityDescriptor.properties.find(x => x.name == key);
const defaultSyntax = propertyDescriptor.defaultSyntax || SyntaxNames.Literal;
const expressions = {};
expressions[defaultSyntax] = value;
return ({name: key, expressions: expressions, syntax: defaultSyntax});
});
return {
activityId: source.id,
@ -154,7 +160,7 @@ export class ElsaWorkflowInstanceViewerScreen {
name: source.name,
type: source.type,
properties: properties,
outcomes: [...descriptor.outcomes],
outcomes: [...activityDescriptor.outcomes],
persistOutput: source.persistOutput,
persistWorkflow: source.persistWorkflow,
saveWorkflowContext: source.saveWorkflowContext,

View file

@ -11,14 +11,14 @@ export class ForkPlugin implements ElsaPlugin {
onActivityDesignDisplaying(context: ActivityDesignDisplayContext) {
const activityModel = context.activityModel;
if (activityModel.type !== 'Fork')
return;
const props = activityModel.properties || [];
const syntax = SyntaxNames.Json;
const branches = props.find(x => x.name == 'Branches') || { expressions: {'Json': '[]'}, syntax: syntax };
const branches = props.find(x => x.name == 'Branches') || {expressions: {'Json': '[]'}, syntax: syntax};
const expression = branches.expressions[syntax];
context.outcomes = parseJson(expression) || [];
context.outcomes = !!expression['$values'] ? expression['$values'] : parseJson(expression) || [];
}
}