Implement User Task plugin

Fixes #351
This commit is contained in:
Sipke Schoorstra 2021-05-28 20:40:38 +02:00
parent 88a5c61a16
commit 7aae03a2dc
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 {ActivityDesignDisplayContext, EventTypes, SyntaxNames} from "../models";
import {h} from "@stencil/core";
import {parseJson} from "../utils/utils";
export class UserTaskPlugin implements ElsaPlugin {
constructor() {
eventBus.on(EventTypes.ActivityDesignDisplaying, this.onActivityDesignDisplaying);
}
onActivityDesignDisplaying(context: ActivityDesignDisplayContext) {
const activityModel = context.activityModel;
if (activityModel.type !== 'UserTask')
return;
const props = activityModel.properties || [];
const syntax = SyntaxNames.Json;
const branches = props.find(x => x.name == 'Actions') || {expressions: {'Json': '[]'}, syntax: syntax};
const expression = branches.expressions[syntax];
context.outcomes = !!expression['$values'] ? expression['$values'] : parseJson(expression) || [];
}
}

View file

@ -14,6 +14,7 @@ import {StartAtPlugin} from "../plugins/start-at-plugin";
import {CronPlugin} from "../plugins/cron-plugin";
import {SignalReceivedPlugin} from "../plugins/signal-received-plugin";
import {SendSignalPlugin} from "../plugins/send-signal-plugin";
import {UserTaskPlugin} from "../plugins/user-task-plugin";
export class PluginManager {
@ -35,6 +36,7 @@ export class PluginManager {
new SendSignalPlugin(),
new WriteLinePlugin(),
new RunJavascriptPlugin(),
new UserTaskPlugin(),
new SendEmailPlugin()
];
}