Skip to content

Added expand/collapse functionalities to relationship formwidget #1374

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

Open
wants to merge 8 commits into
base: develop
Choose a base branch
from

Conversation

damsfx
Copy link
Contributor

@damsfx damsfx commented Jun 24, 2025

This allow relation model with nested tree trait to display a expandable/collapsable list of checkboxes.

relation_with_tree

The field config allow two new options :

  • displayTree: (bool) display the related model as a tree structure
  • quickTreeActions: (bool) show tree quick actions (expand all nodes, collapse all nodes and expand only selected nodes)

@bennothommo
Copy link
Member

@damsfx ooo, I like this. And in Snowboard too! 😍

Couple of quick comments/questions:

  • How performant is it with a whole heap of items (like, say, 100s of items)?
  • Could the animation be a touch faster? Might be just on the border of being a bit too slow to feel "snappy".

@damsfx
Copy link
Contributor Author

damsfx commented Jun 27, 2025

@bennothommo

And in Snowboard too! 😍

Definitely yes!
The more I practice, the more I love it! It's good to be back in a vanilla javascript environment.

Despite this, a function written in jQuery is still called to update the scroll bar. :o(

How performant is it with a whole heap of items (like, say, 100s of items)?

The tree structure used for my tests and visible in the animation above contains 550 nodes spread over 4 levels of depth.
I can always do a test with more nodes.

Could the animation be a touch faster? Might be just on the border of being a bit too slow to feel "snappy".

For sure.

@damsfx
Copy link
Contributor Author

damsfx commented Jun 27, 2025

@bennothommo

Latest update :

  • Use promise to adjust srcollbar after expand/collaspe node(s)
  • CloseAll() close only opened nodes instead of all nodes
  • Reduce animation timmings
  • Use CSS animation end to trigger scrollbar update

@bennothommo
Copy link
Member

@damsfx don't be too concerned if you need to fall back on jQuery to do something in the Backend. A lot of the Backend still uses it and the goal of Snowboard was to remove the dependency of jQuery for the CMS side in particular.

@LukeTowers LukeTowers requested a review from bennothommo July 16, 2025 22:15
@LukeTowers
Copy link
Member

@bennothommo are you happy with this as it is?

@damsfx is there a related docs PR?

@LukeTowers LukeTowers added needs review Issues/PRs that require a review from a maintainer needs docs Issues/PRs that require changes to the documentation to be completed labels Jul 16, 2025
@damsfx
Copy link
Contributor Author

damsfx commented Jul 16, 2025

@damsfx is there a related docs PR?

Not yet, but I can add a pending PR for this.

@damsfx
Copy link
Contributor Author

damsfx commented Jul 18, 2025

@damsfx is there a related docs PR?

@LukeTowers Done : wintercms/docs#243

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
needs docs Issues/PRs that require changes to the documentation to be completed needs review Issues/PRs that require a review from a maintainer
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants