Commit Graph
17 Commits
Author SHA1 Message Date
Polina BonevaandAlexandra Vargas d48a8fd227 PanelChrome: Styling issues (#62466)
* all panel icons are 16x16 in size; allow ToolbarButton to have its icon size set from outside;

* use TitleItem for streaming too, so that the style of focus-visible is the same

* allow menu icon to be visible when panel is focused

* remove some styling of title icons in panel header

* panel alert notices are too big

* PanelHeaderNotice: Fix styling issue with background and hover when
feature toggle is not enable

---------

Co-authored-by: Alexandra Vargas <alexa1866@gmail.com>
2023-01-31 11:39:15 +02:00
Polina Boneva 08806924d8 [Chore] Add unit tests to PanelChrome component (#61695)
* PanelChrome: test loadingState and status

* add some tests

* fix error-related tests

* clean up

* fix tests

* pass aria-label from PanelChrome to ToolbarButton

* add prop comments and clean up
2023-01-25 18:29:53 +02:00
Polina Boneva 84eb275c8d PanelChrome: Menu is wrapped in a render prop for full outside control (#60537)
* setup menu as a render prop sent down from PanelStateWrapper to PanelChrome

* let the Dropdown take care of opening the menu in PanelChrome

* menu and leftItems are on the right side of the header together

* add storybook examples with menu

* menu does not need to be a callback because it's opened in a Dropdown anyway

* pass down to getPanelMenu whether or not data is streaming atm

* stop loading data as well as streaming from menu

* override menu's style where needed

* reduce snapshot matching in tests
2023-01-12 11:10:09 +02:00
3f1908464d PanelChrome: Implement Panel header with error, loading, and streaming data status (#60147)
* dashboards squad mob! 🔱

lastFile:packages/grafana-ui/src/components/LoadingBar/LoadingBar.tsx

* dashboards squad mob! 🔱

* dashboards squad mob! 🔱

lastFile:packages/grafana-ui/src/components/LoadingBar/LoadingBar.tsx

* user essentials mob! 🔱

* create grafana/ui LoadingBar and set it up in Storybook

* Remove test changes on PanelChrome

* Fix mdx page reference

* dashboards squad mob! 🔱

lastFile:public/api-merged.json

* dashboards squad mob! 🔱

* dashboards squad mob! 🔱

* dashboards squad mob! 🔱

* dashboards squad mob! 🔱

lastFile:public/app/features/dashboard/dashgrid/PanelHeader/PanelHeaderState.tsx

* Implemented basic draft of panel header states. Using ToolbarButton instead of IconButton.

* use 'warning' styled Button in ToolbarButton

* make LoadingBar a simple JSX Element; do not use containerWidth; have a wrapper around the loading bar itself;

* fix wrapper around LoadingBar: willChange css prop makes performance of rerendering better

* States: Render general panel query error states and render notices next
to the title

* add streaming to PanelChrome if data is streaming instead of loading

* PanelHeaderState with its own state 'mode'

* clean up useEffect

* notices have their own square space in the size of the panel header

* clean up

* minor fixes

* moving the LoadingBar to core

* LoadingBar is not in grafana/ui

* always have a place for the loading bar in the PanelChrome, otherwise it moves everything when appearing;

remove titleItemsNodes for now - in later development

make no changes to Notice component, not part of this PR

* Revert "moving the LoadingBar to core"

This reverts commit 11f0f4ff2f.

* do not use internal comment as it doesn't do anything

* integrate LoadingBar in PanelChrome from grafana/ui directly

* fix deprecated leftItems comment

* Modify annimation to 1 second

* remove comments

* remove streaming stopped UI because we cannot know when the streaming has stopped

* skip unnecessary test for now

* no point in removing hoverHeader now, even though it's not yet implemented

* small fixes

* error state of the data in a panel is positioned in PanelChrome itself, not in PanelHeaderState

* Fixed loading state jitter

* remove warning state as we have none of it

* streaming cannot be stopped from the icon

* explicit content container width and height

* explicit content container width and height

* edit deprecated comment

* fix LoadingBar to be relative to width of panel; remove explicit width and height on content strict

* no warning state of the data

* status of the panel data given directly to PanelChrome, not a node

* clean up

* clean up console log

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>

* panel title design fits typography h6 styles; render error status only if error or error message are passed to PanelChrome

* add storybook examples; prepare PanelChrome for hoverHeader because this will be a breaking change and it will affect how the storybook example shows up

* show storybook example for streaming panel with title because that's the condition for having a header

* override margin-bottom: 0.45em of h6

Co-authored-by: Alexandra Vargas <alexa1866@gmail.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
2023-01-05 11:48:11 +02:00
Polina BonevaandAlexandra Vargas be57419540 Grafana/ui: Create new LoadingBar component (#59508)
* dashboards squad mob! 🔱

lastFile:packages/grafana-ui/src/components/LoadingBar/LoadingBar.tsx

* dashboards squad mob! 🔱

* dashboards squad mob! 🔱

lastFile:packages/grafana-ui/src/components/LoadingBar/LoadingBar.tsx

* user essentials mob! 🔱

* create grafana/ui LoadingBar and set it up in Storybook

* Remove test changes on PanelChrome

* Fix mdx page reference

* make LoadingBar a simple JSX Element; do not use containerWidth; have a wrapper around the loading bar itself;

* fix wrapper around LoadingBar: willChange css prop makes performance of rerendering better

* moving the LoadingBar to core

* Revert "moving the LoadingBar to core"

This reverts commit 11f0f4ff2f.

* do not use internal comment as it doesn't do anything

* Modify annimation to 1 second

Co-authored-by: Alexandra Vargas <alexa1866@gmail.com>
2022-12-12 17:16:03 +02:00
Polina Boneva db1e19fe86 Dashboard: Making a dashboard editable does not allow resizing of panels (#59255)
* DashboardGrid should rerender ReactGridLayout when mutable dashboard updates

* add missing prop to test
2022-12-07 12:46:10 +02:00
Polina BonevaandTorkel Ödegaard 314c22bc5b PanelChrome: Implementing the new layout on PanelChrome @ grafana/ui (#57203)
* Use newPanelChromeUI feature flag in DashboardPanel panel rendering

* just render the PanelChromeUI instead of the PanelChrome

* add new props to PanelChrome; have ChromePanel from grafana/ui in DashboardPanel for testing (will remove before finished);

* put icons next to the title of PanelChrome header space

* arrange PanelChrome's title icons into view/edit/status sections

* icons next to title in PanelChrome are surrounded by square focusable space

* items to be render in Header in PanelChrome come in as props

* PanelChrome accepts items next to title from the outside; currently them being ordered in the left side is okay, right side not so much

* revert local changes to DashboardPanel

* cleanup unused imports

* simple PanelChrome render without any header props

* CSS function

* add test PanelChrome prop padding

* add icons next to title if they are passed to PanelChrome

* fixed PanelChrome header: hoverHeader, having a menu prop;

* only show icons with correct icon names; show menu icon only on hover over panel container; minor other fixes

* attempt to resolve hovering in an RTL test for the menu icon to work as expected

* menu opens in a Dropdown if provided as prop

* fixing tooltips and aria-labels

* Fixed issue with light theme in storybook

* comment out props and tests that are not yet used

* Fixed issue where content was overflowing the boundaries

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2022-11-24 13:21:18 +02:00
Polina Boneva 129a5a29e7 PanelChrome: New Panel Header design Feature Flag (#56450)
* add feature toggle newPanelHeader

* add feature toggle newPanelHeader

* more explicit naming and description of PanelChrome feature flag
2022-10-10 18:03:16 +03:00
2f16c27e35 Docs: Mention queryparam function (#54526)
* Update data-link-variables.md

Add queryparam function and tables of output to match the other listed variables

* Update docs/sources/linking/data-link-variables.md

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>

* Add r4j4h's suggestions to the new documentation space with some partial changes to the wording

* Add r4j4h's suggestions to the new documentation space with some partial changes to the wording

* mockery generated code as it is on main

* simplify changes in docs and go straight to the point

Co-authored-by: Jasmine Hegman <jasmine@jhegman.com>
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
2022-09-08 17:14:37 +03:00
Polina Boneva ef32050508 Add FocusScope to PanelEditor when open in the Dashboard Page so that a11y focus never catches invisible content. (#54400) 2022-08-30 12:08:31 +03:00
Polina Boneva 51d173711f A11y: do not change the focus when switching between Viz/Suggestions/Library Panels views (#53814) 2022-08-22 12:12:39 +03:00
Polina Boneva bec500b69f Chore: Test grafana/public/app/plugins/panel/text/TextPanel.tsx (#52244)
* move sanitize test to its own test file

* add a test for renderTextPanelMarkdown to always sanitize

* setup TextPanel tests

* add tests to always sanitize Text Panel contents and always convert correctly to html/markdown
2022-07-15 12:06:16 +03:00
Polina Boneva 556f312b00 remove event.stopPropagation(), so that when one menu opens, all others close; (#51557)
Put the ClickOutsideWrapper further out in the PanelHeader, so it doesn't catch itself when clicking on the panel header above the menu;
2022-07-06 10:33:25 +03:00
Polina BonevaandAshley Harrison f83f05d6b3 Variables: variables in Markdown links are not interpolated (#51392)
* on a text panel first interpolate, then markdown, then sanitize;

* update devenv dashboard + e2e tests

* fix typo and undo changes in grafana/data

* handling of config option disableSanitizeHtml more readable when preparing markdown in text panel

* betterer

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2022-06-29 15:26:31 +03:00
Polina Boneva 496c2e26f4 I18n: User and Org Preferences allow change of Language (#51175)
* add locale selection settings under preferences; Alpha feature toggle;

* extract components' ids for internationalisation references

* migrate OrgDetailsPage tests from Enzyme to RTL

* test locale selection in shared preferences

* fix OrgDetailsPage needing a fetch polyfill; "Real fetch shouldn't be being hit." - Josh

* remove snapshot

* remove snapshot
2022-06-23 11:20:31 +03:00
665da5d063 Template Variable: Datasource variable can be used when MIXED option is selected in panel query (#51170)
* user essentials mob! 🔱

* user essentials mob! 🔱

lastFile:public/app/features/query/components/QueryEditorRowHeader.test.tsx

* user essentials mob! 🔱

* test variables showing in data source picker dropdown on MIXED

* clean up unused imports

* remove comment

* remove unused mock

Co-authored-by: Alexandra Vargas <alexa1866@gmail.com>
Co-authored-by: Joao Silva <joao.silva@grafana.com>
Co-authored-by: joshhunt <josh@trtr.co>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2022-06-21 17:46:52 +03:00
polibb a19c3dae5a Convert Enzyme UsersTable test to RTL (#49836)
* Convert Enzyme UsersTable test to RTL

* Fixes on UsersTable test; no additions

* remove snapshot of UsersTable test
2022-05-31 18:58:59 +03:00