camunda-modeler icon indicating copy to clipboard operation
camunda-modeler copied to clipboard

Creating/expanding a subprocess overlaps previous content

Open volkergersabeck opened this issue 6 years ago • 16 comments

Description

When creating an expanded sub-process inside a flow the sub-process by default overlaps with previous content, requiring additional user actions to properly layout things.

This is shown in the following screencapture:

1244 switch task to subprocess

Expected Behaviour

If the subprocess does not yet have following content, then expand the subprocess only to the right, such that it does not overlap the previous content

volkergersabeck avatar Feb 18 '19 10:02 volkergersabeck

Nice little improvement.

nikku avatar Feb 18 '19 10:02 nikku

In other situations, an automatic application of the Space Tool might help.

falko avatar Apr 11 '19 17:04 falko

We could even go as far as checking for available space in all directions and expanding based on that information.

philippfromme avatar May 07 '19 07:05 philippfromme

Any improvement in this area would be helpful.

falko avatar May 07 '19 16:05 falko

And let's be very clear here: This is how it always looks when one creates a Sub-Process because our users are conditioned to avoid the palette and use the context pad.

falko avatar May 07 '19 16:05 falko

@philippfromme

Right, we have an issue for the scenario where there is content after the expanded subprocess. In the case of content above and below being overlapped, I think that would need further discussion on what the expected result should be. In this ticket, I'll focus on the scenario where there is only content before, and not above/below/after.

@falko

Just to make sure I understand what you mean by "one creates", do you mean the same as when "one expands", as shown in the screen capture? If not, could you explain how this issue is manifested when creating an expanded subprocess? I understand creating and expanding to be two different scenarios unless I'm mistaken.

gustavjf avatar May 08 '19 10:05 gustavjf

The default way to create any activity in the "normal flow" is to open the context pad on the current element, create an abstract task and use the wrench to morph it into the desired task type. Users do the same with an embedded sub-process, except that in this case the activity becomes bigger and currently breaks the layout.

There is also a sub-process in the palette but that is mostly used for event sub-processes that are outside the "normal flow", i.e. not connected with sequence flows. For elements in the "normal flow", users are rewarded for using the context pad with the automatic positioning and connecting of the new element.

In my opinion, "expanding" and "collapsing" of sub-processes is not relevant for practical use, because the contents of collapsed sub-process will be hidden in all visualizations rendered in any other Camunda tool, e.g. heatmaps in Cockpit and Optimize. Supporting this properly across all tools would be a much bigger discussion.

However, creating an (expanded) embedded sub-process is an everyday operation and should be a smooth experience for users.

falko avatar May 08 '19 18:05 falko

Got it, thanks for the clarification.

gustavjf avatar May 09 '19 07:05 gustavjf

We moved this issue back to the backlog as the implementation and the behavioral implications turned out way more complicated than expected.

nikku avatar May 29 '19 08:05 nikku

Work in progress on upstream feature branch: https://github.com/bpmn-io/bpmn-js/compare/1244-expand-subprocess-right.

nikku avatar May 29 '19 09:05 nikku

I stumbled across this today. Here is what it currently looks like. screen-recorder-wed-jan-17-2024-13-57-48.webm

JacobiCamunda avatar Jan 17 '24 17:01 JacobiCamunda

The same happened to me in recent customer meetings and it's always pretty embarrassing. Would it be an option to have a subprocess directly in the context pad so that the layout assist can place it further to the right immediately? Alternatively, the morph would have to perform some layout assist, i.e. if the target shape is bigger that the current shape, move the shape to the right if there is space or make space for it.

falko avatar Jan 18 '24 11:01 falko

CC @crobbins215. A good example where we're not done yet because we cause users in rather common refactoring activities (during refinement) harm.

A solution is, unfortunately, not an easy pick, as it would require a flow local space tool.

We could re-assess if there is easy picks to improve the situation.

nikku avatar Jan 18 '24 12:01 nikku

We had this exact issue when we added "groups" to Flow, we didn't get around to the solution which would be something like https://github.com/camunda/camunda-modeler/issues/876.

crobbins215 avatar Jan 18 '24 13:01 crobbins215

How about we just do a partial solution and assume that there is already space to the right, e.g. because we are at the end of a sequence or have already created space. With that assumption we could simply place the Sub-Process further right, i.e. aligned to the left of the morphed task and not centered on it. Maybe that is a quick win that solves 80%.

falko avatar Jan 18 '24 20:01 falko

We tried the partial solution. It was not an easy pick at the time.

If we optimized for the partial solution, why not use append anything to append a sub-process right away using create/append anything?

capture 4dWlYy_optimized

nikku avatar Jan 18 '24 22:01 nikku