* Basic implementation of inline library panel
* modify the warning message, we support the export partially by converting regular panels the library panels
* Improve message around the conversion, keep it concise
* Fix linting
* Refactor conversion, extract existing logic into new funcition and reuse it
* remove unnecesary comment
* show error notification when library panel does not load
* Apply PR feedback, remove unnecesary try catch and return json with error, don't throw
* Add unit tests
* Fix monitoring report, add case when v2 is loaded originally or when transformed from v1
* Add unit tests for detect libraryPanels, relevant for ensure monitoring is correct
* Dashboard: Add Monitoring to v1 and v2 export flow, including library panels interaction
* fix error with v2 transformed dashboard not having haslibraryPanels
* apply PR suggestions, extract as const and refactor for readability
* Add unit test for the new functions
* Dashboard Migrations: V31 LabelsToFields-Merge Migration
* Dashboard Migrations: V32 No-op migration
* simplify
* Refactor to reduce nesting
* Dashboard Migrations: V30 value mappings and tooltip options
* Do not automigrate since graph is migrated in v27
* Refactor to reduce nesting
* Add test case for invalid mapping
* migrate to v29
---------
Co-authored-by: Ivan Ortega <ivanortegaalba@gmail.com>
* CalculateFieldTransformerEditor
* more CalculateFieldTransformer
* ConcatenateTransformerEditor
* ConfigFromQueryTransformerEditor
* mark up other transformations
* few things spotted manually
* mark up variable types
* mark up annotation stuff
* mark up TagsInput placeholder
* mark up validation messages
* mark up required error
* Mark up metrics explorer modal
* PublicDashboards: Use API to render public dashboard badge
* i18n
* Keine console bitte
* Update public/app/features/dashboard-scene/scene/NavToolbarActions.tsx
* Update tests
* mark up and add confirmText to lint rule
* mark up and add ariaLabel to lint rule
* add confirmText to propertiesToCheck
* mark up and add body to propsToCheck
* mark up latest
* mark up 'Dashboard saved'
* mark up filterbyvalue options
* mark up tooltip options
* mark up and add lint rules for noOptionsMessage/loadingMessage
* mark up 'Convert field type'
* mark up placeholderText/noOptionsMessage
* mark up run query
* mark up variable editor fields
* mark up week start options
* mark up dashboard link options
* mark up prom options
* mark up builder/code toggles
* make CI happy
* kick CI
* compare dashboard updated at while fetching
* test added
* added created field in dashboard dto meta object for k8s api. fixed cache updation check
* code refactor
* code formatting with prettier
* added created at field in DashboardPageProxy.test.tsx
* wip: trying to understand how to get the ds info from migrator
* add datasource info provider
* Use DS service to fetch DS data
* add more tests cases to match with migrator cases
* Add snapshots
* Non-existing DS
* Add different DS for snapshots
* fix import
* Fix tests: guard against double initialization
* don't use full datasource package in test
* min version should be 35
* fix test
* fix conversion test
* Dashboards: Support schemaVersion v35 migration in backend
* Dashboards: Support schemaVersion v34 migration in backend
* Dashboards: Support schemaVersion v33 migration in backend
* Apply suggestions from code review
Co-authored-by: Stephanie Hingtgen <stephanie.hingtgen@grafana.com>
* Apply feedback
* Remove unused parameters
* Refactor to follow Go patterns
* Update logic
* Only write final migration result as output
* Compare backend and frontend results
* Improve snapshots to cover all possible use cases
* Linter
* wip make it consistent v33
* apply feedback
* Return default when the ref cannot be found
* Update apps/dashboard/pkg/migration/schemaversion/v33.go
Co-authored-by: Stephanie Hingtgen <stephanie.hingtgen@grafana.com>
* apply feedback
* Use same mocks backend/frontend
* restore migrations
* update snapshots
* Adapt migration tests to use min versions
* Ensure v40-v41 works
* Ensure v39-v40 works
* Simplify the naming of the files
* adjust jest to new input convention
* Ensure every migration v36-v41 works
* Improve v38 naming
* Ensure v36 migrates correctly
* Skip v36 refs migrations on rows
* Treat rows as frontend and ensure same results for v36
* Ensure v34 runs with the same logic than the frontend
* Leave empty stadistics as valid option
* ensure v33 is working as the frontend
* Update tests
* Undo frontend changes for legend handling
* Remove filtering by version in the frontend
* linter
* Clean up v33 input JSON
---------
Co-authored-by: Todd Treece <360020+toddtreece@users.noreply.github.com>
Co-authored-by: Haris Rozajac <haris.rozajac12@gmail.com>
Co-authored-by: Stephanie Hingtgen <stephanie.hingtgen@grafana.com>
* markup timeseries panel edit
* mark up matchers ui
* mark up bar chart
* mark up stat panel
* mark up gauge
* mark up bar gauge
* mark up table component
* mark up pie chart
* mark up state timeline
* mark up heatmap
* mark up status history
* mark up histogram
* mark up text panel
* mark up alert list
* mark up dashboard list
* mark up news panel
* mark up annolist
* mark up logs panel
* mark up node-graph
* mark up traces
* mark up trend
* mark up xychart
* fix build
* feat: Implement optional URL path sanitization in BackendSrv methods
* add comment
* revert
* remove namespace import from backendsrv
* change method to validatePath, remove query params and fragments
* Moved validatePath call into fetch and make it throw an error instead
* update pluginSettings tests
* prettier
* Update public/app/features/plugins/pluginSettings.ts
Co-authored-by: Hugo Häggmark <hugo.haggmark@gmail.com>
* change name to validatePath
* fix other tests
* rename property in backend_srv tests
* rename to validatePath in backend_srv, add extra tests
* Move path validation into parseUrlFromOptions
* fix
* Add additional check
* Add test
---------
Co-authored-by: joshhunt <josh.hunt@grafana.com>
Co-authored-by: Hugo Häggmark <hugo.haggmark@gmail.com>
* wip: trying to understand how to get the ds info from migrator
* add datasource info provider
* Use DS service to fetch DS data
* add more tests cases to match with migrator cases
* Add snapshots
* Non-existing DS
* Add different DS for snapshots
* fix import
* Fix tests: guard against double initialization
* don't use full datasource package in test
* min version should be 35
* fix test
* fix conversion test
* Dashboards: Support schemaVersion v35 migration in backend
* Dashboards: Support schemaVersion v34 migration in backend
* Apply suggestions from code review
Co-authored-by: Stephanie Hingtgen <stephanie.hingtgen@grafana.com>
* Apply feedback
* Remove unused parameters
---------
Co-authored-by: Todd Treece <360020+toddtreece@users.noreply.github.com>
Co-authored-by: Haris Rozajac <haris.rozajac12@gmail.com>
Co-authored-by: Stephanie Hingtgen <stephanie.hingtgen@grafana.com>
* Dashboards: Add restore endpoints to the API
* Fix unified api
* Fix resource version
* Add tests
* Update api
* Update type guards
* Update comments
* Add missing type
* Cleanup
* Move spec checking logic to v1 client
* Handle mixed versions in deleted dbs list
* Update tests
* comment
* type
* RepeatRowSelect: Use Combobox instead of deprecated Select component
* Add test (broken)
* Don't disable combobox if repeat is set
* Run i18n-extract
* add mockGetBoundingClientRect to combobox test
---------
Co-authored-by: Sergej-Vlasov <sergej.s.vlasov@gmail.com>
* save transparent setting
* make sure we test both transparent and non transparent
* no more legacy rows
* schema changes
* Add testing, fix first row offset
* Remove legacy row from transform test
* Remove panel that's not present in layout
* Remove expects after removing the row, fix lint issues
* Remove unused commit
* update codegen
* update openapi snapshot
* Fix snapshot
* add missing default prop
* Fix repeating, fix first row, fix not flushing last row
* Use correct repeater
* fix lint, remove unused empty check
* update codegen
* update openapi test snapshot
* make serializer a single source of truth for passing k8s props on save
* remove resourceVersion when updating
* don't pass result.version to resourceVersion
* remove k8s update on saveCompleted from dash scene