Display While condition expression

This commit is contained in:
Sipke Schoorstra 2021-04-14 14:38:35 +02:00
parent 2902569d8f
commit f3d904d246
2 changed files with 26 additions and 0 deletions

View file

@ -0,0 +1,24 @@
import {ElsaPlugin} from "../services/elsa-plugin";
import {eventBus} from '../services/event-bus';
import {ActivityDefinitionProperty, ActivityDesignDisplayContext, EventTypes} from "../models";
import {h} from "@stencil/core";
export class WhilePlugin implements ElsaPlugin {
constructor() {
eventBus.on(EventTypes.ActivityDesignDisplaying, this.onActivityDesignDisplaying);
}
onActivityDesignDisplaying(context: ActivityDesignDisplayContext) {
const activityModel = context.activityModel;
if (activityModel.type !== 'While')
return;
const props = activityModel.properties || [];
const condition: ActivityDefinitionProperty = props.find(x => x.name == 'Condition') || { name: 'Condition', expressions: {'Literal': ''}, syntax: 'Literal' };
const expression = condition.expressions[condition.syntax] || '';
const description = activityModel.description;
const bodyText = description && description.length > 0 ? description : expression;
context.bodyDisplay = <p>{bodyText}</p>;
}
}

View file

@ -9,6 +9,7 @@ import {ForkPlugin} from "../plugins/fork-plugin";
import {RunJavascriptPlugin} from "../plugins/run-javascript-plugin";
import {ActivityIconProviderPlugin} from "../plugins/activity-icon-provider-plugin";
import {SwitchPlugin} from "../plugins/switch-plugin";
import {WhilePlugin} from "../plugins/while-plugin";
export class PluginManager {
@ -19,6 +20,7 @@ export class PluginManager {
new DefaultDriversPlugin(),
new ActivityIconProviderPlugin(),
new IfPlugin(),
new WhilePlugin(),
new ForkPlugin(),
new SwitchPlugin(),
new HttpEndpointPlugin(),