OrchardCMS / OrchardCore

Orchard Core is an open-source modular and multi-tenant application framework built with ASP.NET Core, and a content management system (CMS) built on top of that framework.
https://orchardcore.net
BSD 3-Clause "New" or "Revised" License
7.22k stars 2.34k forks source link

Upgrade workflows diagramming library to a modern digramming ui library #16067

Open giannik opened 1 month ago

giannik commented 1 month ago

With the changes underway in #16043 would it be a good time to evaluate a new workflows diagramming ui ? Currently we are using an outdated version of js plumb.

Some features i would like and are missing are zooming and panning especially for large diagrams.Also auto layout would be usefull.

Proposals : X6 : https://github.com/antvis/X6

Piedone commented 1 month ago

Please fill out the feature request template. Since this is a non-trivial request, it'll help us evaluate it and cut down on back-and-forth.

hishamco commented 1 month ago

@sfmskywalker already demo Elsa last year, this might be a great option

hishamco commented 1 month ago

Maybe related to #13652

sebastienros commented 1 month ago

If we want to use a different framework to add these features, we should start by begin on par with the old features first. Then think about which new features we want.

sfmskywalker commented 1 month ago

If this is just about the designer, then X6 would be a great replacement. It has at least what JsPlumb has (in terms what OC needs), and more. Including zooming and panning, which on their own would add a lot of value in terms of UX.

hyzx86 commented 1 month ago

I have some questions about switching to Elsa-Workflow. Elsa UI uses SPA that can generate UI layouts for workflow nodes using type attribute based features, but there are some nodes in the OC that still require complex interactions with HTML and js, such as HttpRequestEvent , Workflow Fault Event, etc. Does this mean that if we want workflow nodes in modules we need to package them individually and introduce them to the workflow UI canvas in umd fashion or do we need a Json driven UI like this?

Does this mean that if we want to have workflow nodes in modules, we need to package each module separately and bring it into the workflow UI canvas as umd or do we need a Json driven UI like amis. which relies on a set of powerful UI libraries, where we just provide the json structure in the module, and then refer to it in the SPA to render the view?

Here's a little experiment I did last year using X6 based on OrchardCore workflow image