Commit Graph

1091 Commits

Author SHA1 Message Date
Hugo Kiyodi Oshiro
6f3f8c0e99 Plugins: Add rudderstack events to plugins update (#92989) 2024-09-23 11:52:46 +02:00
Ashley Harrison
161d452841 Chore: Type improvements (#93267)
* some type fixes + ignore graveyard folder

* few more fixes

* remove comment

* ignore global styles

* few more type fixes
2024-09-13 09:50:55 +01:00
Will Browne
3f8d127410 Plugins: Ensure only updateable plugins can be updated via the UI (#93205)
* only updateable plugins can be updated via the UI

* add missing state

* Apply levi brains

Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>

* apply same style throughout

---------

Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
2024-09-12 13:51:50 +01:00
Hugo Kiyodi Oshiro
ecd1a6e421 Plugins: Fix plugins count in update all plugins button (#93126)
* Plugins: Fix plugins count in update all plugins button

* Plugins: Fix new updates filter

* Plugins: Update tests
2024-09-11 12:12:06 +02:00
Yulia Shanyrova
f88571c2e7 Plugins: Plugin details right panel UI improvements (#93171)
* UI improvements WIP

* change links appearance and layout for plugin details right panel

* Changed external links back

* Update public/app/features/plugins/admin/components/PluginDetailsRightPanel.tsx

Co-authored-by: David Harris <david.harris@grafana.com>

* Update public/locales/en-US/grafana.json

Co-authored-by: David Harris <david.harris@grafana.com>

* fix report abuse to report concern

---------

Co-authored-by: David Harris <david.harris@grafana.com>
2024-09-11 11:44:16 +02:00
Jack Westbrook
e3fd9f9e58 Fix: Resolution of css for plugins using loadPluginCSS (#93128)
* fix(plugins): resolve loadPluginCss urls for filesystem and cdn hosted plugins

* fix(plugins): should a registry lookup fail in getLoadPluginCssUrl fallback to relative path

* refactor(plugins): rename var to id for legibility

* test(plugins): add some extra test cases for getLoadPluginCssUrl function
2024-09-10 14:35:21 +02:00
Levente Balogh
831493278f UI Extensions: Share the registries using a React context (#92014)
* feat: add a context for the extension registries

* feat: add a provider for registries to `AppWrapper`

* feat(extensions): add a read-only registry version

* feat: share the registry for exposed components using the context

* fix: tests

* feat: share the registry for added components using the context

* feat: share the addedLinks registry using react context

* use read-only registry versions
2024-09-10 10:42:07 +02:00
Andrej Ocenas
5e2ac24890 Sidecar: Add split view and basic APIs for extensions (#91648)
* Add split view and basic APIs to extensions

* Add comments

* Update public/app/AppWrapper.tsx

Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>

* Moved the .grafana-app element and deduplicate some code

* Remove the provider variants of usePluginLinks/Components

* Change buildPluginSectionNav

* Update comment

* Use eventBus

* Remove non existent exports

* refactor: use a sidecar service to encapsulate the state

* Don't wrap single app in split wrapper

* Use hook splitter

* Remove inline styles

* Type the style props from useSplitter

* Move the overflow style changes to appWrapper

* Deduplicate some common top level providers

* Move modals

* Move routes wrappers to it's own file

* Use better css and add comments

* Remove query rows app extension point

* Fix test

---------

Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
2024-09-09 14:45:05 +02:00
Alex Khomenko
adf1402ff8 Grafana/ui: Update Link component to react router 6 (#92976)
* Grafana/ui: Update Link component to react router 6

* Add compat package to grafana/ui
2024-09-09 13:54:43 +03:00
Will Browne
2c47d246fc Plugins: Introduce LoadingStrategy for frontend loading logic (#92392)
* do it all

* feat(plugins): move loadingStrategy to ds pluginMeta and add to plugin settings endpoint

* support child plugins and update tests

* use relative path for nested plugins

* feat(plugins): support nested plugins in the plugin loader cache by extracting pluginId from path

* feat(grafana-data): add plugin loading strategy to plugin meta and export

* feat(plugins): pass down loadingStrategy to fe plugin loader

* refactor(plugins): make PluginLoadingStrategy an enum

* feat(plugins): add the loading strategy to the fe plugin loader cache

* feat(plugins): load fe plugin js assets as script tags based on be loadingStrategy

* add more tests

* feat(plugins): add loading strategy to plugin preloader

* feat(plugins): make loadingStrategy a maybe and provide fetch fallback

* test(alerting): update config.apps mocks to include loadingStrategy

* fix format

---------

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
2024-09-09 10:38:35 +01:00
Hugo Kiyodi Oshiro
c6fb9884a0 Plugins: Add sync update all plugins in cloud (#92742) 2024-09-05 15:04:37 +02:00
Jack Westbrook
e7d7ed5406 Chore: Remove side-effect import from app (#92650)
* chore(frontend): remove stray side-effect features import that brings the whole jungle

* chore(app): delete features/all.ts and its friends

* chore(codeowners): remove public/app/features/all.ts from file
2024-09-03 13:43:13 +03:00
Erik Sundell
db0cc24f2b Plugin extensions: Introduce new registry for added links (#92343)
* add added component registry

* fix broken test

* add tests for usePluginComponents hook

* readd expose components

* add type assertion exceptions to betterer results

* use new addedComponent registry in legacy endpoints

* remove unused code

* cleanup

* revert test code

* remove commented code

* initial commit

* refactor sync method and hook

* fix tests

* subscribe to the correct registry

* remove old registry

* cleanup types

* add use usePluginLinks hook

* add more tests

* fix import order

* fix typo

* fix and temporarly skip failing tests

* wip

* add hook tests

* add more tests

* remove old hook

* fix versioning

* add version to all extension point ids

* remove cleanup

* remove unused imports

* revert touched file

* fix test

* test: remove hook creation

* catch init error

* send error to faro

* fix broken hook

* comment out call hook initialization

* use the right import ofr isString

* remove unused import

* remove registryState type

* pr feedback

* Update public/app/features/plugins/extensions/validators.test.tsx

Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>

* Update public/app/features/plugins/extensions/validators.test.tsx

Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>

* remove no longer relevant comment

* fix broken tests

* Fixed test to verify that the memotization works properly.

* simplify hooks

---------

Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
2024-08-30 10:09:01 +02:00
Jack Westbrook
ec89854c5e Performance: Lazy load built in panel plugins (#92490)
feat(plugins): lazy load built in panel plugins
2024-08-29 11:54:31 +02:00
Hugo Kiyodi Oshiro
01b9ad3789 Plugins: Hide update all plugins in cloud (#92597) 2024-08-28 16:21:46 +02:00
Hugo Kiyodi Oshiro
af976c9a0b Plugins: Set isFullyInstalled false on plugin uninstall (#92503) 2024-08-28 09:50:48 +02:00
Jack Westbrook
892a50a3b7 Performance: Load shared frontend plugin dependencies on demand (#87644)
* feat(plugins): only load shared plugin dependencies when needed

* feat(plugins): add react-redux and fix up comments

* feat(plugins): attempt to load async deps in fe sandbox

* feat(frontend): defer script execution to prevent systemjs from loading app.js
2024-08-27 15:10:26 +02:00
Hugo Kiyodi Oshiro
0f24c89c91 Plugins: Add update all plugins feature (#92229) 2024-08-27 13:38:39 +02:00
Erik Sundell
b648ce3acf Plugin extensions: Introduce new registry for added components (#91877)
* add added component registry

* fix broken test

* add tests for usePluginComponents hook

* readd expose components

* add type assertion exceptions to betterer results

* use new addedComponent registry in legacy endpoints

* remove unused code

* cleanup

* revert test code

* remove commented code

* wrap in try catch

* pr feedback
2024-08-27 11:14:04 +02:00
Hugo Kiyodi Oshiro
a54ec2341c Plugins: Hide GetStartedWithDataSource when cloud plugin is not fully installed (#92402) 2024-08-27 10:14:40 +02:00
Andrew Hackmann
eac194815e MSSQL: decouple plugin (#89597)
* decouple from core

* yarn decouple

* make health check work and azure config

* f

* driver error not needed

* merge
2024-08-26 23:09:21 +03:00
Alex Khomenko
0af4a20b58 Routing: Import useLocation from compat package (#92071)
* Routing: Import useLocation from compat package

* Add ComparRouter

* Add CompatRouter

* Fix tests

* Add CompatRouter to TestProvider

* Use findBy

* Remove AppChromeService

* Remove historyOptions

* Routing: Fix alerting/test utils issues from react compat router usage (#92127)

* Use render from test-utils

* Use compat router

* Convert more tests

---------

Co-authored-by: Tom Ratcliffe <tom.ratcliffe@grafana.com>
2024-08-23 09:54:13 +03:00
Erik Sundell
134467fc4a Plugin Extensions: Introduce new registry for exposed components (#91748)
* refactor app plugin internals

* add base registry and exposed components registry

* refactor usePluginComponent hook

* change type name

* fix hook

* remove comments

* fix broken tests

* add more tests

* remove link and component related changes

* use right id format

* add title prop

* remove comments

* rename registry

* make exportedComponentsConfigs required

* fix broken test

* cleanup tests

* fix prop name

* remove capability related code

* rename exported to exposed

* refactor(extensions): make registry types generic

* Update public/app/features/plugins/extensions/registry/ExportedComponentsRegistry.test.ts

Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>

* fix levitate error

---------

Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
2024-08-19 08:43:11 +02:00
Andres Martinez Gotor
44290ddf32 Adapt plugin page to preinstalled plugins (#91874) 2024-08-14 17:04:59 +02:00
Yulia Shanyrova
d1b0e70f8d Plugins: Remove cards and list display options functionality from plugin catalogue (#91840)
* remove displayMode functionality from plugin catalogue

* remove test for removed functionality

* fix linting
2024-08-14 10:24:10 +02:00
Yulia Shanyrova
8044cb50f1 Plugins: Plugin details right panel is added. All the details were moved from thee top to the right panel (#90325)
* PluginDetailsRight panel is added. All the details were moved from the top to the right panel

* Add feature toggle pluginsDetailsRightPanel,Fix build, fix review comments

* Fix the typo

Co-authored-by: Giuseppe Guerra <giuseppe.guerra@grafana.com>

* hasAccessToExplore

* changes after review, add translations

* fix betterer

* fix betterer

* fix css error

* fix betterer

* fix translation labels, fix position of the right panel

* fix the build

* add condition to show updatedAt for plugin details

* add test to check 2 new fields at plugin details right panel;

* change the gap and remove report abuse button from core plugins

* add more tests

---------

Co-authored-by: Giuseppe Guerra <giuseppe.guerra@grafana.com>
2024-08-13 11:55:30 +02:00
Hugo Kiyodi Oshiro
0c4e02ba14 Plugins: Add filters by update available (#91526) 2024-08-06 12:16:49 +02:00
Esteban Beltran
782b725d87 Plugins Catalog: Display Request data source and view roadmap links (#91175)
* Add roadmap links to connection tab

* move to its own component

* add roadmaplinks to the catalog browse page

* use trans for text

* Change TextLink to accept ReactNode

* use Space component

* Add translations
2024-07-31 13:12:16 +02:00
Will Browne
1b3fa8c47f Plugins: Hide version information when plugin is managed (#88065)
* first pass

* fixup

* fix linter issues

* fix API test

* update naming

* rework

* update var name

* empty check

* prettier

* fix test

* fix lint
2024-07-29 11:18:43 +01:00
Hugo Kiyodi Oshiro
5e3a5b355e Plugins: Disable install controls for provisioned plugin in cloud (#90479) 2024-07-24 08:36:15 +02:00
Vickie Chen
a1182b119e Chore: Remove deprecated layout components from Plugins Platform (#88523)
* Chore: Remove deprecated layout components from Plugins Platform

Resolves #86878

* Chore: Use `Box` instead of `div`
2024-07-23 14:16:26 +02:00
Ashley Harrison
334657e1cb Navigation: Move scroll behaviour to body (#89921)
* initial attempt at body scrolling

* fix login layout

* minor fixes

* "fix" some fixed position stuff

* remember scroll position in dashboard page

* fix unit tests

* expose chrome header height in runtime and fix connections sticky header

* fix panel edit in scenes

* fix unit tests

* make useChromeHeaderHeight backwards compatible, fix plugin details double scrollbar

* fix sticky behaviour in explore metrics

* handle when undefined

* deprecate scrollRef/scrollTop

* fix extra overflow on firefox
2024-07-17 13:48:47 +01:00
Ashley Harrison
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
Ashley Harrison
7d8afd9578 Tab: Improve accessible name (#89602)
* replace aria-label selector with data-testid

* fix unit tests

* fix e2e selectors

* fix last unit test

* fix e2e tests

* fix casing

* fix e2e test

* fix casing
2024-06-24 17:48:26 +01:00
Jack Westbrook
e5474511d8 Plugins: Introduce magic modules to fe sandbox loader (#89274)
* feat(fe-sandbox): introduce module and exports magic modules to executed plugin code

* refactor(fe-sandbox): rename module and exports vars for clarity
2024-06-21 11:35:02 +02:00
Levente Balogh
ebe42e1ada Plugins: Allow apps to expose components. Update the extensions API. (#87236)
* feat: introduce exposable components and update the public APIs

Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>

* tests: fix the tests for `usePluginComponent()`

I broke them when I wrapped the component with the PluginContextProvider which fetches the plugin metadata.

* fix: typo

---------

Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
2024-06-07 18:05:00 +02:00
Jack Westbrook
036c878843 Plugins: Improve frontend loader cache (#87488)
* do it

* set empty child version to parent version

* feat(plugins): use pluginId for loader cache keys

* feat(plugins): apply caching to all js and css files systemjs loads

* remove old code and add comment

* test(plugins): update systemjs hooks tests in line with better caching

* test(plugins): wip - comment out failing backend loader tests

* fix tests and improve comment

* Update public/app/features/plugins/loader/cache.test.ts

Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>

---------

Co-authored-by: Will Browne <will.browne@grafana.com>
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
2024-06-07 10:03:41 +02:00
Timur Olzhabayev
4761326568 Fix: Proper plugin logo loading depending on staging (#88247)
* making logos respect the staging

* making it work when served from subfolders

* fixing helper test
2024-05-27 10:26:30 +02:00
Ashley Harrison
82eb160f5c Chore: SCSS tidy up (#87956)
* more scss tidy up

* replace some scss
2024-05-16 11:20:29 +01:00
Jack Westbrook
f785a71aae Fix: Angular detection in plugin loader (#87323)
fix(plugins): make sure angular detection is passed to loader
2024-05-13 09:55:26 +02:00
Ashley Harrison
670960f70c Chore: Upgrade redux (#86877)
* update packages

* fix type errors

* upgrade redux toolkit as well

* don't need eslint-disable command

* remove comment

* fix unit tests

* call rtk query selector directly

* remove unnecessary checks
2024-05-10 14:28:51 +01:00
David Harris
a4d296559c Plugins: Catalog to show all plugins by default (#87168)
* update plugin install filter to show all by default

* make pretty

* remove aria-label on lock icon

* wip: attempt to fix overflow

* switch to stack, add aria label back for testing

* make pretty

* switch to TextLink

* remove learn more link from catalog

* add hover text

* docs: update plugin install to reflect state filter change

* Revert "docs: update plugin install to reflect state filter change"

This reverts commit 16222aee0b.
2024-05-07 16:48:09 +03:00
Ashley Harrison
1d6d5cc2cd Chore: improve typings (#87306)
* some fixes

* some more fixes

* some canvas fixes

* use removeProperty instead

* few more

* fixy fix

* undo changes to ticks for now
2024-05-03 17:21:37 +01:00
Gábor Farkas
d7ff3213f3 postgres: decouple the frontend-part (#87131) 2024-05-02 12:25:25 +02:00
Jack Westbrook
b5a084611f Fix: Always fetch plugin css with Systemjs (#87211)
* fix(plugins): fetch strategy should always be used for css/json/wasm/html

* refactor(plugins): prefer checking for js file type rather than list of other file types
2024-05-02 11:55:20 +02:00
Esteban Beltran
9f5ab38477 FE Sandbox: Fix innerHTML distortion causing issues with DOMPurify inner works (#87117)
* FE Sandbox: Fix innerHTML distortion causing issues with DOMPurify inner works

* Add a comment explaining the fix
2024-05-02 11:17:04 +02:00
Ashley Harrison
c151a97110 Chore: Enable no-unreduced-motion and fix errors (#86572)
* enable `no-unreduced-motion` in betterer

* move all animation calls inside handleReducedMotion

* fix violations + enable rule

* update rule README

* remove unnecessary transition from <Collapse>

* remove handleReducedMotion utility and add handleMotion to theme

* update to use new theme value

* handle Dropdown and IconButton

* handle AppChromeMenu and update lint message

* keep rotation at a reduced speed

* handle DashboardLoading
2024-04-29 13:12:36 +01:00
Gábor Farkas
500558bb72 mysql decouple frontend part (#86308)
* mysql decouple frontend part

* eslint "fix"

* package version update
2024-04-29 09:55:09 +02:00
Levente Balogh
17a3ec52b6 Plugin preloading: Fix performance measurement (#86855)
fix: measuring plugin preload performance
2024-04-24 15:37:22 +02:00
Jack Westbrook
fd1bf66d86 Plugins: Selectively load plugins using script tags (#85750)
* feat(plugins): introduce logic to selectively load fe plugins via script tags

* feat(plugins): extend cache to store isAngular flag. use isAngular in shouldFetch

* revert(plugins): remove unused prepareImport from SystemJSWithLoaderHooks type

* fix(plugins): cache[path] maybe undefined if not registered or invalidated

* Update public/app/features/plugins/plugin_loader.ts

Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>

---------

Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
2024-04-24 12:27:28 +02:00