Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Position/priority/order value property to dashboard nodes for Subflow and dynamic ordering #1485

Closed
phedders opened this issue Nov 19, 2024 · 10 comments
Labels
feature-request New feature or request that needs to be turned into Epic/Story details needs-triage Needs looking at to decide what to do

Comments

@phedders
Copy link

phedders commented Nov 19, 2024

Description

When creating a load of for example buttons through a subflow, there is currently no way to order said buttons in the group.

If there was a priority property, then a priority value could be defined with the subflow properties.

This could also be dynamically adjusted by flows (mqtt input etc) in the same way as color/bg/label...

I can also see how I would use this in normal dashboard items too (not having to go do the dashboard gui to reorder stuff that moved because a node was removed and re -added for example - if it was given a priority value already....)

(Currently using Dashboard 3.6.5 on Node-RED 4.0.5 - And I have just found out about Dashboard 2 which I thought was older than Dashboard 3.6.5... silly me So I am upgrading/rewriting my first dashboard - but the request stands still for DB2. I guess the control would be by sending it in msg.ui_update. or similar.)

Many thanks - DB2 looks awesome.

Have you provided an initial effort estimate for this issue?

I am no FlowFuse team member

@phedders phedders added feature-request New feature or request that needs to be turned into Epic/Story details needs-triage Needs looking at to decide what to do labels Nov 19, 2024
@phedders
Copy link
Author

Discourse discussion

@phedders
Copy link
Author

phedders commented Nov 23, 2024

There was a question about the focus of this in the discourse and I thought it would be helpful to mirror my thoughts here:

Colin asked: "Are you talking about ordering multiple subflow instances within one group, or ordering multiple widgets within one subflow?"

Both effectively :slight_smile:
Primarily ordering subflow instances in a group.

I can now remove hundreds of duplicate node groups in a dashboard flow because I can pass suitable data to each subflow instance - that is a game changer!

But nodes appear in a random order and the dashboard side control cant re-order them because being dynamic they do not exist. Yet. But if I give a priority to each instance for the group to build up the right ordering then that would be amazing.

Now if you also wanted to be able to give a 'sub'priority to each dashboard node in a subflow that would be even better because if for a particular control you wanted a Button and a Slice - you can either group and order them, or by making the offset bigger than the instance priority set, group by each type of node and then order the instances of each by the instance priority. Presumably you would apply it as an offset (or give a calculation so you could be more flexible with the layout)

I guess at the end of the day I really want programmatic ordering of Dashboard nodes as an alternative to the manual drop and drag input.

@colinl
Copy link
Contributor

colinl commented Nov 23, 2024

Primarily ordering subflow instances in a group.

Just to make sure I understand, you would like to be able to dynamically specify the ordering of the subflows in the UI? That is via message properties, not subflow properties (which are defined at design time). So one could make the subflows move about on the dashboard at run time?

@colinl
Copy link
Contributor

colinl commented Nov 26, 2024

@phedders can you clarify exactly what you are looking for? Do you want to be able to configure the subflow and widget order dynamically via messages (so widgets could be moved about on the dashboard at run time)?

@phedders
Copy link
Author

@colinl Thanks for asking - sorry I wasnt very clear. I think there are probably several aims.

The primary is to be able to create a subflow to have dashboard widgets to control and or display information about something (in my case mqtt devices - so for example a generic light switch, on/off, status and maybe a timer) and then be able to create multiple sets of that control using subflow nodes.

That now works really well because I can add properties to the subflow instance via each node to control labels and for example mqtt topics etc.

What I cannot do is set the order that those light controls will be displayed in within a group because you cannot control them in the dashboard sidemenu. So I want to give an index/priority value in the subflow node properties. That is the key request.

I assume that property could also be set/modified by messages to the subflow node and would have uses too.

(Come to think of it - can I create new subflow instances at run time... that could be very useful!)

Does that help clarify?

@colinl
Copy link
Contributor

colinl commented Nov 28, 2024

So I want to give an index/priority value in the subflow node properties. That is the key request.

Do you need specifically to be able control the order via subflow properties, so that different instances of the subflow could have differently ordered widgets, or is the key requirement just to be able to configure the widget order by some means at design time, with all instances of the subflow having the same widget layout?

I assume that property could also be set/modified by messages to the subflow node

It is not possible to change subflow properties by messages, they are fixed at deploy time.

can I create new subflow instances at run time

No. A deploy is necessary after adding a subflow.

@phedders
Copy link
Author

phedders commented Nov 28, 2024

Sorry I'm not being very clear :)
I have a bunch on subflow instances "Kitchen Lights" "Lounge Lights" "Hall Lights" "Bedroom1 Lights" etc.
I want to be able to set the order that instances will appear at design time.

But I think it would be great to be able to change the order at run time too - perhaps by which are currently on for example.

"It is not possible to change subflow properties by messages, they are fixed at deploy time."

I saw there was a old ticket #92 and #1237 that seemed to me to be a good idea to make these kind of things more dynamic and controllable at run time - But I think that one is stalled? Also #555 is a similar desire for more dynamic control of the nodes.

But maybe this is the best answer to your question - First off I would love the deploy time control of ordering. Run time control would be icing on the cake :)

Cheers!

@colinl
Copy link
Contributor

colinl commented Nov 29, 2024

I have a bunch on subflow instances "Kitchen Lights" "Lounge Lights" "Hall Lights" "Bedroom1 Lights" etc.
I want to be able to set the order that instances will appear at design time.

Oh, you want to order the subflows within the group, I thought you wanted to order the widgets within the subflow. The former is already covered by #710, the later by #1062

@phedders
Copy link
Author

Oh you are right Colin - I had read #1062 but misread its meaning think it was slightly different - I'll close this as a duplicate, with my apologies for the noise. I am hoping that someone with the knowledge and skill might have time to look into both of those.

AFAICT My remaining requests would be solved by Steves typedInput stuff too - so for my purposes DB2 is going to be amazing :)

Closing as duplicate of #1062 and also #710 - and really hoping #1237 reaches main soon.

@phedders phedders closed this as completed Dec 1, 2024
@github-project-automation github-project-automation bot moved this from Backlog to Done in Dashboard Backlog Dec 1, 2024
@Steve-Mcl
Copy link
Contributor

and really hoping #1237 reaches main soon.

me too!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature-request New feature or request that needs to be turned into Epic/Story details needs-triage Needs looking at to decide what to do
Projects
Status: Done
Development

No branches or pull requests

3 participants