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][Collapsable Panels] Fix bug on layout update #202049

Merged

Conversation

Heenawter
Copy link
Contributor

@Heenawter Heenawter commented Nov 27, 2024

Summary

When the layout prop updates, we cannot assume that it is "safe" (i.e. we cannot assume it has no floating panels and/or colliding panels). Because of this, we need to resolve each grid row when this prop changes. When I added this in #200793, I accidentally only compacted the rows, which did not account for possible collisions that the Dashboard's panel placement strategies do not account for. This PR fixes that by calling resolveGridRow (which compacts and detects collisions) instead of just compactGridRow (which, as the name suggests, only compacts the rows)

Before:

Screen.Recording.2024-11-27.at.11.40.23.AM.mov

After:

Screen.Recording.2024-11-27.at.11.41.55.AM.mov

Checklist

  • The PR description includes the appropriate Release Notes section, and the correct release_note:* label is applied per the guidelines

Identify risks

There are no risks to this PR, since all work is contained in the examples plugin.

@Heenawter Heenawter added Feature:Dashboard Dashboard related features Team:Presentation Presentation Team for Dashboard, Input Controls, and Canvas loe:small Small Level of Effort release_note:skip Skip the PR/issue when compiling release notes impact:high Addressing this issue will have a high level of impact on the quality/strength of our product. backport:prev-minor Backport to (8.x) the previous minor version (i.e. one version back from main) Project:Collapsable Panels Related to the project for adding collapsable sections to Dashboards. labels Nov 27, 2024
@Heenawter Heenawter self-assigned this Nov 27, 2024
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file should have been deleted in #200793, but I forgot to 🤦

@Heenawter Heenawter marked this pull request as ready for review November 27, 2024 18:43
@Heenawter Heenawter requested a review from a team as a code owner November 27, 2024 18:43
@elasticmachine
Copy link
Contributor

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

@Heenawter Heenawter requested a review from nickpeihl November 27, 2024 18:43
@Heenawter Heenawter enabled auto-merge (squash) November 27, 2024 19:10
@Heenawter Heenawter merged commit 57b8bda into elastic:main Nov 27, 2024
8 checks passed
@kibanamachine
Copy link
Contributor

Starting backport for target branches: 8.x

https://github.com/elastic/kibana/actions/runs/12058311031

@elasticmachine
Copy link
Contributor

💛 Build succeeded, but was flaky

Failed CI Steps

Test Failures

  • [job] [logs] Jest Tests #8 / Templates renders correctly

Metrics [docs]

✅ unchanged

cc @Heenawter

@Heenawter Heenawter deleted the kbn-grid-layout_fix-add-bug_2024-11-27 branch November 27, 2024 21:16
kibanamachine pushed a commit to kibanamachine/kibana that referenced this pull request Nov 27, 2024
…02049)

## Summary

When the `layout` prop updates, we cannot assume that it is "safe" (i.e.
we cannot assume it has no floating panels and/or colliding panels).
Because of this, we need to resolve each grid row when this prop
changes. When I added this in
elastic#200793, I accidentally only
**compacted** the rows, which did not account for possible collisions
that the Dashboard's panel placement strategies do not account for. This
PR fixes that by calling `resolveGridRow` (which compacts **and**
detects collisions) instead of just `compactGridRow` (which, as the name
suggests, only compacts the rows)

**Before:**

https://github.com/user-attachments/assets/bcea4efd-35fa-425d-ac04-41434ffaa810

**After:**

https://github.com/user-attachments/assets/6cd205c6-d1d5-4a97-8d14-425c2a4bbeda

### Checklist

- [x] The PR description includes the appropriate Release Notes section,
and the correct `release_note:*` label is applied per the
[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)

### Identify risks

There are no risks to this PR, since all work is contained in the
`examples` plugin.

(cherry picked from commit 57b8bda)
@kibanamachine
Copy link
Contributor

💚 All backports created successfully

Status Branch Result
8.x

Note: Successful backport PRs will be merged automatically after passing CI.

Questions ?

Please refer to the Backport tool documentation

