Commit Graph

537 Commits

Author SHA1 Message Date
Ashley Harrison
2c0c51a0df Chore: improve types (#78126)
* fix some types

* more type updates

* some more fixes

* more changes

* string instead of unknown

* more like original logic

* remove outdated comment

* update betterer
2023-11-16 12:39:12 +00:00
Dominik Prokop
0122f7ccad DashboardScene: Support dashboard links (#77855)
* MenuItem: Allow react node as label

* LinkButton: Expose ButtonLinkProps

* Typecheck fix

* DashboardLinks: Refactor and use LinkButton and menu

* DashbaordLinks scene object

* Use flex layout for dashboard controls

* Update public/app/features/dashboard/components/SubMenu/DashboardLinksDashboard.tsx

Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>

* fix keepTime and includeVars

* Add ellipsis to menu item label and description

* Use DashboardLink type from grafana/schema

* Update dashboard scene controls layout

* Fix e2e

* Test fix

* Bring back keyboard navigation

* Remove unused code

* One more fix

---------

Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2023-11-15 17:49:51 +02:00
Giuseppe Guerra
da117aea1c Plugins: Allow disabling angular deprecation UI for specific plugins (#77026)
* Plugins:Allow disabling angular deprecation UI for specific plugins

* add backend test

* changed test names

* lint

* Removed angular properties from DataSourceDTO

* Update tests

* Move angularDetected and hideAngularDeprecation in angularMeta property

* Fix angular property name in AppPluginConfig

* Fix reference to angularMeta.detected

* Fix hide_angular_deprecation not working for core plugins

* lint
2023-11-10 11:44:54 +01:00
kay delaney
5f78542366 Dashboards: Prevent shared queries from being unnecessarily re-run (#77490)
* Dashboards: Prevent shared queries from being unnecessarily re-run

* Minor change

* Set solo panel as being viewed

---------

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2023-11-09 06:41:47 -08:00
Esteban Beltran
0b03344baa Chore: Update to typescript 5 (#76511)
* Update dependency typescript to v5

* Update yarn.lock

* Fix typescript errors

* Update typescript version sdk

* Revert useDescription.ts

* Fix ts errors

* Fix Typescript errors after Symbol.unscopables type change

* Fix colormanipulator errors

* Update packages/grafana-data/src/vector/FunctionalVector.ts

* Fix ts errors in dashboardmigrator

* Fix sandbox component typescript error

* Update yarn

* Update to typescript 5.2

* Fix typescript error

* update typescript/vscode patch/sdk/whatever

* fix ts errors in elasticsearch

* Fix two errors in alerting

* Fix error in dashboard-scene

* Fix errors in dashboard tests

* Fix errors in explore tests

* Fix error in plugins sandbox

* fix error in DashboardQueryRunner

* fix errors in grafana-data

* fix errors in PanelChrome story

* update betterer

* better fix for cloud monitoring

* fix error in reducer tester

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
Co-authored-by: Josh Hunt <joshhunt@users.noreply.github.com>
Co-authored-by: joshhunt <josh@trtr.co>
2023-11-07 13:20:20 +00:00
kay delaney
c98add6e5a Dashboards: Fix issue causing crashes when saving new dashboard (#77620)
Closes #77593
2023-11-03 18:33:59 +02:00
Dominik Prokop
6e80a3d59b DashboardScene: Viewer role only support (#76748)
* Allow starring DashboardScene

* Add feature toggle to enable dashbaord scene for viewers

* Basics for proxying viewers to a dashboard scene

* Removed isHomeDashboard flag

* Don't use proxy for rendering dashboard page

* Revert "Don't use proxy for rendering dashboard page"

This reverts commit 95836bdb2c.

* Pre-fetch dashboard prior page rendering

* Depend only on dashboard permissions

* Update default home dashboard to proper model...

* Fix breadcrumbs

* Types update

* Dashboards page proxy tests

* Fix missing controls

* URLs generation

* DashboardScenePageStateManager caching test

* Tests updates

* Fix wrong import

* Test update

* Gen
2023-11-02 12:02:25 -07:00
Ieva
ed88289984 Chore: remove legacy dashboard and folder permission pages (#77143)
remove legacy dashboard and folder permission pages
2023-10-31 14:23:37 +00:00
Kyle Cunningham
71e3814c46 Transformations: Allow Timeseries to table transformation to handle multiple time series (#76801)
* Initial fix up of getLabelFields

* Update time series to table code

* Cleanup and allow merging

* Support merge and non-merge scenarios

* Update editor

* Fix case with merge true for multiple queries

* Update time series detection, fix tests

* Remove spurious console.log

* Prettier plus remove test console.log

* Remove type assertion

* Add options migration

* Add type export

* Sentence casing

* Make sure current options are preserved when making changes

* Add disabled image

* DashboardMigrator prettier

* Add type assertion explanation and exception

* Fix schema version test

* Prettier

* Fix genAI tests and make them more robust so they dont break on every new schema version

---------

Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
2023-10-27 10:30:49 -05:00
Torkel Ödegaard
b01cbc7aef Dashboard: Fixes save drawer always comparing changes against first loaded version (#76506)
* Dashboard: Fixes save changes diff after first save

* Lots of type issues

* better fix

* Update some more places to use new function

* Fix

* Update

* Update

* remove console.log

* Update
2023-10-13 16:23:23 +02:00
Torkel Ödegaard
72a1de855c Schema: Clean up / correct panel schema (#76346)
* Schema: Clean up / correct panel schema

* fixes
2023-10-11 15:56:42 +02:00
Torkel Ödegaard
42218fbdbb DashboardScene: Support auto migration for angular panels (#76100)
* DashboardScene: Support auto migration for angular panels

* minor tweak

* Update scenes

* Review fix

* Update
2023-10-10 14:33:58 +02:00
Jo
28c0fb1cfd AccessControl: Remove legacy frontend AC checks (#76187)
* remove legacy ac checks

* fix RBAC disabled tests

* add permissions for tests to work

* fix unifiedalertstatesworker test
2023-10-09 18:10:06 +02:00
Torkel Ödegaard
fc0933d5f4 Schema: Clean up dashboard variables schema (#76121)
* Cleanup variable schema model

* minor fix

* remove type ignores that are no longer type errors
2023-10-09 09:10:52 +02:00
Josh Hunt
c5914d92d4 Dashboards: Fix Dashboards not loading when user doesn't have permission on the parent folder (#76028) 2023-10-06 14:05:56 +00:00
Ivan Ortega Alba
1a96f3742f Dashboards: It always detect changes when saving an existing dashboard (#76116)
Deep clone originalDashboard to avoid mutations by object reference
2023-10-06 14:32:04 +02:00
Juan Cabanas
6cfe6d8688 Panel: omit query API call when the panel is a row (#75847) 2023-10-03 12:36:04 -03:00
kay delaney
dc4091bd34 Angular: Fix issue where panels in collapsed rows were not auto-migrated (#75735) 2023-09-29 12:27:37 +01:00
Ashley Harrison
ff0642bf6e Chore: Type improvements 🧹 (#75271)
* fix some e2e flows types

* some type fixes

* must... fix... more...

* MOAR

* MOREMOREMORE

* 1 more
2023-09-22 15:06:49 +01:00
Ashley Harrison
fb367bf91d Chore: fix build (#74651)
put ts-expect-error in the right place
2023-09-11 12:07:05 +03:00
Torkel Ödegaard
349408d78c DashboardMigrator: Add migration that removes repeats (#74296)
* DashboardMigrator: Add migration that removes repeats

* Update
2023-09-11 08:34:13 +02:00
Ashley Harrison
ebe13a53f7 Browse Dashboards: Split new browse UI from nested folders backend (#74435)
* create new feature toggle + start to put stuff behind it

* block move, tidy up interfaces

* fix new/folder actions buttons

* show warning when deleting library panels/alert rules + run i18n:extract

* pseudo

* update unit tests

* pass alert in description
2023-09-07 11:41:00 +01:00
Torkel Ödegaard
d82a3c9fc6 DashboardScene: Repeat panel by variable (#74294)
* Progress

* think this a bad approach

* Scene panel repeats looking good

* Update

* update

* Update

* Use key instead for inspect/view

* refactorings to improve tests

* Update

* More tests

* Update

* added support for key / value variables

* Update

* Fixes

* remove log

* Update

* Removed old gdev templating dashboard and added new and improved one

* Update

* Added repeating panels coded demo

* Update to latest scenes lib

* review feedback fixes

* update

* Sync schema
2023-09-05 13:51:46 +02:00
Giuseppe Guerra
bf4d025012 Dashboards: Add alert and panel icon for dashboards that use Angular plugins (#70951)
* Add angularDeprecationUI feature toggle

* Add angular notice in angular panel header

* Show angular notice for angular datasources

* Show angular notice at the top of the dashboard

* Changed Angular deprecation messages

* Fix angular deprecation alert displayed for new dashboards

* re-generate feature flags

* Removed unnecessary changes

* Add angular deprecation dashboard notice tests

* Add test for angular deprecation panel icon

* Update test suite name

* Moved isAngularDatasourcePlugin to app/features/plugins/angularDeprecation

* Add hasAngularPlugins to DashboardModel

* re-generate feature toggles

* Fix tests

* Fix data source spelling

* Fix typing issues

* Extract plugin type into a separate function

* re-generate feature flags

* reportInteraction on angular dashboard notice dismiss

* re-generate feature flags

* Re-generate feature flags

* lint
2023-08-29 16:05:47 +02:00
Alex Khomenko
c9323e303d Dashboard: Store original JSON in DashboardModel (#73881)
* Dashboard: Save original JSON to state

* Dashboards: Update tests

* Dashboards: Fix original json access

* Dashboard: Save original to the DashboardModel

* Dashboard: Cleanup tests

* Remove original db setter
2023-08-29 14:56:17 +03:00
Torkel Ödegaard
74d453f056 DashboardSchema: Remove old unused legacy props style and timepicker.enable (#73879)
* DashboardScheam: Remove old unused legacy props style and timepicker.enable

* Update

* fix test
2023-08-28 12:18:17 +02:00
Josh Hunt
f95405d3c3 Plugins: Allow async panel migrations (#73782)
* Plugins: Allow async panel migrations

* comment
2023-08-28 10:06:55 +00:00
Torkel Ödegaard
3ee26df41e PublicDashboards: Variables refactor (#73476)
Co-authored-by: Juan Cabanas <juan.cabanas@grafana.com>
Co-authored-by: Ezequiel Victorero <ezequiel.victorero@grafana.com>
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2023-08-25 13:56:02 -05:00
kay delaney
cd6ed02256 Dashboard: Fix repeated row panel placement with larger number of rows (#72011)
Closes #69833
2023-08-15 14:54:50 +03:00
Ivan Babrou
8e090f9951 Prometheus: Add a keyboard shortcut to toggle all exemplars (#64479)
* Add a keyboard shortcut to toggle all exemplars

Sometimes it's hard to see the quantile line behind all the exemplars.

This commit adds a `d x` keyboard shortcut to toggle exemplar visibility
on all prometheus queries. Unlike with legends, the logic is simpler
and it does a pure toggle as opposed to "majority toggle" as with legends.

Since exemplars might not be loaded, this also requires refreshing the data.
For the same reason, toggling a single panel is not supported, as it will
make the panel data out of sync with the rest of the dashboard.

* Use "p x" to navigate to panel explore rather than just "x"

It's more consistent with other panel level shortcuts.

It also doesn't conflict with the global "x" to toggle exemplars that way.
2023-07-25 07:45:18 -05:00
Ashley Harrison
9852b24d61 Chore: Upgrade prettier to v3 (#71764)
* Update dependency prettier to v3 (#71586)

* Update dependency prettier to v3

* run prettier

* ignore prettier update in legacy select scss

* update command line arg

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>

* unplug prettier

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-17 15:58:22 +01:00
Ashley Harrison
5ca382c88a Revert "Update dependency prettier to v3 (#71586)" (#71755)
This reverts commit 2e8cd1c021.
2023-07-17 14:46:15 +01:00
renovate[bot]
2e8cd1c021 Update dependency prettier to v3 (#71586)
* Update dependency prettier to v3

* run prettier

* ignore prettier update in legacy select scss

* update command line arg

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2023-07-17 09:19:27 +01:00
Alex Khomenko
420b19e0e4 Dashboards: Add dashboard embed route (#69596)
* Dashboard embed: Set up route

* Dashboard embed: Cleanup

* Dashboard embed: Separate routes

* Dashboard embed: Render dashboard page

* Dashboard embed: Add toolbar

* Dashboard embed: Send JSON on save

* Dashboard embed: Add JSON param

* Dashboard embed: Make the dashboard editable

* Fix sending dashboard to remote server

* Add notifications

* Add "dashboardEmbed" feature toggle

* Use the toggle

* Update toggles

* Add toggle on backend

* Add get JSON endpoint

* Add drawer

* Close drawer on success

* Update toggles

* Cleanup

* Update toggle

* Allow embedding for the d-embed url

* Allow embedding via custom X-Allow-Embedding header

* Use callbackUrl

* Cleanup

* Update public/app/features/dashboard/containers/EmbeddedDashboardPage.tsx

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

* Use theme for spacing

* Update toggles

* Update public/app/features/dashboard/components/EmbeddedDashboard/SaveDashboardForm.tsx

Co-authored-by: Polina Boneva <13227501+polibb@users.noreply.github.com>

* Add select data source modal

---------

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
Co-authored-by: Polina Boneva <13227501+polibb@users.noreply.github.com>
2023-07-06 17:43:20 +03:00
sam boyer
751b982d9c Schemas: Allow nulls in schema for +/-Infinity types (#70958)
* Add null options and remove veneer attributes

* Generate all code, remove old veneer defs

* Remove now-unnecessary error expect
2023-06-30 18:15:02 +03:00
Ryan McKinley
698b07518a Dashboards: Support an auto refresh interval that is based on the query range (#70479) 2023-06-26 19:46:23 +03:00
Zoltán Bedi
6fbc0b9b9c Chore: Add tracking for dashboard load (#70057)
* Chore: Add tracking for dashboard load

* Address review comments
2023-06-23 14:14:06 +02:00
Ashley Harrison
13e3308959 Chore: some type fixes (#69860)
* some type fixes

* restore empty object

* undo 1 fix for now

* commit betterer update

* explicitly type slug and uid as string | undefined
2023-06-20 17:13:49 +01:00
Simon Podlipsky
6f880b713a Variables: allow {} type in VariableWithOptions.current (#64358) 2023-06-16 14:31:12 +02:00
Dominik Prokop
1de8f48a53 Repeats: Set scoped vars correctly for collapsed panel when toggled (#69707) 2023-06-12 02:59:05 -07:00
Torkel Ödegaard
3cb14074a9 Dashboard: Clear current dashboard when moving away from dashboard (#66538) 2023-06-12 11:18:37 +02:00
Ashley Harrison
d29124214a NestedFolders: Ensure New dashboard page has the correct breadcrumb hierarchy (#69758)
ensure new dashboard page has the correct breadcrumb hierarchy
2023-06-09 16:22:57 +01:00
Ivan Ortega Alba
819041c732 Schema: Improve Dashboard kind docs and remove deprecated props (#69359)
Remove unused properties: 
  * `FieldColorModeId.PaletteSaturated`: It doesn't exist and it is not a valid palette.
  * `VariableModel.rootStateKey`: It is not persisted in the DB, so it shouldn't be in the schema. It is a property only used in the frontend to store the Redux store key.
  * `VariableModel.error`: It is not persisted in the DB, so it shouldn't be in the schema. It is a property only used in the frontend to store fetching errors.
  * `Panel.thresholds`: old property only existing in previous versions of the dashboard schema.
  * `Panel.timeRegions`: old property only existing in previous versions of the dashboard schema.
2023-06-06 14:28:10 +02:00
Ashley Harrison
82114cb316 NestedFolders: Show Dashboard and Folder full breadcrumb hierarchy (#68308)
* update FolderDTO to match backend struct

* hacky way to get folder page breadcrumbs working

* hacky way to get dashboard nested breadcrumbs working

* undo route changes, get url from folder

* fix breadcrumbs in dashboard settings

* add parent pages to navIndex

* adjust getRootSectionForNode to just return the parent of a leaf node

* undo changes to generated files

* undo changes to toggles_gen.go

* feature toggle dashboardInit code

* remove unnecessary code in home dashboard

* build navModel directly, don't use getNavModel

* don't need fallback here

* remove getLoadingNav since it's not used anymore

* don't need to hide tabs from breadcrumbs anymore

* use id to find dashboards tab
2023-05-16 13:54:44 +01:00
Victor Colomb
f478504bc9 Dashboard: Fix library panels in collapsed rows not getting updated (#66643) 2023-05-16 12:44:19 +01:00
kay delaney
7801cf6585 Dashboards: Only refresh panels on panel edit exit if refresh is set (#67652)
Closes #66838

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2023-05-10 14:12:55 +01:00
Ryan McKinley
e493bec3a8 Geomap: Improve migration logic (#65500) 2023-04-28 12:20:10 -07:00
kay delaney
2dc5872bd6 New Dashboard: Fix "build a dashboard" when empty dash page feature is enabled (#66816)
* New Dashboard: Fix "build a dashboard" when used with empty dash page feature

Closes #66659
2023-04-27 11:11:19 +01:00
Polina Boneva
fe23c76250 Dashboard: New panel in a dashboard is not deleted after "Discard"-ing changes in Panel Edit (#66476)
* add isNew notPersistedProperty to PanelModel

* if panel is newly created and user "Discard"s it, the panel is removed entirely

* add Todo's for when we remove the emptyDashboardPage FF

* add isNew to new panel after file dropping on dashboard page

* handle the "Apply" case

* CSV file dropping is not relevant to a new panel bc it doesnt open edit page
2023-04-25 17:18:58 +03:00
Torkel Ödegaard
ee247e33b4 AngularMigration: Clear old angular panel props when auto migrating (#66719)
* AngularMigration: Clear old angular panel props when auto migrating

* Update test name
2023-04-19 13:47:55 +02:00