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

[Dashboard][Research] Refactor Grid and Layout Systems #88710

Closed
clintandrewhall opened this issue Jan 19, 2021 · 6 comments
Closed

[Dashboard][Research] Refactor Grid and Layout Systems #88710

clintandrewhall opened this issue Jan 19, 2021 · 6 comments
Assignees
Labels
Feature:Dashboard Dashboard related features impact:high Addressing this issue will have a high level of impact on the quality/strength of our product. loe:x-large Extra Large Level of Effort R&D Research and development ticket (not meant to produce code, but to make a decision) Team:Presentation Presentation Team for Dashboard, Input Controls, and Canvas

Comments

@clintandrewhall
Copy link
Contributor

clintandrewhall commented Jan 19, 2021

Summary of Exploration or Proposed Change

In the 8.x timeframe, the dashboard app should move away from react grid layout as its layout engine, and towards a custom system which allows for greater flexibility and customizability for users while retaining the ease of use and structured 'website-like' layouts dashboard is currently known for.

Problems with React Grid Layout

  • minimal support for responsiveness: e.g. each device size needs to be configured separately. Currently there is only one 'mobile view' configured which just stacks all panels. vertically.
  • Unable to drag panels between two grid instances. This makes collapsable sections far less intuitive than it should be
  • Dated UI

Findings

From my research, it seems like creating a custom layout engine based on CSS flexbox, and utilizing existing EUI components to handle the styling and some functionality is the correct way forward.

Inspiration
These following links could be put together to form a robust, simple, and flexible layout system for dashboard.

This new layout engine would make it possible to create and customize better looking dashboards which properly respond to changing widths. It would also allow for more interesting container types, like a collapsable container, multiple tabs, containers with headers and icons etc.

Considerations

@clintandrewhall clintandrewhall added Feature:Dashboard Dashboard related features Team:Presentation Presentation Team for Dashboard, Input Controls, and Canvas R&D Research and development ticket (not meant to produce code, but to make a decision) Feature:Canvas Breaking Change 8.0.0 labels Jan 19, 2021
@elasticmachine
Copy link
Contributor

Pinging @elastic/kibana-presentation (Team:Presentation)

@wylieconlon wylieconlon removed the 8.0.0 label Jan 20, 2021
@ThomThomson ThomThomson added loe:x-large Extra Large Level of Effort impact:high Addressing this issue will have a high level of impact on the quality/strength of our product. and removed Feature:Canvas labels Jan 26, 2023
@ThomThomson
Copy link
Contributor

Related to #1547 - as this grid layout system replacement is required for that feature.

@ThomThomson ThomThomson changed the title [8.0 Research] Refactor Grid and Layout Systems [Research] Refactor Grid and Layout Systems Jan 26, 2023
@ThomThomson ThomThomson changed the title [Research] Refactor Grid and Layout Systems [Dashboard][Research] Refactor Grid and Layout Systems Jan 26, 2023
@IanLee1521
Copy link

@ThomThomson - do you happen to know if there is a planned horizon / timeline towards this refactor? I came here from issues like #1547 and #29749 which are blocked by this refactor and would be massive quality of life improvements for us. Particularly #29749 which was something that we made heavy use of in Splunk before.

@ThomThomson
Copy link
Contributor

@IanLee1521, thanks for the +1 on this. The issues you've linked are some of our highest priority items at the moment. Unfortunately, we have a lot of work to do before we can get to those. A breakdown of that work is:

  1. We need to finish our Embedding Refactor, which addresses important tech-debt items. This will make subsequent feature work quicker and more stable, and the work is currently underway. You can follow along in the linked meta issue to see our progress.
  2. We need to build and implement a new layout solution for Kibana Dashboards - that's this issue.

Only then can we start on features like collapsable panels, and filtering a subset of panels. I can't give a concrete timeline at the moment, but we are actively working on this and our priorities are unlikely to change until they're built. 

@IanLee1521
Copy link

You bet. Awesome to hear this is getting some good attention.

If there is anything that I could do to help it along (early testing, feedback, etc) please add me to your contact list. Would be happy to help.

@ThomThomson
Copy link
Contributor

We're getting much closer to this system, with research and POCs nearing completion. Because of this, I am closing this in favour of #190372, which is more integrated with the project meta.

The research is complete and resulted in a new layout system which will support all of the requirements listed above and unblock some of our most important projects.

COLLAPSE

You can follow along with the project to bring Collapsable Panels to Kibana Dashboards here. Thank you for your patience!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature:Dashboard Dashboard related features impact:high Addressing this issue will have a high level of impact on the quality/strength of our product. loe:x-large Extra Large Level of Effort R&D Research and development ticket (not meant to produce code, but to make a decision) Team:Presentation Presentation Team for Dashboard, Input Controls, and Canvas
Projects
None yet
Development

No branches or pull requests

5 participants