Commit Graph
100 Commits
Author SHA1 Message Date
Josh HuntandAshley Harrison 2de6cd0692 Chore: Stories for Select performance (#57965)
* user essentials mob! 🔱

* user essentials mob! 🔱

lastFile:packages/grafana-ui/src/components/Select/SelectPerf.story.internal.tsx

* user essentials mob! 🔱

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2022-11-01 11:51:53 +00:00
Josh Hunt fd5c147574 Chore: Update footer changelog link to github (#57871) 2022-10-31 07:34:21 -04:00
Josh Hunt e417387bc7 I18n: Add German (#57397) 2022-10-21 11:47:17 +01:00
Josh Hunt fc75076b72 I18n: Show languages in local names (#57367)
* I18n: Show languages in local names

* fixed test
2022-10-21 05:29:03 -04:00
Josh Hunt 8cebaf345d User: Fix externalUserId not being populated (#57341) 2022-10-20 18:12:53 +01:00
Josh Hunt 4b68918b0b I18n: Update crowdin config and codeowners (#57264)
* update config and codeowners for i18n

* update codeowners
2022-10-20 14:59:02 +01:00
Josh HuntandSofia Papagiannaki 2e16d5499e Dashboard: Add dashboard validation warning to save drawer (#55732)
* add api route for validating a dashboard json

* add feature flag for showDashboardValidationWarnings

* tidy up

* comments and messages

* swagger specs

* fix typo

* more swagger

* tests!

* tidy test a little bit

* no more ioutil

* api will return different status code depending on validation error

* clean up

* handle 4xx errors

* remove console.log

* fix backend tests

* tidy up

* Swagger: Exclude alpha endpoints

Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
2022-10-14 09:51:05 -04:00
Josh Hunt 8e512de308 I18n: update contributing docs (#56860)
* update contrib i18n docs

* update contrib i18n docs

* remove lingui references, rearrage plain js usage
2022-10-14 11:55:15 +01:00
Josh Hunt b7d969baf1 I18n: Improve tooling (#56731)
* Delete en-US.json before extracting strings so it's always up to date

* Add 'comment' to message jsons

* Enable Pseudo-locale option only in dev mode

* don't load english messages

* fix package.json

* fix
2022-10-12 07:51:16 -04:00
Josh Hunt 719769ee7c I18n: Add Chinese (Simplified) (#56739)
* Prevent _old.json files from being created

* Add contrib docs for adding new locale

* add chinese (simplified)
2022-10-12 06:12:46 -04:00
Josh Hunt 6969354490 Chore: remove i18n console log (#56691) 2022-10-11 07:22:48 -04:00
d52ab5de2e EchoSrv: Remove $.ajax for loading scripts (#56678)
* user essentials mob! 🔱

lastFile:public/app/core/services/echo/backends/analytics/RudderstackBackend.ts

* user essentials mob! 🔱

lastFile:public/app/core/services/echo/backends/analytics/ApplicationInsightsBackend.ts

* user essentials mob! 🔱

Co-authored-by: Joao Silva <joao.silva@grafana.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2022-10-11 11:11:23 +01:00
Josh Hunt 680dfde90d I18n: Update crowdin config for i18next json files (#56640) 2022-10-10 14:02:25 +01:00
Josh Hunt d405f3a877 GrafanaUI: InputGroup: Fix invalid children borders (#56169)
* GrafanaUI: InputGroup: Fix invalid children borders

* tidy story

* zindex priority stack

* clarify comment

* fix inputgroup children type
2022-10-10 06:43:29 -04:00
Josh Hunt 891f9c00a1 I18n: Add lint rule to enforce correct i18n imports (#56487)
* I18n: Add lint rule to enforce correct i18n imports

* ignore in gui wrapper
2022-10-07 11:46:28 +01:00
Josh Hunt 5361efc225 I18n: Migrate to I18next (#55845)
* Switch from lingui from i18next

* Change lingui messages to i18next messages

* Change lingui messages to i18next messages (grafana-ui)

* Init i18n for tests
2022-10-06 16:34:04 +01:00
Josh Hunt 80065c47ab Chore: Updating swagger spec (#56094) 2022-09-30 09:15:09 -04:00
Josh Hunt 615d86d902 Docs: Clarify contributions for translations (#55574)
* Docs: Clarify contributions for translations

* add comment to messages.po files
2022-09-27 10:21:23 -04:00
Josh HuntandSofia Papagiannaki 00a90d3255 Chore: Regen swagger spec (#55750)
* Chore: Regen swagger spec

* Regenerate swagger after enteprise fix

Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
2022-09-26 12:37:27 -04:00
Josh Hunt 4e65f131d9 Chore: Update betterer results for elasticsearch (#55682) 2022-09-23 09:46:24 -04:00
Josh HuntandChristopher Moyer e3e954cbba Docs: Fix decimals: auto docs for panel edit (#55477)
* Docs: Fix decimals: auto docs for panel edit

* Update docs/sources/panels/configure-standard-options/index.md

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
2022-09-21 12:56:04 +01:00
Josh Hunt 070d44802f Chore: Type Rudderstack and AppInsights window APIs (#55162)
* Chore: Type Rudderstack and AppInsights window APIs

* remove rudder sdk to dev deps
2022-09-20 10:06:31 -04:00
d014a3a09b Echo: Add support for Google Analytics 4 (#55446)
* user essentials mob! 🔱

lastFile:public/app/core/services/echo/backends/analytics/GA4Backend.ts

* user essentials mob! 🔱

* user essentials mob! 🔱

lastFile:public/app/core/services/echo/backends/analytics/GA4Backend.ts

* user essentials mob! 🔱

lastFile:public/app/core/services/echo/backends/analytics/GA4Backend.ts

* user essentials mob! 🔱

lastFile:public/app/app.ts

* user essentials mob! 🔱

Co-authored-by: eledobleefe <laura.fernandez@grafana.com>
Co-authored-by: Leodegario Pasakdal <leodegario.pasakdal@grafana.com>
2022-09-20 03:13:14 -07:00
Josh Hunt 139705611a Chore: Remove remaining IconName type assertions (#54658)
* Chore: Remove remaining IconName type assertions

* fix lints
2022-09-06 09:15:36 +01:00
Josh Hunt 6b197f3fa9 Chore: Use react-highlight-words types (#54627) 2022-09-02 16:36:44 +01:00
Josh Hunt 3cf8e9c72e Chore: Remove grafana-ui IconName type assertions (#54623) 2022-09-02 11:31:16 +01:00
Josh Hunt fd7a30c0a9 Fix: Restore Grafana and Dashboard data source icons (#54580) 2022-09-01 09:46:06 -04:00
Josh Hunt c3633feea8 Chore: Remove Dashboard IconName type assertions (#54573)
* Chore: Remove Dashboard IconName type assertions

* fix lint
2022-09-01 13:26:28 +01:00
Josh Hunt caa0c91b1c Chore: Remove Nav + story IconName type assertions (#54572)
* Chore: Remove some IconName type assertions

* fix actually importing the function

* fix lint

* fix lint
2022-09-01 13:23:41 +01:00
Josh Hunt f15ce633c9 Navigation: Don't round app plugin icon images (#54543)
* Navigation: Don't round app plugin icon images

* round icon
2022-09-01 10:28:50 +01:00
Josh Hunt ebbeed8ad7 I18n: Use locale preference (#53293) 2022-08-26 10:27:14 +01:00
Josh Hunt 2b17e5354a Chore: Remove needless eslint ignore comment from variable utils (#54050) 2022-08-22 16:50:24 +01:00
Josh Hunt 9db9ebce02 Typed variables pt6: Clean up and test variable type guards (take 2) (#54025)
* Add fixture-factories for all variable types

* clean up variable guards

* add tests for isMulti, hasCurrent, and hasOptions variable type guards

* create VariableSupport type to try and work around ts wonkiness
2022-08-22 14:45:40 +01:00
Josh Hunt 44ea98b24f Chore: Ignore type assertions in __mocks__ (#53593) 2022-08-11 14:06:15 +00:00
Josh Hunt 081d6e9d3e Typed variables pt5: Remove generics from getInstanceState (#53018)
* wip

* make diff easier to read

* Update template_srv getVariables to return new TypedVariableModel

* update VariableType to use the type from TypedVariableModel

* tidy things up

* Chore: Use type-accurate mock variables in tests

* Chore: Type VariableState to use TypedVariableModel

* fix typo

* remove type assertion from template_srv.getVariables

* use typescript/no-redeclare for compatibility with ts overloads

* remove generics from getVariable() and overload it to only return undefined based on arguments

* update usages of getVariable()

* Remove generic from getInstanceState

* update usages of getInstanceState

* fix lint
2022-08-10 16:06:49 +01:00
Josh Hunt aee2856907 Fix: correct bold, italics, and code color in Panel tooltips (#53380) 2022-08-08 07:10:42 -04:00
Josh Hunt fbc48d68f1 E2E: Make Cypress recordings higher res + quality (#53342) 2022-08-08 09:54:00 +03:00
Josh Hunt 4b4d546e32 Typed variables pt4: Remove generics from getVariable (#53017)
* wip

* make diff easier to read

* Update template_srv getVariables to return new TypedVariableModel

* update VariableType to use the type from TypedVariableModel

* tidy things up

* Chore: Use type-accurate mock variables in tests

* Chore: Type VariableState to use TypedVariableModel

* fix typo

* remove type assertion from template_srv.getVariables

* use typescript/no-redeclare for compatibility with ts overloads

* remove generics from getVariable() and overload it to only return undefined based on arguments

* update usages of getVariable()

* Fix Interval variable options picker not working
2022-08-05 13:44:52 +01:00
Josh Hunt c7d3fec515 Typed variables pt3: Type VariableState with TypedVariableModel (#53015)
* wip

* make diff easier to read

* Update template_srv getVariables to return new TypedVariableModel

* update VariableType to use the type from TypedVariableModel

* tidy things up

* Chore: Use type-accurate mock variables in tests

* Chore: Type VariableState to use TypedVariableModel

* fix typo

* remove type assertion from template_srv.getVariables

* undo whatever changes i did to swagger spec
2022-08-03 12:38:59 +01:00
Josh Hunt 8f81c4d2ce Chore: reformat swagger specs, again (#53205) 2022-08-03 12:18:52 +01:00
Josh Hunt 805203dba9 Chore: Prettier ignore api-merged & api-spec swagger api specs (#53170)
* Prettier ignore api-merged & api-spec swagger api specs

* add enterprise
2022-08-03 11:41:31 +01:00
Josh Hunt 1a683e53c5 Typed variables pt2: Use type-accurate mock variables in tests (#52987)
* wip

* make diff easier to read

* Update template_srv getVariables to return new TypedVariableModel

* update VariableType to use the type from TypedVariableModel

* tidy things up

* Chore: Use type-accurate mock variables in tests

* make createBaseVariableModel take the variable type
2022-08-02 14:47:41 +01:00
Josh Hunt 4323e12588 I18n: Add X-Crowdin-SourceKey to messages.po files (#53102)
* add X-Crowdin-SourceKey to messages.po files

* remove previous fake translation
2022-08-02 06:54:24 -04:00
Josh Hunt 1cadccf137 Add crowdin config (#53096) 2022-08-02 05:15:37 -04:00
Josh Hunt eaf6aea98f Typed variables pt1: Use discriminated union for variable model (#52981)
* wip

* make diff easier to read

* Update template_srv getVariables to return new TypedVariableModel

* update VariableType to use the type from TypedVariableModel

* tidy things up
2022-08-02 10:15:25 +01:00
Josh Hunt 96564be396 GrafanaUI: Improved ClipboardButton success state (#52665)
* Add new pill-shaped Indicator component

* Use indicator for clipboard button success

* show just check icon during success state

* expose Indicator

* move animation and positioning into Indicator component

* update stories

* update stories
2022-08-01 10:46:29 +01:00
Josh Hunt 583490678b update e2e docs to remove aria-label mentions (#52999) 2022-07-29 16:42:53 +01:00
06d78ea904 Dashboards: Disable variable pickers for snapshots (#52827)
* user essentials mob! 🔱

lastFile:public/app/features/variables/textbox/TextBoxVariablePicker.tsx

* user essentials mob! 🔱

* user essentials mob! 🔱

lastFile:public/app/features/variables/adhoc/picker/AdHocFilter.tsx

* finish up disabling variables in snapshots

* remove accident

* use theme.spacing instead of the v1 shim

Co-authored-by: Joao Silva <joao.silva@grafana.com>
Co-authored-by: Leodegario Pasakdal <leodegario.pasakdal@grafana.com>
2022-07-29 16:29:55 +01:00
Josh Hunt b223c65a6c Chore: remove unnessisary type assertion from GrafanaContext (#52979) 2022-07-29 11:48:52 +01:00
Josh Hunt 972105cc52 I18n: Wrap event-based modals with I18nProvider (#52720) 2022-07-25 08:44:11 -04:00
Josh Hunt 9f81b3dcc6 I18n: Change locale format to IETF language tag (#52596)
* I18n: Change locale format to our agreed format

* fix test

* Build lingui messages files before ci tests
2022-07-22 10:50:00 -04:00
Josh Hunt 1ee21b81d1 GrafanaUI: Improve ClipboardButton story (#52656)
* GrafanaUI: Improve ClipboardButton story

* GrafanaUI: Improve ClipboardButton story
2022-07-22 15:23:08 +01:00
Josh Hunt 62a3f2ed32 Chore: Align on 'internationalization' for feature name (#52585)
* rename internationalization docs

* Move localisation.tsx to internationalization/index.tsx
2022-07-21 06:31:08 -04:00
Josh Hunt cabdfb4811 Chore: Remove any that was introduced in a test (#52203) 2022-07-14 09:35:12 +00:00
Josh Hunt 15d9cf2139 Chore: Set codeowner for betterer results file (#51971)
* Update CODEOWNERS

* Update CODEOWNERS

* Update CODEOWNERS
2022-07-08 09:38:19 -04:00
Josh Hunt 0c88850070 Chore: Sync betterer results (#51963) 2022-07-08 14:19:17 +01:00
Josh Hunt ffd9d9d0c5 Chore: Refactor logs_model to clean up types (#51201)
* Chore: Minor refector of logs_model to clean up types

* undo a change i didn't commit to

* use isObservable instead

* fix type
2022-07-06 08:49:45 +02:00
Josh Hunt 78ee9ffa37 Chore: Remove CI stats that are also reported by betterer (#51318)
* Chore: Remove CI stats that are reported by betterer

* update betterer results
2022-06-23 14:20:45 +02:00
Josh Hunt 7cee620fbb Chore: Use @types/webpack-env to type require.context (#51196) 2022-06-22 12:38:47 +01:00
Josh Hunt 8fa951df04 Type window.nonce (#51200) 2022-06-22 09:28:05 +01:00
Josh Hunt 26f6b91fd9 Chore: Type GA and Rudderstack analytics config (#51197)
* Chore: Type GA and Rudderstack analytics config

* rely on implicit unknown
2022-06-22 09:27:55 +01:00
Josh Hunt 24bdda72fb Barchart: Fix warning not showing (#51190) 2022-06-21 17:45:37 -05:00
Josh Hunt 357b859fa7 Remove any generics from configureMockStore in tests (#51179) 2022-06-21 17:48:52 +01:00
Josh Hunt 98132fc7dc Remove as any from requireActual usage (#51182) 2022-06-21 17:48:38 +01:00
Josh Hunt bc7ed4baab Chore: use jest.mocked in favor of type assertions/any (#51156)
* use jest.mocked instead of yucky any

* remove more anys in favor of jest.mocked

* fix stray unused variables
2022-06-21 13:47:33 +01:00
Josh Hunt dcf786f3a9 I18n: Add default locale server config option (#51035)
* I18n: Set default locale in server config and expose in grafanaBootData

* put default locale behind feature flag

* update tests now that default locale is behind feature flag

* little bit of PR feedback

* update sample.ini
2022-06-21 11:12:49 +01:00
Josh Hunt 47abf44224 Chore: SharedPreferences tests (#51132)
* Add a test assertion function to make testing a little bit easier

* Add tests for SharedPreferences

* Remove some tests from UserProfileEditPage because we're testing SharedPreferences directly now
2022-06-21 09:36:34 +01:00
Josh Hunt 3cebd87bbb I18n: Add locale to user preference (#49425)
* Add __debug_bin file to gitignore

* Add locale user preference

* undo defaulting to existing JSONData in preferences save
2022-06-14 12:53:51 +01:00
Josh Hunt b115e73ede LibraryPanels: Require only viewer permissions to use a Library Panel (#50241)
* rename function to requireEditPermissionsOnFolder

* Require only viewer permissions on a folder when connecting a library panel from it

* update tests

* require edit permissions on the dashboard

* revert my change to the tests - these tests test something different

* revert changes to a test file???
2022-06-13 14:26:17 +01:00
Josh Hunt 32d4f6ac60 Dashboards: Fix folder picker not showing correct results when typing too fast (#50303)
* Use callback form for loadOptions in folder picker

* clean up

* fix other tests

* clarify comment
2022-06-10 15:54:21 +01:00
Josh Hunt 9d73264895 No longer generate theme json as it's not compatible with the right tooling (#50605) 2022-06-10 14:26:56 +01:00
Josh Hunt 9a62849dc3 Add i18n feature flag (#50590) 2022-06-10 13:02:52 +02:00
Josh Hunt e0bb01aea6 Dashboard: Fix panel menu styling issues (#49806)
* Dashboard: Fix panel menu styling issues

* remove !importants I added
2022-05-30 17:07:01 +01:00
9092150143 Cue: Update Text, Stat, and Annolist panel cue schemas (#49479)
* user essentials mob! 🔱

* user essentials mob! 🔱

* user essentials mob! 🔱

lastFile:public/app/plugins/panel/stat/types.ts

* user essentials mob! 🔱

* user essentials mob! 🔱

* Use generate defaults, and fix a few remaining issues

* Add annolist to dashboard dist plugins

* minor fixes

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
Co-authored-by: Joao Silva <joao.silva@grafana.com>
Co-authored-by: Alexandra Vargas <alexa1866@gmail.com>
Co-authored-by: sam boyer <sdboyer@grafana.com>
2022-05-25 12:07:32 +01:00
Josh Hunt c043a2f83a Chore: Update theme json (#49480) 2022-05-24 14:58:34 +01:00
Josh Hunt 5b8bc3e44c Limit persisted notifications to 25 (#49393) 2022-05-23 12:32:31 +01:00
Josh Hunt 426ca2999e GrafanaUI: Fix color of links in error Tooltips in light theme (#49327)
* GrafanaUI: Fix color of links in input validation errors in light theme

* Change colors
2022-05-20 18:54:07 +01:00
Josh Hunt 71e1305364 LibraryPanels: Fix library panels not connecting properly in imported dashboards (#49161)
* Use saved dashboard model to create library panel connections when importing

* Rename variables in dashboard import for clarity
2022-05-18 16:50:24 +02:00
Josh Hunt 18cbea84b1 prevent generated files from being prettiered (#49061) 2022-05-17 12:01:07 +02:00
Josh Hunt 1a633812a7 DashboardSettings: Update active tab to use new brand gradient (#48755)
* DashboardSettings: Update active tab to use new brand gradient

* Remove colons from gradients
2022-05-05 17:10:06 +01:00
Josh Hunt b04fb8522d QueryEditor: Set data source type in mixed query data source ref (#48734) 2022-05-05 15:09:00 +01:00
Josh Hunt 32a26d87a4 Chore: Generate JSON theme files (#48762) 2022-05-05 15:35:08 +02:00
Josh Hunt af57804513 Tooltip: Make tooltip use secondary background color for legible links (#48748) 2022-05-05 14:28:45 +01:00
Josh Hunt 1cd9175075 PanelEdit: Add gap between variables, like in Dashboard view (#48718) 2022-05-05 09:42:39 +01:00
Josh Hunt 2f1d404949 Switch PanelEditor to v2 theme (#48717) 2022-05-04 16:55:49 +01:00
Josh Hunt 51c3d9d664 I18n: Developer documentation (#48415)
* Docs: Add developer documentation for localisation

* touch up docs

* more assertive

* add example for variable names

* Add naming conventions

* Rewrite 'what lingui does' section
2022-05-04 13:46:04 +01:00
Josh Hunt 5dabb55b39 Navigation: Enable new navigation by default (#48447) 2022-05-03 16:28:40 +02:00
eeaa160ae8 Fix: Prevent automatic parsing of string data types to numbers (#46035)
* Fix: Render unitless strings as strings from displayProcessor

Co-authored-by: kay delaney <kay@grafana.com>
Co-authored-by: Alexandra Vargas <alexa1866@gmail.com>
Co-authored-by: joshhunt <josh@trtr.co>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
Co-authored-by: Joao Silva <joao.silva@grafana.com>

* update tests

* Rename none unit

* rename none unit to Number

Co-authored-by: kay delaney <kay@grafana.com>
Co-authored-by: Alexandra Vargas <alexa1866@gmail.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
Co-authored-by: Joao Silva <joao.silva@grafana.com>
2022-04-28 16:07:22 +01:00
Josh Hunt 3c6e0e8ef8 Chore: ESlint import order (#44959)
* Add and configure eslint-plugin-import

* Fix the lint:ts npm command

* Autofix + prettier all the files

* Manually fix remaining files

* Move jquery code in jest-setup to external file to safely reorder imports

* Resolve issue caused by circular dependencies within Prometheus

* Update .betterer.results

* Fix missing // @ts-ignore

* ignore iconBundle.ts

* Fix missing // @ts-ignore
2022-04-22 14:33:13 +01:00
Josh Hunt 720c6aac62 Dashboard: Add vertical spacing between variables when they wrap (#47762) 2022-04-15 11:05:53 +00:00
Josh Hunt e3b123c3fc GrafanaUI: Change chevron directions for open/closed state (#47386) 2022-04-08 16:37:25 +01:00
Josh Hunt 416da59c43 Routing: Fix links to different port from being treated as internal links (#45192)
* Add some failing tests that trigger the bug

* start at refactor of stripBaseFromUrl
2022-04-08 10:44:17 +01:00
Josh Hunt b857f8339e TestData: Interpolate variables in more fields (#47158)
* TestData: Interpolate variables in more fields

* only interpolate variables if the field is set

* Correctly type scenarioId which can be undefined
2022-04-07 14:45:14 +01:00
Josh Hunt 41642fd5f4 Modify the Server Error scenario to return frontend errors (#47157) 2022-04-07 10:59:49 +01:00
Josh Huntandkay delaney 1b27e55e5a Analytics: Identify users to Rudderstack by externalUserId where available (#47325)
* wip

* tests

* move util, fix test

* fixes

* Update public/app/core/services/echo/utils.ts

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

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
2022-04-05 17:41:22 +02:00
71db5115f4 User: Expose GCOM user ID as externalUserId in grafanaBootData (#47307)
* user essentials mob! 🔱

* user essentials mob! 🔱

* user essentials mob! 🔱

* user essentials mob! 🔱

* user essentials mob! 🔱

* fix sql indtent

Co-authored-by: Joao Silva <joao.silva@grafana.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2022-04-05 14:44:33 +01:00
Josh Huntandachatterjee-grafana 2fe6eca7a0 NewsPanel: Remove Use Proxy option and update documentation with recommendations (#47189)
* NewsPanel: Remove CORS proxy and update documentation with recommendations

* Updated generated model

* Update news-panel.md

* Update docs/sources/visualizations/news-panel.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/visualizations/news-panel.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update news-panel.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2022-04-05 15:16:28 +02:00
Josh Hunt 8f1b208a35 Chore: Report betterer stats in ci-frontend-metrics (#47210)
* Chore: Report betterer stats to graphite

* PR feedback

* use camelCase from lodash instead
2022-04-04 12:43:23 +02:00
Josh Hunt 89757cf58f ManageDashboards: Fix error when deleting all dashboards from folder view (#46877)
* user essentials mob! 🔱

* draft tests

* tests!

* better default ids for test data
2022-03-24 09:43:25 +00:00
Josh Hunt c7a5d2c5c7 Chore: Remove our typeAsJestMock in favor of jest.mocked (#45114) 2022-02-09 23:50:59 +01:00