Comments (4)
Currently Flowy doesn't have such features as it's meant to be minimal. Could implement those if I could think of a simple user behaviour to make such connections - would the blocks automatically come with that sort of logic (e.g. the Validate block loop, or in the case of if/else)? Are there only specific scenarios where this would happen or should it be possible to generate connections between blocks as needed?
from flowy.
I discovered this amazing project just 5 minutes ago, and I'm already considering replacing my Elsa Workflow designer (which is based on jsPlumb) with Flowy.
However, as @kafai97 describes, I'm looking for the ability to allow arbitrary connections be made between any two blocks. This enables modeling flowcharts to loop back, fork/join and multiple incoming connections to a given block as depicted here:
From what I've seen so far, Flowy automatically creates a connection when dropping a block from the toolbox onto another block on the canvas.
Perhaps the following UX could help:
- User drops a block A onto the canvas.
- User drops another block B onto the canvas (not on block A, but below/besides/arbitrary location).
- Now the user wants to connect the two blocks manually. They do so by clicking/hovering the source block, after which available endoints (the little blue circles) appear. User grabs one of these endpoints and drags it onto the target block. A new connection is created after releasing the mouse.
It would work a little bit like this demonstration.
In the case of the designer requirements for Elsa Workflows, I would need the designer to allow each block to have an arbitrary number of handles/endpoints from which the user can drag connections to other blocks.
I guess the tricky part might be the automatic layout of blocks that you have currently in place. I noticed that as soon as I drop a block onto another block, a connection is automatically created and the block is automatically given a location on the canvas. I imagine you perform this layout based on blocks and their connections. When you were to allow users to drop blocks without having a connection initially, it would probably be difficult to determine where the block should be located. On the other hand, perhaps it makes sense for disconnected blocks to not be auto-positioned at all, and just let them "float" - until the user connects this block to another one, after which Flowy would perform the automatic layout.
Is this something you would consider implementing?
from flowy.
I discovered this amazing project just 5 minutes ago, and I'm already considering replacing my Elsa Workflow designer (which is based on jsPlumb) with Flowy.
However, as @kafai97 describes, I'm looking for the ability to allow arbitrary connections be made between any two blocks. This enables modeling flowcharts to loop back, fork/join and multiple incoming connections to a given block as depicted here:
From what I've seen so far, Flowy automatically creates a connection when dropping a block from the toolbox onto another block on the canvas.
Perhaps the following UX could help:
- User drops a block A onto the canvas.
- User drops another block B onto the canvas (not on block A, but below/besides/arbitrary location).
- Now the user wants to connect the two blocks manually. They do so by clicking/hovering the source block, after which available endoints (the little blue circles) appear. User grabs one of these endpoints and drags it onto the target block. A new connection is created after releasing the mouse.
It would work a little bit like this demonstration.
In the case of the designer requirements for Elsa Workflows, I would need the designer to allow each block to have an arbitrary number of handles/endpoints from which the user can drag connections to other blocks.
I guess the tricky part might be the automatic layout of blocks that you have currently in place. I noticed that as soon as I drop a block onto another block, a connection is automatically created and the block is automatically given a location on the canvas. I imagine you perform this layout based on blocks and their connections. When you were to allow users to drop blocks without having a connection initially, it would probably be difficult to determine where the block should be located. On the other hand, perhaps it makes sense for disconnected blocks to not be auto-positioned at all, and just let them "float" - until the user connects this block to another one, after which Flowy would perform the automatic layout.
Is this something you would consider implementing?
I understand the need for this sort of functionality in some scenarios, but I just feel like this is not what this library is really about. I created this because all the other flowchart libraries were unnecessarily complicated, made it hard to place blocks which you then had to connect manually, and often required other dependencies like jQuery.
Flowy is just a simple library that allows people to quickly implement flowchart functionality in their projects with basic features, with very few lines of code. People are free to add more functionality to the library depending on their needs, but I like the base being as simple as possible, with only the most important features coming together with it.
What you are proposing is basically just turning this into a complex flowchart library, and having the same functionality that many other Javascript libraries already have - nothing unique about that. I don't really plan to do so, and in any case, it would be something separate from Flowy, most certainly.
from flowy.
I'm closing this issue as it deviates too much from the current library, and I can't think of any possible implementations that would work with it in the current state.
from flowy.
Related Issues (20)
- Output is Not define
- Block name change
- More advanced demo? HOT 7
- Prevent junctions
- Is it possible to implement for nodes to have more than 1 parent? HOT 4
- How to use it in Vuejs ? HOT 3
- Output not getting imported HOT 2
- Can you give me a solution to use it in React js ? HOT 3
- Conditional Snapping Issue HOT 1
- Please invite me in your project. HOT 1
- Drag block item when scrolled
- Hey
- Unable to add text box in the flowchart
- Demo Site link working HOT 1
- Live demo link broken HOT 2
- [Feature request] Dark theme
- Create zoom canva preview
- Support? HOT 2
- How to split branches manually
- How to support cyclic relations between blocks in flowy
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from flowy.