Commit Graph
8258 Commits
Author SHA1 Message Date
Josh Hunt bf172dfd29 GrafanaUI: Add noBackdropBlur feature toggle (#102128)
* Create new noBackdropBlur feature toggle

* Disable backdrop blur with feature toggle
2025-03-14 15:21:35 +00:00
Ashley Harrison 75156324f4 Chore: fix some codeql violations (#101958)
* fix some codeql violations

* just check at start
2025-03-14 13:27:25 +00:00
ismail simsek d72b664981 Feature toggle: Introduce infinityRunQueriesInParallel feature toggle (#102129)
introduce infinityRunQueriesInParallel feature toggle
2025-03-14 13:54:04 +01:00
Laura Fernándezandjoshhunt 38151b1ae4 Combobox: add grouping functionality (#100603)
* Use useOptions in Combobox

* Clean code

* Betterer results

* Add grouping to Combobox

* Fix code after mergin main

* Manage ids

* wip - first pass at improved dom structure for a11y

* improve styling, remove old implementation

* more style!!!!

* more tidy up

* deprecated comment

* another comment!

* tests

* remember the index of each group

---------

Co-authored-by: joshhunt <josh.hunt@grafana.com>
2025-03-14 13:05:25 +02:00
Andrej Ocenas a6c16c52e6 Scopes: Refactor services and the api client (#102042)
* Externalize api and remove dependency cycles

* fix tests

* Update comment

* Split the state observable creation in ScopesService

* Make the feature flag guard more explicit

* Change reduce to map
2025-03-14 10:48:12 +01:00
Ieva 9264431c81 RBAC: Remove action set feature toggle (#101959)
* remove action set feature toggle

* don't pass feature toggles to action set service instantiation

* linting

* test fixes and frontend clean-up

* fix test
2025-03-13 15:18:23 +00:00
Kristina 2bbd5faf6d Transformations: Include other counts as numbers when assessing field types (#102109)
Distinct count and change count should also always be numbers
2025-03-13 15:39:17 +02:00
Tom Ratcliffe 85a3ae2d07 Chore: Add heuristic approach to fixing untranslated text with eslint rule (#101561)
* Add heuristic approach to fixing untranslated text with eslint rule

* Update logic of how we track and report untranslated strings so we can prevent autofixes

* Update betterer to reflect different reporting of untranslated text

* Move logic for rule to utils and change to suggest instead of fix

* Update tests to cope with suggest instead of fix

* Remove commented out `only`

* Add config to allow force fixing

* Fix type errors and improve shouldFix logic
2025-03-13 13:17:05 +00:00
Josh Hunt d6c97bd6c9 I18n: Add useT/useTranslate PR feedback that got missed (#102098)
I18n: Add PR feedback that got missed
2025-03-13 12:49:49 +00:00
Josh Hunt 50ff1ae69b I18n: Add useT hook for plugin translation API (#102033)
* Create placeholder useT function

* expose useT() in @grafana/runtime

* fix setting useT correctly

* example usage of useT

* rename hook to useTranslate

* fix rename

* remove comment
2025-03-13 13:54:57 +02:00
Matthew Thorning 2c10b35b33 GrafanaUI: Use safePolygon close handler for interactive tooltips instead of a delay (#101871)
* feat: allow configuration of interactive tooltip delay

* add comment explaining interactiveDelay prop

* switch approach to using `safePolygon` close handler instead

* remove unnecessary object spread from Tooltip component
2025-03-13 11:14:29 +00:00
d07b1851c7 Dynamic dashboards: Persist conditional rendering (#102022)
* Dashboards: Add conditional rendering

* Updates

* Fixes

* Code improvements

* Code improvements

* limit condition choices, add delete and clean up ui

* add basic variable condition

* add conditional rendering based on time range interval

* adjust failing test

* remove deprecated pseudo locale file

* extract conditional rendering from behaviour to state property

* clean up behaviour initialisation

* clean up ts errors

* adjust data condition to account for RowItem

* persist-conditional-rendering

* fix group value name and kind type

* Fix types in base

* minor style fix

* Fix subscribes

* notify change when deleting condition

* fix hidden row item error

* Remove option to have groups in groups

* fix merge issue

* address comments

* subscribe to panel data change in data condition

* Remove loop labels

* only persist conditional rendering if root group has items

* update backend types

* Serialize variable conditional rendering operator as equals notEquals

---------

Co-authored-by: Bogdan Matei <bogdan.matei@grafana.com>
Co-authored-by: Sergej-Vlasov <sergej.s.vlasov@gmail.com>
2025-03-13 11:56:20 +01:00
Tobias Skarhed 9cc6c596af DataSourceHttpSettings: Replace legacy components and remove gf-form usage (#100583)
* Refactor to remove gf-form

* Change Select to Combobox

* Fix label width

* Add translations

* Fix input and translation keys

* Add aria expanded controls to help button

* Fix dsiabled state for Input

* Fix spacing

* Remove unused import

* Fix spacing for tag selectors

* Change gf-form-label to section

* Update addDataSource e2e flow

* Betterer results

* Use new form component

* Update translations

* Add deprecation notice

* Extract translations

* Update betterer
2025-03-13 10:20:20 +01:00
0f45f2696e Dashboards: Add conditional rendering (#100330)
* Dashboards: Add conditional rendering

* Updates

* Fixes

* Code improvements

* Code improvements

* limit condition choices, add delete and clean up ui

* add basic variable condition

* add conditional rendering based on time range interval

* adjust failing test

* remove deprecated pseudo locale file

* extract conditional rendering from behaviour to state property

* clean up behaviour initialisation

* clean up ts errors

* adjust data condition to account for RowItem

* Fix subscribes

* notify change when deleting condition

* fix hidden row item error

* address comments

* subscribe to panel data change in data condition

* Remove loop labels

---------

Co-authored-by: Sergej-Vlasov <sergej.s.vlasov@gmail.com>
Co-authored-by: oscarkilhed <oscar.kilhed@grafana.com>
2025-03-13 08:25:55 +01:00
bfedf0b512 Dashboard: Redirect between v1alpha1 and v2alpha1 depending on stored version (#101292)
* wip: Create a proxy state manager to avoid complexity

* Read path redirecting

* add tests for unified dashboard API

* add tests

* Contemplate both formats in DashboardProxy

* Fix force old

* Fix tests for proxy

* catch errors

* Save as V2 when dynamic dashboard is enabled

* Improve tests

* Remove feature toggle

* Use kubernetesDashboards for e2e suite

* Fix issue when loading snapshots

* Fix typescript errors

* Integrate with backend conversion error

* Remove legacy annotation

* fix snapshot loading; lint

* Add missing hideTimeControls

* fix test

* make setupDashboardAPI to all suites

* refactor getDashboardAPI

* Add tests

* fix DashboardScenePage tests

* fix tests

* fix go tests

* Refactor to understand better the need of transforming to v2 to compare

* Fix detect changes logic

* yes status from schema gen

---------

Co-authored-by: alexandra vargas <alexa1866@gmail.com>
Co-authored-by: Haris Rozajac <haris.rozajac12@gmail.com>
2025-03-12 11:43:32 -06:00
Eric Leijonmarck 94020aa9cd Config: Remove setting editors_can_admin (#101607)
* Remove editors can admin

* delete file

* add ac_test back

* Add linting ignore

* more static ignore
2025-03-12 16:25:23 +00:00
Javier Ruiz fe8e4563bd [getTagValues] Ensure we're not using suggestions when no scopes are present (#102008)
Ensure we're not using suggestions when no scopes are present
2025-03-12 16:38:22 +01:00
Ihor Yeromin b224751374 Table: Fix cell border visibility (#101951)
fix(table): cell border visibility
2025-03-12 14:21:15 +01:00
Jack Westbrook c9f563e576 Grafana UI: Use package.json exports for internal code (#101815)
* feat(grafana-ui): introduce development exports to prevent importing from grafana/ui/src

* refactor(theme-generation): move theme templates into scripts so themes continue to build

* refactor(frontend): replace  grafana/ui paths that use nested src with /internal or /unstable

* chore(betterer): update better results file

* feat(grafana-ui): support enterprise, remove Text component from internal

* docs(packages): update readme with exporting code conventions
2025-03-12 14:14:32 +01:00
Torkel Ödegaard 3bf6e3dc37 Dashboards: Fix issues with panel selection and dragging (#102000) 2025-03-12 10:26:59 +01:00
Laura Fernández 911c99f325 Field: Use Combobox instead of Select in test (#101928) 2025-03-11 16:58:09 +02:00
Laura Fernández c8c17683ed ThemeDemo: Use Combobox instead of Select (#101947) 2025-03-11 16:55:30 +02:00
Ed Poole 0519cfa66d Fix/theme gradients (#101934)
* Brighten the DesertBloom gradient

* Adjust gradient values so they're consistently rgba
2025-03-11 13:09:08 +00:00
Torkel Ödegaard b4366db1f1 ThemeDrawer: Change theme from anywhere and preview them (#100405)
* ThemeDrawer: Change theme from anywhere and preview them

* Update

* added subtitle

* Use new component

* Fixes

* Fix runtime ony wrong prop

* Fixed saving issue

* update lang file

* Fixed circular dep

* fix import
2025-03-11 12:03:10 +01:00
Igor SuleymanovandRyan McKinley ea89a68028 K8s/Dashboards: Generate Dashboards k8s APIs using Grafana App SDK (#99966)
* Generate Dashboard kinds with `grafana-app-sdk`

Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com>

* Hack together a fix for invalid TS codegen for v0 & v1

Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com>

* Address Go linter issues

Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com>

* Address TS linter issues

Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com>

* Add new app to CODEOWNERS

Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com>

* Fix a couple of issues detected by tests

Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com>

* Update OpenAPI definitions and test files

Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com>

* Remove title from Dashboard v1alpha1 spec

Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com>

* Remove unused CUE schemas

Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com>

* remove unrelated files

* allow any in the generated betterer

* Add a comment explaining why we don't use deepcopy-gen

Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com>

* Default to v2alpha1 if dashboards v2 FF is enabled

Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com>

---------

Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com>
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2025-03-11 13:00:37 +02:00
Laura Fernández 3fffb2872e InlineField: Use Combobox instead of Select (#101923)
Use Combobox instead of Select
2025-03-11 11:47:59 +01:00
Josh Hunt 210c886bb7 I18n: Add new language options (#101899)
* Add newLanguages feature toggle

* add additional languages behind feature toggle

* be more forgiving of what config looks like in tests

* tweak regex

* put pt-br back

* restore order of pt-BR and cn-Hans, rename EXTRA_LANGUAGES to NEW_LANGUAGES

* stricter test regex
2025-03-11 12:07:16 +02:00
Laura Fernández da25d97ffd AutoSaveField: Change the story to use Combobox instead of Select (#101922) 2025-03-11 11:59:55 +02:00
Torkel Ödegaard 7ecad55bff Tabs: Reduce active border from 4 px to 2px (#101888)
* Tabs: Reduce active border from 4 to 2px

* css fixes
2025-03-11 09:16:29 +01:00
renovate[bot] 11a95a0b80 Update dependency prismjs to v1.30.0 [SECURITY] (#101915)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-11 09:07:58 +03:00
Ed PooleandAshley Harrison 98e4d57bcd GrafanaUI: Add external border radius mixin (#100266)
* Add external border radius mixin

* Add getInternalRadius mixin for inverse use case

* Update border radius fns with clearler types and JSDoc annotations

* tidy up interface, apply correctly in radio buttons, add internal story

* connect padding/offset in radiobuttongroup/radiobutton

* split out offset into its own param

---------

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2025-03-10 12:09:48 +00:00
Tom Ratcliffe 852243c8f0 Chore: Remove pseudoizer and use i18next-pseudo instead (#101690)
* Remove pseudoizer and use i18next-pseudo instead

* Remove pseudo.mjs script

* Conditionally add pseudo post processing to i18n config

* Remove pseudo-locale in favour of post processing

* Add wrapped property to pseudo strings
2025-03-10 12:02:31 +00:00
4a713bd9ed Plugin: expose nested folder component from core grafana (#97765)
* expose nested folder component from core grafana

* prettier

* import order

* remove unused commented code

* remove unneeded file

* make a LazyFolderPicker

* fix types, change permission to string

* comment

* reset some changes back to main

* no need to log

---------

Co-authored-by: Joe Blubaugh <joe.blubaugh@grafana.com>
Co-authored-by: joshhunt <josh@trtr.co>
Co-authored-by: joshhunt <josh.hunt@grafana.com>
2025-03-10 10:50:42 +00:00
Leon Sorokin 1444e9d572 Transformations: Improve groupBy field selection and aggregated field types (#101753) 2025-03-08 01:43:08 +02:00
Juan Cabanas 5e21b9e2d1 Invite User: Add invite user button in top bar (#101809) 2025-03-07 16:09:59 -03:00
Torkel Ödegaard 8f6dcd01d6 Dashboard: Editing selection redesign (#101763)
* Dashboard: Editing selection redesign

* Reduce row padding and make it uniform

* Minor tweak

* Update
2025-03-07 17:58:05 +01:00
Collin Fingar 8cdc687abf i18n: Marking up Pagination and PageToolbar in Grafana-UI for translation (#101738)
* Grafana-UI: Pagination + PageToolbar i18n

* betterer results update for i18n fix

* Linting fix w/ import order
2025-03-07 11:12:07 -05:00
Steve SimpsonandAlexander Akhmetov 14ebec527c Alerting: Allow selection of recording rule write target on per-rule basis. (#101778)
* Alerting: Allow selection of recording rule write target on per-rule basis.

Introduces a new feature flag (`grafanaManagedRecordingRulesDatasources`),
disabled by default, to enable the ability to write recording rules data using
data source settings, and selecting the data source to use on a per-rule basis.

To cope with the scenario of users upgrading, a configuration file option
allows setting the default data source to use, if none is specified in the rule,
emulating the behaviour of recording rules without the flag enabled.

* Lint

* Update conf/sample.ini

Co-authored-by: Alexander Akhmetov <me@alx.cx>

---------

Co-authored-by: Alexander Akhmetov <me@alx.cx>
2025-03-07 14:30:40 +01:00
Tobias Skarhed cf95a42507 ScopesContext: Move export from unstable to regular entrypoint (#101765)
Revert unstable export
2025-03-07 11:40:40 +02:00
Adela Almasan 3e910015dc Chore: Deprecate actions prop from context menu (#101535) 2025-03-06 14:12:39 -06:00
Torkel Ödegaard f1ba2554e5 Dashboard: Editing design tweaks for the checkbox placements (#101618)
Dashboard: Design tweaks
2025-03-06 15:53:44 +01:00
Tobias Skarhed 7acfdfa0af ScopesContext: Move runtime service to unstable (#101600)
* Move ScenesContext runtime service to unstable

* Move ScopesContext to unstable folder

* Remove dummy export
2025-03-06 10:20:25 +01:00
Jack Westbrook d8da2061fc Grafana/schema: trigger new canary release (#101672)
docs(schema): add installation instructions to trigger release
2025-03-06 09:51:19 +02:00
JoeyandPiotr Jamróz 31e92ba720 Trace View: Add link from the Trace View to the Profiles Drilldown (#101422)
* Add link from the Trace View to the Profiles App via Profiles for this span button dropdown

* Fix tests

* Lint

* Fix test

* Lint

* Fallback if plugin extension does not exist

* Move span detail link buttons to their own file

* Add tests

* Update type name

* Update naming

* Prettier

* Move button

* Remove fallback

* Use proper time range

* Betterer

* Update test

* Use CoreApp

* Betterer

* Simplify context

* Update tests

---------

Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
2025-03-05 15:47:44 +01:00
Yuri Tseretyan 374380d1f6 Alerting: Keep the latest version of deleted rule in version table (#101481)
* add feature toggle alertRuleRestore
* Update delete rule to require UserUID, remove all versions and create "delete" version that holds information about who and when deleted the rule
2025-03-05 09:15:26 -05:00
Leon Sorokin e7baf9804e Transformations: Avoid mutation during variable interpolation (#101594) 2025-03-05 04:06:24 +02:00
Jack Westbrook 6d4a271a39 Frontend: Expose unstable entrypoints for data and runtime (#101547)
* feat(grafana-data): introduce unstable entrypoint to package

* feat(grafana-runtime): introduce unstable entrypoint to package

* feat(plugins): expose unstable entrypoints for data and runtime to plugins

* feat(packages): dummy exports so package verification and shared deps imports work
2025-03-04 16:22:05 +01:00
Tom Ratcliffe ac0fd38183 Chore: Add new no-translation-top-level eslint rule (#101550) 2025-03-04 15:42:37 +02:00
Jack WestbrookandKristian Bremberg bbfeb8d220 Feature: Introduce subresource integrity checks (SRI) for frontend assets (#100983)
* feat(featuremgmt): introduce feature toggle for enabling sri checks

* feat(frontend): use assetSriChecks feature toggle to inject integrity hash into script tags

* chore(webpack): align sri algorithms across dev and prod builds

* docs(featuremgmt): update assetSriChecks to pass CI

* docs(featuremgmt): fix more spelling complaints with assetSriChecks

* Add crossorigin attribute

* chore(webpack): add subresource-integrity plugin

* build(webpack): wrap webpack jsonp loader integrity checks in feature flag checks

* revert(index.html): remove crossorigin attribute if assertSriChecks is disabled

---------

Co-authored-by: Kristian Bremberg <kristian.bremberg@grafana.com>
2025-03-04 11:56:35 +01:00
Sergej-Vlasov bf9a34f2ca TimePicker: Ability to manually specify quick ranges (#101465)
* add quickRanges to scene model transforms

* add test for quickRanges transformations

* fix lint
2025-03-04 10:45:24 +00:00