194 Commits

Author SHA1 Message Date
20c700dd52 Chore: reduces barrel files part II (#107688)
* Chore: reduce barrel files

* chore: fixes unit test

* Chore: reduces barrel files part II

* chore: fix import sorting
2025-07-09 06:15:33 +02:00
31b71f79dd Internationalisation: Manual mark up following review (#107625)
* 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
2025-07-07 16:43:19 +01:00
2b8c74de2e i18n: removes useTranslate hook (#106556)
* i18n: removes useTranslate hook

* chore: fix duplicate imports

* chore: fix import sorting and hook dependencies
2025-06-12 11:03:52 +02:00
cbb828202a FolderPicker: Remove old folder picker (#105374)
* Remove newFolderPicker toggle

* Remove usage of the old folder picker

* fix some tests

* remove old test
2025-06-10 16:01:48 +02:00
119d5897ea i18n: imports use @grafana/i18n (#105177)
* i18n: everything should target @grafana/i18n

* wip

* chore: updates after PR feedback

* Trigger build

* Trigger build

* Trigger build

* chore: skip flaky tests

* chore: skip flaky tests

* chore: skip flaky tests

* chore: skip flaky tests

* chore: skip flaky tests

* chore: skip flaky tests

* chore: revert all flaky tests

* chore: some incorrect usages of useTranslate
2025-05-15 09:17:14 +02:00
20b50e5f16 Grafana UI: Make DashboardPicker focusable (#104242) 2025-04-24 11:27:04 -03:00
0fc4f53fab Internationalisation: More markup for translations (#103392)
* some more translations

* more markup

* more translations

* fix tests
2025-04-07 09:48:03 +01:00
17d089d38a Schema V2: Use App SDK generated types (#103100)
* Use App SDK generated types

* Move examples

* Merge fix

* PAth updates
2025-04-02 16:22:24 +02: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
46a537aa02 iam: Fix debouncing in user, team and service account pickers (#100830)
iam: fix debouncing in user, team and service account pickers
2025-02-18 08:34:37 -05:00
d719e6c621 ServiceAccounts: Fix search in SA picker (#100634) 2025-02-13 17:02:51 +01:00
77f7ab27be Use cog as a cli tool to generate code for kinds v2 schemas (#99044)
* Use cog as a cli tool to generate code for kinds v2 schemas

* Update imports to dashboard v2 package in frontend

* Ensure cog is installed before using it
2025-01-16 13:18:47 +01:00
070f0e4457 Dashboard API versions handling (#96666)
* structure apic

* API versioning proposal

* Make api service independent from version

* Update v2

* Fix public dashboards page test

* Uncomment reload dashboard feature code

* Revert

* Betterer

* Fix imports

* useV2DashboardsAPI feature toggle

* POC/v2 schema: Add v1<-> v2 transformers (#97058)

* Make dshboard access interface more precise

* Add first pass for schema v1<->v2 transformers

* Update response transformer test

* Import fixes

* Manage dashboards validation: Handle v2 schema

* Handle new dashboard with v2

* Fix tests

* Move dashboard is folder error handling to legacy API implementation

* Add tests for dashboard api client

* betterer

* Use dashboard DTO when capturing dashbaord impression

* prettier

* Dashboard API: resolve folder metadata

* Add tests for resolving folder metadata

* Fix DashboardPicker

* Renames and nits

* POC Alternative Suggestion for  Dashboard API versions handling (#97789)

* Add transitional_dashboard_api, reset components that are not ready for v2 schema, and start working on migrating
DashboardPicker to use v2 schema

* reset DashboardScenePageStateManager

* Improve logic in transitional api, also remove isDashboardResource checks from components

* REmove transitional_dashboard_api and apply PR feedback

* Apply PR feedback, use 'v2' as a parameter and remove unnecesary if

* Fix tests

* Adding missing comments from original PR and also changing order to improve diffing in github :)

* update betterer

* fix prettier

* Add tests for DashboardPicker

* Do not use unified alerting mocks

* Fix unused type in dashboard test

* Improve comments in DahboardPicker

* Update folder validation fn

* Validation update

* Update legacy api test

* Lint

---------

Co-authored-by: alexandra vargas <alexa1866@gmail.com>
Co-authored-by: Alexa V <239999+axelavargas@users.noreply.github.com>
Co-authored-by: Ivan Ortega <ivanortegaalba@gmail.com>
2024-12-17 22:17:09 +01:00
1ff0978efe Chore: Remove sharemodal and search service barrel files (#97563)
* refactor(search-service): delete barrel file and update imports across frontend

* refactor(sharemodal): delete barrel file and update imports

* refactor(search-service): update features/search/service imports

* chore(betterer): update results file
2024-12-06 16:44:30 +01:00
63a09c27f7 Chore: remove frontend code that retrieves by folder id (#97066) 2024-11-28 22:12:52 -06:00
c2e1a405b9 Chore: Mark up some content for translations (#96716)
* translate some of core

* more

* translate admin

* fix count translations

* update unit tests
2024-11-21 12:59:14 +00:00
Jo
9f43724b57 AccessControl: Use UIDs for Resource permissions frontend (#95552)
* frontend can use uids to set resource permissions

* lint

* add uids to folder acl

* Update public/app/core/components/Select/UserPicker.tsx

Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>

* simplify conditions

---------

Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
2024-10-31 16:17:13 +01:00
735332570f feat: GroupSync extension UI (#91777)
* feat: supporting code for groupsync extension UI

* Add result of running i18n extraction

* Place the UI behind a feature toggle as well as the license feature

* Also add access checks to route loading of groupsync route with feature toggle

* Add access check on permissions to show External group sync in nav

* fix: New version of multiOrgRoleOptions hook

* Remove OSS route definition

* Apply feedback on nav title
2024-09-19 14:58:11 -05:00
47f8717149 React: Use new JSX transform (#88802)
* update eslint, tsconfig + esbuild to handle new jsx transform

* remove thing that breaks the new jsx transform

* remove react imports

* adjust grafana-icons build

* is this the correct syntax?

* try this

* well this was much easier than expected...

* change grafana-plugin-configs webpack config

* fixes

* fix lockfile

* fix 2 more violations

* use path.resolve instead of require.resolve

* remove react import

* fix react imports

* more fixes

* remove React import

* remove import React from docs

* remove another react import
2024-06-25 12:43:47 +01:00
55dfc76b23 Chore: replace General with Dashboards (#89017)
replace General with Dashboards
2024-06-11 13:10:25 +01:00
41e0430f83 K8s/Dashboards: Add frontend api to switch between implementations (#88632) 2024-06-05 17:34:23 +03:00
3f7017a471 Chore: Remove nestedFolderPicker toggle (#88660)
remove nestedFolderPicker toggle
2024-06-04 12:16:12 +03:00
b4e49e3114 Select: Ensure screenreader correctly narrates options (#88118)
* replace select aria-label with data-testid

* update in copy pasted places as well

* update plugin-e2e to 1.2.2
2024-05-28 14:51:47 +01:00
fa6e4bbcd0 Users: Resurrect org picker's search functionality (#78886)
[up] return search for org picker
2024-03-12 13:29:02 +02:00
a30f8645d1 Chore: Migrate frontend platform code to use data-testid for selectors (#81787)
* migrate some stuff from aria-label to data-testid

* convert styles to objects

* fix unit tests

* empty commit to kick drone now enterprise branch is there
2024-02-02 13:26:37 +00:00
d1dab5828d Alerting: Update rule API to address folders by UID (#74600)
* Change ruler API to expect the folder UID as namespace

* Update example requests

* Fix tests

* Update swagger

* Modify FIle field in /api/prometheus/grafana/api/v1/rules

* Fix ruler export

* Modify folder in responses to be formatted as <parent UID>/<title>

* Add alerting test with nested folders

* Apply suggestion from code review

* Alerting: use folder UID instead of title in rule API (#77166)

Co-authored-by: Sonia Aguilar <soniaaguilarpeiron@gmail.com>

* Drop a few more latent uses of namespace_id

* move getNamespaceKey to models package

* switch GetAlertRulesForScheduling to use folder table

* update GetAlertRulesForScheduling to return folder titles in format `parent_uid/title`.

* fi tests

* add tests for GetAlertRulesForScheduling when parent uid

* fix integration tests after merge

* fix test after merge

* change format of the namespace to JSON array

this is needed for forward compatibility, when we migrate to full paths

* update EF code to decode nested folder

---------

Co-authored-by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
Co-authored-by: Virginia Cepeda <virginia.cepeda@grafana.com>
Co-authored-by: Sonia Aguilar <soniaaguilarpeiron@gmail.com>
Co-authored-by: Alex Weaver <weaver.alex.d@gmail.com>
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2024-01-17 11:07:39 +02:00
ec53487c99 NestedFolderPicker: separate toggle to force enable picker without nestedFolders (#80461)
* separate nestedFolderPickerOverride toggle to force enable it without nestedFolders

* let's call it newFolderPicker

* update unit tests and keyboard handling

* reduce spacing when no folder open chevron

---------

Co-authored-by: Josh Hunt <joshhunt@users.noreply.github.com>
2024-01-15 11:43:19 +00:00
4290ed3d86 Chore: Remove newBrowseDashboards feature toggle (#78190)
* remove all the things

* fix OldFolderPicker tests

* i18n

* remove more unused code

* remove mutation of error object since it's now frozen in the redux state

* fix error handling
2023-11-22 15:22:00 +00:00
8ba6dc866d chore: remove LegacyForms from MetricSelect component (#76490) 2023-10-27 12:41:04 +02:00
87d697e4fe TeamPicker: Add optional initial value support (#76353)
* TeamPicker: Add optional initial value support

* Rename value to teamId
2023-10-16 17:02:12 +02:00
Jo
4474f19836 Service Accounts: Enable adding folder, dashboard and data source permissions to service accounts (#76133)
* Add SAs to Datasource permissions

Co-authored-by: ievaVasiljeva <ieva.vasiljeva@grafana.com>

* add SAs to dashboards/folders managed permissions

* Update public/app/core/components/AccessControl/Permissions.tsx

Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>

* regenerate i18n

* add doc

---------

Co-authored-by: ievaVasiljeva <ieva.vasiljeva@grafana.com>
2023-10-06 17:48:13 +02:00
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
d46208b28a Chore: remove legacy AC fallback from frontend access control checks (#74385)
* don't use legacy AC fallback for frontend access control checks

* extend tests

* more test fixes

* more test fixes

* more test fixes

* final test fix

* team test fix

* finally fix tests
2023-09-06 16:07:49 +01:00
2374458e94 Nested folders: use FolderPicker in dashboard settings (#72192)
* Use new NestedFolderPicker in SaveDashboardAsForm

* use FolderPicker wrapper in dashboard settings

* fix e2e test

* actually pass the deprecated props to the component

* just pass value

---------

Co-authored-by: joshhunt <josh@trtr.co>
2023-07-24 14:27:47 +01:00
3c48701f08 Use new NestedFolderPicker in SaveDashboardAsForm (#72189) 2023-07-24 11:11:35 +00:00
1fde7f7f46 NestedFolders: Switch between old and new folder picker components (#72124)
NestedFolders: Create wrapper to switch between old and new folder picker components
2023-07-24 10:25:32 +00:00
3457ccbf12 FolderPicker interaction reporting (#71896)
* FolderPicker interaction reporting

* rename event
2023-07-21 18:23:05 +03:00
f3235ba959 NestedFolders: Rename FolderPicker to OldFolderPicker (#72098)
* Rename FolderPicker to OldFolderPicker

* fix jest mock

* fix jest mock
2023-07-21 13:24:43 +00:00
516baf59fb StyleGuide: Add testing guide (#69403)
* StyleGuide: Testing Select

* Add mocking section

* Fixes

* Add examples of backendSrv mocks

* Minor tweaks

* Updates after review

* Update examples
2023-06-09 18:21:32 +03:00
bb66f14c1d NestedFolders: Rename 'General' to 'Dashboards' in FolderPicker (#67113) 2023-04-25 16:22:36 +01:00
5d7433d820 RBAC: Make access control metadata for folders work with nested folders (#66464)
* remove metadata for single folder listing

* extendTests

* remove ac metadata from dash and folder search results

* remove test

* remove one more test

* put ac metadata back for single folder API responses

* extend tests

* remove ac metadata from folder frontend object

* undo unneeded change

* PR feedback

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>

---------

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
2023-04-21 15:05:11 +01:00
85e5326040 Chore: Adjust unit tests so they work with react 18 (#64698)
tweak unit tests so they work with react 18
2023-03-14 17:24:04 +00:00
d710507bc5 Chore: Avoid explicit React.FC<Props> when possible (#64722) 2023-03-14 16:38:21 +02:00
53186c14a4 Chore: Improve some types (#64675)
* some type fixes

* few more

* more type fixes

* fix the majority of (window as any) calls

* don't make new variable for event

* few more

* MOAR
2023-03-14 09:51:44 +00:00
0c36b247af Chore: Refactor Search/Folder view types into DashboardViewItem (#63162)
* Chore: Refactor Search/Folder view types into DashboardViewItem

* uid is not optional in api

* rename queryResultToNestedFolderItem function

* Fix error from locationInfo being empty

* change queryResultToViewItem to take view instead

* Fix sortMeta fields not showing on search cards

* Show correct parent for panel search results
2023-02-23 15:52:54 +00:00
09637caade Chore: Remove search_srv (#62964)
* Chore: Remove Search Service

* use getSortOptions from grafana searcher

* wip

* fix library panels search tests
2023-02-07 15:28:07 -05:00
f2d4e24710 Alerting: improve FolderPicker and Evaluation Group Select for Huge lists (#61221)
* Add AsyncVirtualizedSelect component in grafana-ui

* Slice FolderPicker results to 1k and virtualize list using AsyncVirtualizedSelect

* Group list in alert form: Use AsyncSelect and slice results to 1000

* Virtualize and slice always in FolderPicker: set default sliceResults value and let consumers change this value

* Always slice results in FolderPicker

* Limit folder results setting the limit in the api call instead slicing in the FE

* Remove warning about the limit in the Select label
2023-01-12 11:45:03 +01:00
379cde3a72 FolderPicker: Fixes issue with typing to search for folder (#59434) 2022-12-01 13:34:07 +01:00
Leo
27b6b3b3bd Folder: Replace folderId with folderUid (#58393)
* support folderuid in FolderPicker

* support folderuid in unified alerting

* support folderuid when returning to view mode after editing a panel

* support folderuid when preselecting the folderpicker in dashboard general settings

* support folderuid when saving dashboard

* support folderuid when pre-selecting folderpicker in dashboard form

* support folderuid in routes when loading a dashboard

* support folderuid when saving dashboard json

* support folderuid when validating new dashboard name

* support folderuid when moving dashboard to another folder

* support folderuid on dashboard action buttons

* support folderuid when creating a new dashboard on an empty folder

* support folderuid when showing library panel modal

* support folderuid when saving library panel

* support folderuid when importing dashboard

* fixed broken tests

* use folderuid when importing dashboards

* remove commented line

* fix typo when comparing uid values
2022-11-17 09:22:57 +01:00
4d0dd0647e Browse: Fix General folder not showing in FolderPicker (#57156) 2022-10-18 12:38:51 +02:00