kibanamachine added a commit that referenced this pull request Nov 27, 2024
…pdate (#202049) (#202072)

# Backport

This will backport the following commits from `main` to `8.x`:
- [[Dashboard][Collapsable Panels] Fix bug on `layout` update
(#202049)](#202049)

<!--- Backport version: 9.4.3 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sqren/backport)

<!--BACKPORT [{"author":{"name":"Hannah
Mudge","email":"[email protected]"},"sourceCommit":{"committedDate":"2024-11-27T21:12:15Z","message":"[Dashboard][Collapsable
Panels] Fix bug on `layout` update (#202049)\n\n## Summary\r\n\r\nWhen
the `layout` prop updates, we cannot assume that it is \"safe\"
(i.e.\r\nwe cannot assume it has no floating panels and/or colliding
panels).\r\nBecause of this, we need to resolve each grid row when this
prop\r\nchanges. When I added this
in\r\nhttps://github.com//pull/200793, I accidentally
only\r\n**compacted** the rows, which did not account for possible
collisions\r\nthat the Dashboard's panel placement strategies do not
account for. This\r\nPR fixes that by calling `resolveGridRow` (which
compacts **and**\r\ndetects collisions) instead of just `compactGridRow`
(which, as the name\r\nsuggests, only compacts the
rows)\r\n\r\n**Before:**\r\n\r\n\r\n\r\n\r\nhttps://github.com/user-attachments/assets/bcea4efd-35fa-425d-ac04-41434ffaa810\r\n\r\n\r\n**After:**\r\n\r\n\r\nhttps://github.com/user-attachments/assets/6cd205c6-d1d5-4a97-8d14-425c2a4bbeda\r\n\r\n\r\n\r\n###
Checklist\r\n\r\n- [x] The PR description includes the appropriate
Release Notes section,\r\nand the correct `release_note:*` label is
applied per
the\r\n[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\r\n\r\n###
Identify risks\r\n\r\nThere are no risks to this PR, since all work is
contained in the\r\n`examples`
plugin.","sha":"57b8bdad3fb64d26b8fe3b0bf12c071857fff9e2","branchLabelMapping":{"^v9.0.0$":"main","^v8.18.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["Feature:Dashboard","Team:Presentation","loe:small","release_note:skip","impact:high","v9.0.0","backport:prev-minor","Project:Collapsable
Panels"],"title":"[Dashboard][Collapsable Panels] Fix bug on `layout`
update","number":202049,"url":"https://github.com/elastic/kibana/pull/202049","mergeCommit":{"message":"[Dashboard][Collapsable
Panels] Fix bug on `layout` update (#202049)\n\n## Summary\r\n\r\nWhen
the `layout` prop updates, we cannot assume that it is \"safe\"
(i.e.\r\nwe cannot assume it has no floating panels and/or colliding
panels).\r\nBecause of this, we need to resolve each grid row when this
prop\r\nchanges. When I added this
in\r\nhttps://github.com//pull/200793, I accidentally
only\r\n**compacted** the rows, which did not account for possible
collisions\r\nthat the Dashboard's panel placement strategies do not
account for. This\r\nPR fixes that by calling `resolveGridRow` (which
compacts **and**\r\ndetects collisions) instead of just `compactGridRow`
(which, as the name\r\nsuggests, only compacts the
rows)\r\n\r\n**Before:**\r\n\r\n\r\n\r\n\r\nhttps://github.com/user-attachments/assets/bcea4efd-35fa-425d-ac04-41434ffaa810\r\n\r\n\r\n**After:**\r\n\r\n\r\nhttps://github.com/user-attachments/assets/6cd205c6-d1d5-4a97-8d14-425c2a4bbeda\r\n\r\n\r\n\r\n###
Checklist\r\n\r\n- [x] The PR description includes the appropriate
Release Notes section,\r\nand the correct `release_note:*` label is
applied per
the\r\n[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\r\n\r\n###
Identify risks\r\n\r\nThere are no risks to this PR, since all work is
contained in the\r\n`examples`
plugin.","sha":"57b8bdad3fb64d26b8fe3b0bf12c071857fff9e2"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","branchLabelMappingKey":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/202049","number":202049,"mergeCommit":{"message":"[Dashboard][Collapsable
Panels] Fix bug on `layout` update (#202049)\n\n## Summary\r\n\r\nWhen
the `layout` prop updates, we cannot assume that it is \"safe\"
(i.e.\r\nwe cannot assume it has no floating panels and/or colliding
panels).\r\nBecause of this, we need to resolve each grid row when this
prop\r\nchanges. When I added this
in\r\nhttps://github.com//pull/200793, I accidentally
only\r\n**compacted** the rows, which did not account for possible
collisions\r\nthat the Dashboard's panel placement strategies do not
account for. This\r\nPR fixes that by calling `resolveGridRow` (which
compacts **and**\r\ndetects collisions) instead of just `compactGridRow`
(which, as the name\r\nsuggests, only compacts the
rows)\r\n\r\n**Before:**\r\n\r\n\r\n\r\n\r\nhttps://github.com/user-attachments/assets/bcea4efd-35fa-425d-ac04-41434ffaa810\r\n\r\n\r\n**After:**\r\n\r\n\r\nhttps://github.com/user-attachments/assets/6cd205c6-d1d5-4a97-8d14-425c2a4bbeda\r\n\r\n\r\n\r\n###
Checklist\r\n\r\n- [x] The PR description includes the appropriate
Release Notes section,\r\nand the correct `release_note:*` label is
applied per
the\r\n[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\r\n\r\n###
Identify risks\r\n\r\nThere are no risks to this PR, since all work is
contained in the\r\n`examples`
plugin.","sha":"57b8bdad3fb64d26b8fe3b0bf12c071857fff9e2"}}]}]
BACKPORT-->

Co-authored-by: Hannah Mudge <[email protected]>
CAWilson94 pushed a commit to CAWilson94/kibana that referenced this pull request Dec 12, 2024
…02049)

## Summary

When the `layout` prop updates, we cannot assume that it is "safe" (i.e.
we cannot assume it has no floating panels and/or colliding panels).
Because of this, we need to resolve each grid row when this prop
changes. When I added this in
elastic#200793, I accidentally only
**compacted** the rows, which did not account for possible collisions
that the Dashboard's panel placement strategies do not account for. This
PR fixes that by calling `resolveGridRow` (which compacts **and**
detects collisions) instead of just `compactGridRow` (which, as the name
suggests, only compacts the rows)

**Before:**




https://github.com/user-attachments/assets/bcea4efd-35fa-425d-ac04-41434ffaa810


**After:**


https://github.com/user-attachments/assets/6cd205c6-d1d5-4a97-8d14-425c2a4bbeda



### Checklist

- [x] The PR description includes the appropriate Release Notes section,
and the correct `release_note:*` label is applied per the
[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)

### Identify risks

There are no risks to this PR, since all work is contained in the
`examples` plugin.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport:prev-minor Backport to (8.x) the previous minor version (i.e. one version back from main) 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:small Small Level of Effort Project:Collapsable Panels Related to the project for adding collapsable sections to Dashboards. release_note:skip Skip the PR/issue when compiling release notes Team:Presentation Presentation Team for Dashboard, Input Controls, and Canvas v8.18.0 v9.0.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants