* Update the component only when the response is fully generated
* Fix quick feedback action doesn't respond
* Fix history not displaying after the second click
* Fix the history that moves when regenerating
---------
Co-authored-by: Adela Almasan <88068998+adela-almasan@users.noreply.github.com>
* Add model to library panel inspect json
* Add missing information from library panel when inspecting its JSON
* minor refactor
* refactor inspect library panel model to show the model that was fetched from the api
* nit: improve comment
* fix library panel import path
---------
Co-authored-by: Alexandra Vargas <alexa1866@gmail.com>
* Introduce environment.local_filesystem_available
* Only show TLS client cert, client key, client ca when local_filesystem_available is true
* Rename LocalFSAvailable to LocalFileSystemAvailable
* Add Save and enable and Disable button
* Change to use Dropdown, reorder buttons
* Improve UI
* Update public/app/features/auth-config/ProviderConfigForm.tsx
* Apply suggestions from code review
* Use Stack instead of separate Fields
---------
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Use query as fallback when there's one series and no labels. Use "" as the fallback for empty label values. Stop using the `promLabels` value from the Tempo response
* Set refId to remove mentions of promLabels
* Add quotes around the string value, add space after comma separator
* Use name as refId when possible
* wip
* tests + refactor ad panel func
* Add row functionality
* update row state only when there are children
* Add new row + copy paste panels
* Add library panel functionality
* tests
* PR mods
* reafctor + tests
* reafctor
* fix test
* refactor
* fix bug on cancelling lib widget
* dashboard now saves with lib panel widget
* add lib panels widget works in rows as well
* split add lib panel func to another PR
* Add library panel functionality
* Fix lib panel and lib widget placement in collapsed/uncollapsed rows
* refactor
* take panelKey into account when getting next panel id in dashboard
* fix tests
* Alerting: feat: support deleting rule groups in the provisioning API
Adds support for DELETE to the provisioning API's alert rule groups route, which allows deleting the rule group with a
single API call. Previously, groups were deleted by deleting rules one-by-one.
Fixes#81860
This change doesn't add any new paths to the API, only new methods.
---------
Co-authored-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
* wip
* tests + refactor ad panel func
* Add row functionality
* update row state only when there are children
* Add new row + copy paste panels
* Add library panel functionality
* tests
* PR mods
* reafctor + tests
* reafctor
* fix test
* refactor
* fix bug on cancelling lib widget
* dashboard now saves with lib panel widget
* add lib panels widget works in rows as well
* split add lib panel func to another PR
* Add library panel functionality
* Add lib panel from empty dashboard page
* refactor
* take panelKey into account when getting next panel id in dashboard
* fix tests
* wip
* tests + refactor ad panel func
* Add row functionality
* update row state only when there are children
* Add new row + copy paste panels
* Add library panel functionality
* tests
* PR mods
* reafctor + tests
* reafctor
* fix test
* refactor
* fix bug on cancelling lib widget
* dashboard now saves with lib panel widget
* add lib panels widget works in rows as well
* split add lib panel func to another PR
* Add library panel functionality
* refactor
* take panelKey into account when getting next panel id in dashboard
* fix tests
* Use time_intervals instead of the deprecated mute_time_intervals in alert manager config
* don't send mute_time_intervals in the payload
* Add and update tests
* Fix usecase when having both fields in response from getting alert manager config
* Use mute_timings for grafana data source and both for cloud data source when deleting mute timing
* Use mute_timings for grafana data source and both for cloud data source when saving a new or existing alert rule
* Address first code review
* Address more review comments
* wip
* tests + refactor ad panel func
* Add row functionality
* update row state only when there are children
* Add new row + copy paste panels
* Add library panel functionality
* tests
* PR mods
* reafctor + tests
* reafctor
* fix test
* refactor
* fix bug on cancelling lib widget
* dashboard now saves with lib panel widget
* add lib panels widget works in rows as well
* split add lib panel func to another PR
* change library panel so that the dashboard key is attached to the panel instead of the library panel
* make sure the save model gets the id from the panel and not the library panel
* do not reload everything when the library panel is already loaded
* Fix merge issue
* Clean up
* Plugins: Angular deprecation: Wait for plugins to be inizialized before rendering AngularDeprecationNotice
* use then
* fix tests
* mockCleanUpDashboardAndVariables.mockReset();
* Handle plugin not found
* PR review feedback
* Add comment
* removed unnecessary return
* PR review feedback
* Use grafanaBootData
* Removed comments
* fix tests
* Use config for hideDeprecation as well
* Add node graph panel suggestion
* Update logic
* Add comment
* Check for correct fields
* Simplify logic
* Also check for viz type
* Remove extra logic on boolean
* fix: indicate __ignore_usage__ for preview queries
* fix: further remove var that shouldn't be there
* refactor: move previewPanel code and add tests
* fix: use simpler `AdHocFiltersVariable` state
Co-authored-by: Andre Pereira <adrapereira@gmail.com>
---------
Co-authored-by: Andre Pereira <adrapereira@gmail.com>
* AuthN: Remove embedded oauth server
* Restore main
* go mod tidy
* Fix problem
* Remove permission intersection
* Fix test and lint
* Fix TestData test
* Revert to origin/main
* Update go.mod
* Update go.mod
* Update go.sum
fix: datatrails: start step is "metric select"
If restoring from a saved data trail, or URL,
the selection of metric becomes a second step.
The first step is always without a metric, and
displays the metric selection scene.
* Show empty state after removing last panel
* betterer
* Refactor isEmpty state update in DashboardScene.tsx
* don't need viewPanelScene check
* track isEmpty through a behavior
* Fix test
* Add test for empty state
* minor fix
* Refactor isEmpty check
* Don't use const
* clean up
* move autocomplete logic
* Tests
* Write to correct history
* Remove historyUpdatedAction and related code
* add helpful comments
* Add option to mute all errors/warnings for autocomplete
* Add back in legacy local storage query history for transition period
* Move params to an object for easier use and defaults
* Do not make time filter required
* fix tests
* change deprecation version and add issue number
* replace react-popper with floating-ui in Popover
* update HoverCard
* fix unit tests
* mock useTransitionStyles to ensure consistent unit test results
* chore(monaco): bump monaco-editor to latest version
* feat(codeeditor): use esm to load monaco editor
* revert(monaco): put back previous version
* feat(monaco): setup MonacoEnvironment when bootstrapping app
* feat(monaco): load monaco languages from registry as workers
* feat(webpack): clean up warnings, remove need to copy monaco into lib
* fix(plugins): wip - remove amd loader workaround in systemjs hooks
* chore(azure): clean up so QueryField passes typecheck
* test(jest): update config to fix failing tests due to missing monaco-editor
* test(jest): update config to work with monaco-editor and kusto
* test(jest): prevent message eventlistener in nodeGraph/layout.worker tripping up monaco tests
* test(plugins): wip - remove amd related tests from systemjs hooks
* test(alerting): prefer clearAllMocks to prevent monaco editor failing due to missing matchMedia
* test(parca): fix failing test due to undefined backendSrv
* chore: move monacoEnv to app/core
* test: increase testing-lib timeout to 2secs, fix parca test to assert dom element
* feat(plugins): share kusto via systemjs
* test(e2e): increase timeout for checking monaco editor in exemplars spec
* test(e2e): assert monaco has loaded by checking the spinner is gone and window.monaco exists
* test(e2e): check for monaco editor textarea
* test(e2e): check monaco editor is loaded before assertions
* test(e2e): add waitForMonacoToLoad util to reduce duplication
* test(e2e): fix failing mysql spec
* chore(jest): add comment to setupTests explaining need to incresae default timeout
* chore(nodegraph): improve comment in layout.worker.utils to better explain the need for file
* initial very very early stab at isolated state for nested folder picker
* more
* complete state rework. still need to do search
* tidy up some comments
* split api hook into seperate file, start to try and get search results back (its not working)
* Fix loading status
* Reset files
* cleanup
* fix tests
* return object
* restore hiding items
* restore
* restore
* remove those comments
* rename hooks
* rename hooks
* simplify selectors - thanks ash!!!
* more ci please?
* Chore: Replace Form component usage in EditDefaultPolicyForm.tsx
* Chore: Replace Form component usage in EditNotificationPolicyForm.tsx
* Remove ts-ignore
* add variable name validation
* adjust variable name validation logic
* move variable name validation logic to model
* add tests for onValidateVariableName
* extract variable name validation itest into separate describe
* Plugins: fix loading of modules which resolve to Promises
Prior to this commit we expected the default export of a plugin module
to be an object with a `plugin` field.
This is the case for the vast majority of plugins, but if a plugin uses
webpack's `asyncWebAssembly` feature then the default export will actually
be a promise which resolves to such an object.
This commit checks the result of the SystemJS import to make sure it has
a `plugin` field. If not, and if the `default` field looks like a Promise,
it recursively attempts to resolve the Promise until the object looks like
a plugin.
I think this may have broken with the SystemJS upgrade (#70068) because it used
to work without this change in Grafana 10.1, but it's difficult to say
for sure.
* Use Promise.resolve instead of await to clean up some logic
* Override systemJSPrototype.import instead of handling defaults inside importPluginModule
* Add comment to explain why we're overriding systemJS' import
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
---------
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
* Chore: Remove Form usage from NewFolderForm
* Chore: Remove Form usage from NewFolderForm
* Chore: Remove Form usage from NewFolderForm
* Replace HorizontalGroup with Stack
* add Default Values and launch prettier
"Release: Updated versions in package to 11.0.0-pre"
Co-authored-by: grafana-delivery-bot[bot] <132647405+grafana-delivery-bot[bot]@users.noreply.github.com>
* Loki: Pass time range variable in variable editor
* Remove not needed type
* Update
* Add tests, not re-run if type does not change
* Add range as dependency
* working except for links
* Make sure the links are present on the library panels
* add tests, add empty links before panel is loaded, refactor legacy representation
* Update
---------
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* send instance ID to query inspector, ensure requestId match before updating data
* Extract logic for mixed request ID, use in Explore prefix when appropriate
* Change query inspector to get passed request ID
* Fix test
* add password service interface
* add password service implementation
* add tests for password service
* add password service wiring
* add feature toggle
* Rework from service interface to static function
* Replace previous password validations
* Add codeowners to password service
* add error logs
* update config files
---------
Co-authored-by: Karl Persson <kalle.persson@grafana.com>
Alerting: Remove start page of upgrade preview
Alerting upgrade page will now always show the summary table even before
upgrading any alerts or notification channels. There a few reasons for this:
- The information on the start page is redundant as it's now contained in the
documentation.
- Previously, if some unexpected issue prevented performing a full upgrade, a
user would have limited to no means to using the preview tool to help fix the
problem. This is because you could not see the summary table until the full
upgrade was performed at least once. Now, you can upgrade individual alerts and
notification channels from the beginning.
* fix expanding rules with one metric wrapped in a parenthesis
* fix expanding rules with regex match operator
* fix for multiple labels
* refactor
* don't modify recording rules name in label values
* metric + metric fix
* fix last issues with label regex and spaces
* add comments
* add the same changes to the prometheus library
* Loki: Fix teching of values if no previoous equality operator
* Update to consider regex with match everything
* Update public/app/plugins/datasource/loki/querybuilder/components/LokiQueryBuilder.tsx
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
* Fix lint
---------
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
* Bump scenes
* Make GroupByVariableModel a VariableWithOptions
* Serialise/deserialise group by variable
* WIP: Group by variable editor
* WIP tests
* Group by variable tests
* add feature toggle and gate variable creation behind it
* Fix types
* Do not resolve DS variable
* Do not show the message if no DS is selected
* Now groupby has options and current
* Update public/app/features/dashboard-scene/settings/variables/components/GroupByVariableForm.test.tsx
Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
* don't allow creating groupby if toggle is off + update tests
* add unit tests
* remove groupByKeys
---------
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
Co-authored-by: Ivan Ortega <ivanortegaalba@gmail.com>