Commit Graph
100 Commits
Author SHA1 Message Date
Jack Westbrook 6a4906ef7e Grafana UI: Fix nonexistent indexof module for plugin tests (#50529)
* fix(grafana-ui): prevent module resolution failure where component-indexof appears as indexof

* chore(grafana-ui): update comment explaining need for alias plugin
2022-06-10 10:37:40 +02:00
Jack Westbrook ccd75d72f8 Chore: Remove react-testing-lib from bundles (#50442)
* refactor(selectoptiontest): move helper function out of grafana/ui so testing-lib isn't in bundle

* test(selectoptionintest): update import location of helper function

* test(amroutes): put back missing selectOptionInTest helper

* test(selectoptionintest): clean up remaining file imports / exports

* test(queryeditor): fix failing import

* refactor(grafana-ui): reuse selectOptionInTest in SelectBase test
2022-06-09 11:10:48 +02:00
Jack Westbrook 691a597f43 Plugins Catalog: Make tabs position consistent with other Grafana pages (#49997) 2022-06-03 10:01:14 +02:00
Jack Westbrook f4353bbbc4 Toolkit: Bump dependencies (#47826)
* chore(typescript): remove sanitize_url.d.ts in favour of npm package types

* chore(toolkit): bump all webpack related deps inline with grafana core

* refactor(toolkit): prefer webpack types and use from imports for bundling

* feat(toolkit): bundle plugins using webpack 5 and babel

* chore(toolkit): but all eslint deps inline with grafana core

* refactor(toolkit): rewrite linting step to use new eslint node api

* chore(toolkit): bump jest dependencies inline with grafana core

* refactor(toolkit): update jest config for jest 27

* fix(toolkit): resolve toolkit if using yarn berry

* docs(toolkit): update instructions for developing with yarn berry

* chore(toolkit): remove yarnlink code as won't work with yarn berry

* chore(toolkit): bump remaining dependencies

* chore(toolkit): remove unused core.start task

* feat(toolkit): use browserlist when building plugins

* chore(toolkit): add browserslist dependency

* refactor(toolkit): resolve style loaders, update postcss options for webpack5

* chore(toolkit): put back grafana/data and grafana/ui

* docs(toolkit): improve instructions for developing toolkit locally

* chore(toolkit): clean up webpack debug and warnings

* chore(input-datasource): remove pnpwebpack plugin and update browserslist to solve failing build

* chore(renovatebot): remove toolkit package.json from ignorePaths

* revert(renovate): put back toolkit package.json in ignorePaths

* feat(toolkit): introduce babel plugins

* refactor(toolkit): remove runtime automatic from preset-react for earlier versions of react

* refactor(toolkit): add missing fallbacks to webpack config

* fix(toolkit): remove spaces from copy webpack glob so files are copied

* refactor(toolkit): fix up babel typescript support and copy browserlist on build

* chore(yarn): refresh lock file

* revert(toolkit): remove browsers list so plugins compile to ES5

* revert(toolkit): remove copying .browserslistrc
2022-05-26 16:23:27 +02:00
Jack Westbrook 78bef7a26a Build: Enable long term caching for frontend assets (#47625)
* build(webpack): move CopyUniconsPlugin into own file

* chore(webpack): delete unused blobUrl and compile loaders

* build(webpack): prefer contenthash over fullhash for longer caching

* build(webpack): set optimization.moduleIds named only in dev

* build(webpack): introduce HTMLWebpackCSSChunks so templates can access theme css by name

* feat: inject css files with contenthash in html templates

* revert(error-template): remove ContentDeliveryURL from CSS href

* refactor(index-template): update grafanaBootData.themePaths

* chore(webpack): add typescript annotations for CopyUniconsPlugin
2022-05-26 11:49:18 +02:00
Jack Westbrook 39ee365b82 Swagger: Add integrity attributes (#48396) 2022-05-02 09:49:49 +02:00
Jack Westbrook 7341124b1e Chore: Update latest.json to 8.4.7 (#47956) 2022-04-20 15:52:38 +02:00
Jack Westbrook c3db3121b0 Chore: Bump moment to 2.29.2 (#47680)
* chore: bump moment to 2.29.2

* chore(yarn): clean up remaining moment nested deps
2022-04-13 14:46:58 +02:00
Jack Westbrook b8e3c77adb Chore: Bump minimist to 1.2.6 (#47401) 2022-04-13 09:52:51 +02:00
Jack Westbrook 398f2b3d18 Build: Fix failing recompile of Grafana packages (#47492)
* build(packages): remove incremental as cache fails to recompile

* build(packages): remove tsBuildInfoFile property from tsconfig files
2022-04-11 09:41:03 +02:00
Jack Westbrook a1ebcd520c Build: Remove redundant build_npm_packages_step (#47384) 2022-04-06 14:26:59 +02:00
Jack Westbrook 9a6fd8572a Build: Remove redundant NPM publishing code (#46425)
* chore(build): remove npm package:publishPrevious script and release-npm-packages.sh

* ci(drone): bump grabpl to v2.9.31
2022-04-06 10:48:00 +02:00
Jack Westbrook 30d0219de8 Chore: Remove deprecated @types/braintree__sanitize-url package (#47003) 2022-03-29 14:57:14 +02:00
Jack Westbrook a06329d988 Chore: Bump node-forge to 1.3.0 (#46953) 2022-03-25 15:22:59 +00:00
Jack Westbrook 36483eb6bf Chore: Remove prismjs@1.25.0 from yarn.lock (#46244) 2022-03-24 17:26:55 +01:00
Jack Westbrook 73ba04cda6 Build: Bump grabpl to 2.9.24 (#46420) 2022-03-11 11:05:41 +01:00
Jack Westbrook e2a283b6b9 Chore: Fix failing lerna publish commands (#46359) 2022-03-09 15:29:11 +01:00
Jack Westbrook 9b5a42845d Chore: Remove prettier-plugin from ESLint (#45910)
* chore(eslint): remove prettier-plugin

* chore(eslint): test changes by using grafana/eslint 3.0.0-alpha

* chore(prettier): add js,ts,tsx when checking / writing

* chore(prettier): dont check js files

* chore(linting): align prettier and eslint ignore files

* style: run prettier:write on FE codebase

* chore(eslint): use grafana/eslint-config@3.0.0
2022-03-04 10:49:50 +01:00
Jack Westbrook efe9eed758 Chore: Move Typescript cache file to root (#45964)
* chore(typescript): move TS cache file to root of repo

* chore(typescript): cache packages ts checks to disk for faster yarn typecheck
2022-03-04 09:26:25 +01:00
Jack Westbrook d0d5304662 Revert "Update dependency react-hook-form to v7.26.1" (#45761)
* Revert "Update dependency react-hook-form to v7.26.1 (#43670)"

This reverts commit 175891a5e3.

* chore(renovate): prevent bumping react-hook-form so plugins dont break
2022-02-23 12:22:45 +01:00
Jack WestbrookandMarcus Andersson 979907e9dd Chore: Set tsconfig target to ES6 (#44842)
* chore(tsconfig): update grafana/tsconfig to 1.2.0 for outputting es6

* rewrote the unsubscription part to use first().

* test: update failing tests to work with es6 output

* removed bug where we dispatch a promise instead of an array of ritch history.

Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
2022-02-10 14:37:39 +01:00
Jack Westbrook 8610b95e07 Chore: update yarn.lock (#45212) 2022-02-10 12:06:25 +01:00
Jack Westbrook b409811005 Toolkit: Bump react-dev-utils to 12.0.0 (#44696)
* chore: bump react-dev-utils due to vulnerbility reports

* chore(yarn): update checksum, remove react-dev-utils packageExtensions
2022-02-08 12:36:59 +01:00
Jack Westbrook f885c2ede9 Chore: Make detect breaking changes workflow backport compatible (#45005)
* fix(detect-breaking-changes): use the base.ref for backport compatibility

* chore(check-breaking-changes): update path to previous package dist directory
2022-02-08 11:33:33 +01:00
Jack Westbrook ed7552db79 Renovate: Separate storybook from monthly patches (#44373) 2022-01-24 12:44:36 +01:00
Jack Westbrook c8406baac2 Storybook: Bump to 6.4.13 (#44091)
* chore(storybook): bump to 6.4.13

* revert(yarnrc): put back double quotes

* chore(storybook): fix issues with resolving process

* revert(yarnrc): put back storybook packageExtensions

* refactor(storybook): move process resolution fix to function. update comments
2022-01-24 11:50:34 +01:00
Jack Westbrook 5b61273497 CI: Update breaking changes workflow to compare against main (#44097)
* ci(breaking-changes): split into separate builds for pr and main

* ci(breaking-changes): add path for npm install steps

* ci(breaking-changes): fix up workflow, update bash script
2022-01-20 10:20:32 +01:00
Jack Westbrookandachatterjee-grafana e888a40531 Plugins: Add notices to docs to prevent NPX commands from hanging (#44043)
* docs(plugins): add notice about npm 7 flag to prevent commands from hanging

* Apply suggestions from code review

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

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2022-01-17 15:58:36 +01:00
Jack Westbrook da75e4b910 Build: Publish canary packages to NPM registry (#42922)
* ci(packages): replace canary github publishing with npm registry

* chore(drone): refresh yaml config

* docs(packages): remove github package publish explanation
2021-12-13 09:50:19 +01:00
Jack Westbrook 36b0cb64fd Grafana Toolkit: Prevent installation of outdated FE dependencies (#42663) 2021-12-07 09:56:56 +01:00
Jack Westbrook 776d796bcb Grafana UI: Bump storybook to 6.4.4 (#42634)
* chore(storybook): bump dependencies to 6.4.4

* chore(yarn): update packageExtensions to match latest storybook

* fix(storybook): get webpack builds to pass

* fix(storybook): theme switching works in docs

* fix(storybook): use text logo so accessibility link doesnt break layout
2021-12-06 11:15:53 +01:00
Jack Westbrook b8c5ac63b1 Grafana UI: Prevent mandatory css prop in bundled types (#42216) 2021-11-24 14:35:06 +01:00
Jack Westbrook 694600ed04 Catalog: Provide default tab fallback in Plugin Details page (#41979)
* feat(catalog): introduce defaultTab to usePluginDetailsTabs hook

* feat(catalog): use defaultTab as fallback tab for PluginDetails

* chore(catalog): remove hardcoded page query param in list items

* refactor(catalog): prefer let over react ref when setting default tab in PluginDetails

* refactor(catalog): pass pageId to plugin details body rather than duplicate logic

* test(catalog): remove query param from List item test hrefs

* test(catalog): introduce a test for default app config page for installed app plugins
2021-11-23 15:38:08 +01:00
Jack Westbrook 8b3725b9f2 Chore: Bump versions to 8.4.0-pre (#42116) 2021-11-23 11:23:02 +01:00
3c3cf2eee9 Plugins Catalog: Install and show the latest compatible version of a plugin (#41003)
* fix(catalog): prefer rendering installed version over latest version

* feat(catalog): signify installed version in version history

* feat(catalog): introduce installedVersion and latestVersion

* refactor(catalog): use latestVersion for installation, simplify plugindetails header logic

* refactor(catalog): clean up installedVersion and latestVersion

* feat(catalog): use table-layout so versions list table has consistent column widths

* test(catalog): update failing tests

* removed the need of having a latest version in the plugin catalog type root level.

* fixed flaky test depending on what locale it was being running with.

* added missing test to verify version for a remote plugin.

* fixed version in header.

* preventing the UI from break if no versions are available.

* fixed failing test due to missing mock data.

* added todo as a reminder.

* refactor(catalog): prefer grafana plugin icons over gcom notfound images

* refactor(Plugins/Admin): change constant name

* refactor(Plugins/Admin): add comment to make condition easier to understand

* chore: update go modules

* feat(Backend/Plugins): add "dependencies" field to `PluginListItem`

* feat(Plugins/Admin): show the grafana dependency for the installed version

* refactor(Plugins/Admin): use the local version of links

* refactor(Plugins/Admin): prefer the local version for `.type`

* refactor(Plugins/ADmin): prefer the local `.description` field

* fix(Plugins/Admin): fix tests

* test(plugins/api): update the expected response for the `api/plugins` tests

* chore(Plugins/Admin): add todo comments to check preferation of remote/local values

* feat(backend/api): always send the grafana version as a header when proxying to GCOM

* feat(plugins/admin): use the `isCompatible` flag to get the latest compatible version

* feat(plugins/admin): show the latest compatible version in the versions list

* fix(plugins/admin): show the grafana dependency for the latest compatible version

* fix(plugins/admin): update the version list when installing/uninstalling a plugin

* test(plugins/admin): add some test-cases for the latest-compatible-version

* fix(plugins/admin): show the grafana dependency for the installed version (if installed)

* feat(plugins/backend): add the `dependencies.grafanaDependency` property to the plugin object

* test(plugins/backend): fix tests by adjusting expected response json

Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
2021-11-12 11:07:12 +01:00
Jack Westbrook 5fad5511e9 Build: Enable persistent cache for faster Webpack builds (#41430)
* build(webpack): enable caching for development and production builds

* build(webpack): introduce unminified production build script

* build(typescript): introduce incremental flag to cache typechecking

* chore(git): ignore typescript cache file

* chore(webpack): bump dependencies to latest
2021-11-11 14:32:34 +01:00
Jack Westbrook c712c31721 Build: Use SWC to speed up Sass template builds (#41425)
* build(themes): use SWC to speed up template builds

* chore: remove superfluous dev deps
2021-11-11 14:03:53 +01:00
Jack Westbrook 8c98f24777 Chore: Fix failing frontend-metrics script (#41599) 2021-11-11 13:41:15 +01:00
Jack Westbrook cd5277befd Storybook: Fix decorator height (#41468)
* fix(storybook): make sure story background fills available height

* fix(storybook): add decorator to prevent badge filling all available height

* docs(badge): use centered story

* revert(badge): remove obsolete Meta typing
2021-11-10 10:51:10 +01:00
Jack Westbrook ab3ba4743d Chore: Bump prismjs from 1.24.0 to 1.25.0 in grafana/ui (#41310) 2021-11-04 15:30:34 +01:00
Jack Westbrook 1767e6aab6 Chore: bump Husky to v7 (#40797)
* chore: bump husky to v7 according to husky migration guide

* chore(renovate): remove husky from list of ignored deps
2021-11-02 11:53:27 +01:00
Jack Westbrook f2f31f60f2 Chore: Bump rollup and rollup plugins to latest (#40800) 2021-11-02 11:10:32 +01:00
Jack Westbrook 5d98155b5f Plugins Catalog: Set external manage link to installation tab (#40994)
* feat(catalog): set external manage link to installation tab

* fix(catalog): use pluginCatalogURL when getting external manage link
2021-10-29 12:23:05 +02:00
Jack Westbrook 1e471a6f76 Storybook: fix theme colors not updating (#40679) 2021-10-20 13:30:00 +02:00
Jack Westbrook 6e2237c02f Chore: Replace Sass-lint with Stylelint (#40617)
* chore(sass): introduce stylelint

* chore(sass): introduce stylelint config that closely matches sass-lint config

* chore: remove sass-lint from codebase

* style(theme): disable stylelint string-quotes rule

* chore(sass): introduce stylelint-prettier-config to prevent config conflicts

* chore: delete sass-lint file

* style(sass): fix remaining stylelint errors
2021-10-20 11:34:24 +02:00
Jack Westbrook 084a9b7d1a Chore: Fix frontend metrics (#40325)
* build(yarn): add yarn-outdated plugin for checking outdated dependencies

* refactor(frontend-metrics): update dep and vulnerablity commands to work with yarn berry

* feat(frontend-metrics): introduce critical vulnerabilities count

* feat(frontend-metrics): echo out critical vulnerabilities
2021-10-12 15:45:03 +02:00
Jack Westbrook fa03d2ae6a Chore: Bump Webpack dependencies (#40272)
* feat(yarn): introduce plugin-interactive-tools

* chore(webpack): bump webpack and loaders / plugins to latest
2021-10-12 11:04:36 +02:00
Jack Westbrook 7cf3c84c92 Datasources: Fix deletion of datasource if plugin cannot be found (#40095)
* fix(pluginsettings): reject with error so datasource plugin loading failures still render ui

* feat(pluginpage): handle plugin loading error

* refactor(datasources): separate out datasource and meta loading so store has info for deletion

* fix(datasourcesettings): introduce loading flag to wait for datasource and meta loading

* test(datasourcesettings): fix failing test

* test(datasources): assert loading status of datasource settings

* test(datasources): update action tests for latest changes
2021-10-08 12:31:43 +02:00
Jack Westbrook cc7f7e30e9 Plugins: Mock Icon component to prevent console errors (#39901)
* feat(grafana-ui): externalise react-inlinesvg for mocking

* feat(grafana-toolkit): mock react-inlinesvg to prevent svg fetch errors in tests

* test(toolkit): remove assertion on array length of moduleNameMapper overrides

* feat(toolkit): set testId to match the Icon name prop in react-inlinesvg mock
2021-10-01 15:07:22 +02:00
fffcee7c1f Plugin Catalog: support Grafana instances that cannot communicate with gcom (#39638)
* added possibility to track if remote plugins could be fetched.

* adding hook to detect if remote plugins are available.

* feat(catalog): disable installed/all filter if remote plugins are unavailable

* feat(Plugins/Admin): hide the install controls if GCOM is not available

* refactor(Plugins/Admin): group `@grafana` dependencies

* fix(Plugins/Admin): don't show an error alert if a remote plugin is not available

* feat(Plugins/Admin): prefer to use the local version of the readme

* chore(Plugins/Admin): type the mocked state properly

* test(Plugins/Admin): add tests for the Plugin Details when GCOM is not available

* test(Plugins/Admin): add tests for the Browse when GCOM is not available

Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
2021-09-28 16:46:29 +02:00
Jack Westbrook 6eceb69d43 Plugins Catalog: Remove notice asking user to refresh browser (#39592) 2021-09-27 18:07:31 +02:00
Jack Westbrook 4dc556445c Plugin Catalog: Use routing for PluginDetails Tabs (#39555)
* feat(catalog): introduce id and href to PluginDetailsTabs

* feat(catalog): add hrefs and ids to PluginDetails tabs. Pass queryParams to PluginDetailsBody

* feat(catalog): pass queryParams to PluginsDetailsBody and add page param to PluginListCard

* fix(catalog): prevent flicker of content by waiting for fetch details to finish loading

* feat(catalog): add tab icons to PluginDetails page

* feat(catalog): make breadcrumbs in PluginDetailsHeader aware of page queryparam

* fix(catalog): fix deeplinking to PluginDetails by comparing tabs length

* test(catalog): update tests with correct props and wrap in router
2021-09-27 18:06:47 +02:00
Jack Westbrook 4a11d0dab9 Plugins Catalog: Fix a11y issues (#39407)
* refactor(catalog): fix a11y issues in Browse and PluginListCard

* test(catalog): fix failing PluginListCard tests
2021-09-20 14:47:18 +02:00
Jack Westbrook c9620b2202 Catalog: Add update text to PluginListCard (#39087)
* feat(catalog): add update info to PluginListCard

* refactor(catalog): use IconName enum and minor styling changes to PluginHeaderDependencies

* fix(catalog): add a semver range to grafanaVersion for dependency checks in InstallControls
2021-09-10 17:17:57 +02:00
Jack Westbrook a4e253bcf9 Fix: Prevent yarn start exiting early on TS errors (#38777) 2021-09-01 12:31:50 +02:00
Jack Westbrook 56f61001a8 Chore: Bump Lerna to v4 (#38751) 2021-09-01 11:00:09 +02:00
Jack Westbrook fec50115b0 Chore: Bump dangerously-set-html-content to 1.0.9 (#38622) 2021-08-31 14:10:56 +02:00
Jack WestbrookandTorkel Ödegaard 8d3b31ff23 Build: Upgrade Webpack 5 (#36444)
* build(webpack): bump to v5 and successful yarn start compilation

* build(webpack): update postcss dependencies

* build(webpack): silence warnings about hash renamed to fullhash

* build(webpack): enable persistent cache to store generated webpack modules / chunks

* build(webpack): prefer eslintWebpackPlugin over tschecker so eslint doesn't block typechecking

* chore(yarn): run yarn-deduplicate to clean up dependencies

* chore(yarn): refresh lock file after clean install

* build(webpack): prefer output.clean over CleanWebpackPlugin

* build(webpack): prefer esbuild over babel-loader for dev config

* build(babel): turn off cache compression to improve build performance

* build(webpack): get production builds working

* build(webpack): remove phantomJS (removed from grafana in v7) specific loader

* build(webpack): put back babel for dev builds no performance gain in using esbuild in webpack

* build(webpack): prefer terser and optimise css plugins for prod. slower but smaller bundles

* build(webpack): clean up redundant code. inform postcss about node_modules

* build(webpack): remove deprecation warnings flag

* build(webpack): bump packages, dev performance optimisations, attempt to get hot working

* chore(storybook): use webpack 5 for dev and production builds

* build(storybook): speed up dev build

* chore(yarn): refresh lock file

* chore(webpack): bump webpack and related deps to latest

* refactor(webpack): put back inline-source-map, move start scripts out of grafana toolkit

* feat(webpack): prefer react-refresh over react-hot-loader

* build(webpack): update webpack.hot to use react-refresh

* chore: remove react-hot-loader from codebase

* refactor(queryeditorrow): fix circular dependency causing react-fast-refresh errors

* revert(webpack): remove stats.errorDetails from common config

* build(webpack): bump to v5 and successful yarn start compilation

* build(webpack): update postcss dependencies

* build(webpack): silence warnings about hash renamed to fullhash

* build(webpack): enable persistent cache to store generated webpack modules / chunks

* build(webpack): prefer eslintWebpackPlugin over tschecker so eslint doesn't block typechecking

* chore(yarn): run yarn-deduplicate to clean up dependencies

* chore(yarn): refresh lock file after clean install

* build(webpack): prefer output.clean over CleanWebpackPlugin

* build(webpack): prefer esbuild over babel-loader for dev config

* build(babel): turn off cache compression to improve build performance

* build(webpack): get production builds working

* build(webpack): remove phantomJS (removed from grafana in v7) specific loader

* build(webpack): put back babel for dev builds no performance gain in using esbuild in webpack

* build(webpack): prefer terser and optimise css plugins for prod. slower but smaller bundles

* build(webpack): clean up redundant code. inform postcss about node_modules

* build(webpack): remove deprecation warnings flag

* build(webpack): bump packages, dev performance optimisations, attempt to get hot working

* chore(storybook): use webpack 5 for dev and production builds

* build(storybook): speed up dev build

* chore(yarn): refresh lock file

* chore(webpack): bump webpack and related deps to latest

* refactor(webpack): put back inline-source-map, move start scripts out of grafana toolkit

* feat(webpack): prefer react-refresh over react-hot-loader

* build(webpack): update webpack.hot to use react-refresh

* chore: remove react-hot-loader from codebase

* refactor(queryeditorrow): fix circular dependency causing react-fast-refresh errors

* revert(webpack): remove stats.errorDetails from common config

* revert(webpack): remove include from babel-loader so symlinks (enterprise) work as before

* refactor(webpack): fix deprecation warnings in prod builds

* fix(storybook): fix failing builds due to replacing css-optimise webpack plugin

* fix(storybook): use raw-loader for svg icons

* build(webpack): fix dev script colors error

* chore(webpack): bump css-loader and react-refresh-webpack-plugin to latest versions

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2021-08-31 12:55:05 +02:00
Jack Westbrook 5898824a48 Chore: Fix version format (#38649) 2021-08-27 18:12:37 +02:00
Jack Westbrook beeb8330c4 Chore: Update packages version to 8.2.0-pre (#38635)
* chore(packages): run packages:prepare script

* chore: update package.json version

* chore: put back semver compliant version
2021-08-27 17:01:19 +02:00
Jack WestbrookandLevente Balogh 2cb141d4ec Plugins: Refactor installation buttons component (#37642)
* refactor(catalog): split out installcontrols into multiple components

* test(catalog): update tests for plugindetails page

* refactor(catalog): rename installcontrols -> index

* refactor(catalog): remove redundant curlies

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

* tests(plugindetails): fix assertions and naming of tests

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

* refactor(installcontrols): prefer enum over duplicate union type, rename disabled prop

* refactor(installcontrols): use PluginStatus enum for installcontrols pluginStatus

* refactor(installcontrols): remove redundant curlies

Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
2021-08-26 17:15:43 +02:00
Jack Westbrook 5339275793 Grafana UI: Fix TS error property css is missing in type (#38078) 2021-08-26 16:00:52 +02:00
Jack Westbrook bafe16368a Chore: Migrate CustomScrollbar to react-custom-scrollbars-2 (#38013) 2021-08-23 09:28:58 +02:00
Jack Westbrook d9a2dd8a4b Chore: Align enzyme dependencies in root and jaeger workspace (#38006)
* chore: align enzyme dependencies in root and jaeger workspace

* chore(yarn): refresh lock file
2021-08-20 12:54:29 +02:00
Jack Westbrook 5ff3b7bf3f Chore: Bump storybook to 6.3.7 (#38008) 2021-08-20 11:40:20 +02:00
Jack WestbrookandDominik Prokop e988d9b56d Piechart: Update @visx dependencies to 2.1.0 and move to root package.json (#38000)
* chore: move visx dependencies to root package.json

* chore(piechart): bump visx dependencies to 2.1.0

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2021-08-19 14:49:09 +02:00
Jack Westbrook 552ecfeda3 Chore: Update NPM packages with react peer deps (#36598)
* chore: bump npm packages with react peer deps

* chore: bump rc-cascader to 1.4.3

* chore: bump react-table to 7.7.0

* chore: bump types packages

* refactor(buttoncascader): use CascaderValueType (fixes typescript errors)

* refactor(cascader): use CascaderValueType (fixes typescript errors)

* chore: bump rc-drawer to 4.4.0

* refactor(drawer): update component to match rc-drawer 4.4.0 api changes

* refactor(cascader): provide backwards compatibility for component apis

* chore(react-test-renderer): bump to match react 17.0.1

* fix(drawer): defer opening RcDrawer so animations play correctly

* chore: bump rc-cascader to 1.5.0
2021-08-18 11:23:34 +02:00
Jack Westbrook 483c597740 Storybook: Fix Graph with Tooltip story (#37937) 2021-08-17 10:14:57 +02:00
Jack Westbrook e0ca9585fe Build: bump fork-ts-checker-webpack-plugin to 6.3.1 (#37472) 2021-08-06 10:34:49 +02:00
Jack Westbrook 6ff599e25a Plugins: Fix plugin signature status (#37583) 2021-08-06 09:49:29 +02:00
Jack Westbrook e21ecf237b Catalog: Update enterprise license messaging in PluginDetails (#37547)
* feat(catalog): change messaging if enterprise license is missing and add link

* test(catalog): fix failing PluginDetails test
2021-08-04 17:55:03 +02:00
Jack Westbrook cc7c54be0e Plugins: Update Catalog Card UI (#37350)
* feat(catalog): lazy load and add alt text to plugin logos

* refactor(catalog): use plugin types, make sure data is available for new ui

* test(catalog): fix up tests after types refactor

* feat(catalog): introduce Tile and PluginBadge components for ui updates

* refactor(catalog): update PluginList to use new components, lazy load images, add creditcard icon

* test(catalog): update Browse.test types

* fix(catalog): if local and remote make sure to get the correct local plugin from array

* refactor(catalog): prefer grafana/ui components over custom Tile component

* chore(catalog): delete redundant components

* feat(catalog): introduce ascending descending name sort for Browse

* refactor(catalog): prefer theme spacing over hardcoded values

* refactor(catalog): update Local and Remote plugin types to match api responses

* fix(catalog): prefer local.hasUpdate and local.signature so updateable plugin signature is valid

* test(catalog): update test plugin mocks

* test(catalog): add tests for sorting and categorise

* test(catalog): add tests for plugin cards, remove grid component

* test(catalog): add tests for PluginBadges component

* refactor(catalog): change enterprise learn more link to open plugin page on website
2021-08-04 15:09:57 +02:00
Jack Westbrook 224b062cac Catalog: Fix InstallControls for externally managed users (#37531) 2021-08-04 13:52:01 +02:00
Jack WestbrookandWill Browne cdcccfcc53 Plugins: Fix catalog permissions for org and server admins (#37504)
* simplify toggle + add link to server admin

* feat(catalog): org admins can configure plugin apps, cannot install/uninstall plugins

* fix(catalog): dont show buttons if user doesn't have install permissions

* feat(catalog): cater for accessing catalog via /plugins and /admin/plugins

* feat(catalog): use location for list links and match.url to define breadcrumb links

* test(catalog): mock isGrafanaAdmin for PluginDetails tests

* test(catalog): preserve default bootdata in PluginDetails mock

* refactor(catalog): move orgAdmin check out of state and make easier to reason with

Co-authored-by: Will Browne <will.browne@grafana.com>
2021-08-04 11:49:05 +02:00
Jack WestbrookandRyan McKinley 9494c2cd4f Plugins: Add filter for plugin type and update search, filter and sort ui (#37301)
* feat(catalog): introduce additive filters for plugin type, installed status and search

* feat(catalog): prefer FilterInput over custom styled search field

* feat(catalog): update Browse page to use new search, filter features

* refactor(catalog): keep filters with usePluginsByFilter hook

* test(catalog): update tests to reflect new filtering and searching

* refactor(catalog): rearrange filterByType radio buttons

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>

* feat(catalog): ntroduce css for responsive filter layout

* refactor(catalog): introduce pluginfilter type and give filter methods better names

* fix(catalog): default q param to empty string so FiterInput doesn't show clear button on load

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2021-07-30 13:23:33 +02:00
Jack Westbrook 99891e1a88 Catalog: Add breadcrumb to plugin details page (#37095)
* feat(catalog): introduce a breadcrumb to plugindetails page

* refactor(catalog): use aria-labels and nav element for a11y breadcrumbs
2021-07-28 15:32:14 +02:00
Jack Westbrook 1d37d675d7 Plugins: Render app plugin config pages in catalog (#37063)
* feat(catalog): introduce PluginDetailsBody component and useLoadPluginConfig hook

* feat(catalog): use PluginDetailsBody and useLoadPluginConfig hook in PluginDetails

* feat(catalog): introduce usePluginDetails hook to handle PluginDetails state

* feat(catalog): wire usePluginDetails hook to PluginDetails and InstallControls

* refactor(catalog): fix typescript errors related to usePluginDetails hook

* chore(catalog): update types for PluginDetailsActions
2021-07-21 19:44:43 +02:00
Jack Westbrook e2c64ae228 Plugins: Prevent catalog from listing installed embedded plugins (#36675) 2021-07-16 12:33:56 +02:00
Jack Westbrook 75947da527 Chore: Update latest.json to 8.0.6 (#36805) 2021-07-15 16:13:18 +02:00
Jack Westbrook dcc6663801 Plugins: Don't show uninstall button for core plugins in catalog (#36671)
* fix(catalog): don't show un/install buttons if core plugin

* test(catalog): add PluginDetails test case for core plugins
2021-07-13 18:22:36 +02:00
Jack Westbrook b37c59c1b2 Chore: Sync lock file with package.json (#36667) 2021-07-13 14:23:08 +02:00
Jack Westbrook b23bfe1338 Dev: ignore vscode folder except launch.json (#36517) 2021-07-07 17:03:10 +02:00
Jack Westbrook d1da97b176 Bump babel to 7.14.x for typescript 4.3 support (#36465)
* chore(babel): bump packages to 7.14.x

* chore(babel): remove plugin-proposal-class-properties and plugin-proposal-private-methods

these plugins are now enabled by default in preset-env
2021-07-07 10:43:17 +02:00
Jack Westbrook d2f18f8b7d chore: update latest.json to 8.0.4 (#36357) 2021-07-01 16:33:48 +02:00
Jack Westbrook 4434eeaf59 Profile: Fix failing FE reducer test (#36331) 2021-07-01 09:58:49 +02:00
Jack Westbrook 90894a3474 CI: Depend on frontend build before triggering frontend metrics (#36253)
* ci(frontend-metrics): depend on build-frontend step to pass before publishing metrics

* ci(frontend-metrics): move frontend-metrics step so build-frontend occurs first
2021-06-29 10:29:34 +02:00
Jack WestbrookandHugo Häggmark 24aaeb58dc CI: Add dependency metrics (#35722)
* ci(frontend-metrics): introduce outdated and vulnerable dependency commands

* ci(frontend-metrics): get total built bundle size in kb

* ci(frontend-metrics): print total bundle folder size

* chore: fix spelling

* ci(frontend-metrics): easily count the total for vulnerabilities

Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>

* chore(frontend-metrics): fix for shellcheck to pass

* fix(frontend-metrics): capture each line of vulnerability audit output

* ci(frontend-metrics): fix commas in metrics output

* ci(frontend-metrics): call node modules directly as yarn returns exit code 2 in linux

Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
2021-06-29 09:29:26 +02:00
Jack Westbrook c56c1d73ed Chore: Update yarn.lock for underscore and caniusedb resolutions (#35950) 2021-06-18 16:31:35 +02:00
Jack Westbrook 0fea1cf970 PanelEdit: VisulizationPicker doesn't show if panel has an unknown panel plugin (#35831)
* feat(dashboard): introduce selector with fallback for unknown plugin

* refactor(dashboard): replace redux connect with redux hooks

* fix(dashboard): add a fallback for vizpicker when a panel plugin cannot be found

* feat(dashboard): add an icon for fallback plugins for vizpicker

* refactor(dashboard): prefer HOF selector
2021-06-17 15:18:05 +02:00
Jack Westbrook 8b2ee06f3c Routing: Remove subPath only at start of href (#35416)
* fix(routing): remove baseUrl only if at start of url

* test(routing): add subdirectory suburl tests for stripBaseFromUrl

* test(routing): add absolute url check to fix tests, add extra tests
2021-06-10 11:08:39 +02:00
Jack Westbrook 044acf727b Toolkit: Resolve external fonts when Grafana is served from a sub path(#35352) 2021-06-08 16:44:57 +02:00
Jack Westbrook 3bbe6473b6 feat(plugin-admin-app): show message prompting user to refresh browser when installing panel plugin (#35271) 2021-06-04 19:20:06 +02:00
Jack Westbrook c13f247a94 Card: Defend against conditional action buttons (#35204)
* fix(card): defend against invalid elements types passed to BaseActions

* test(card): add test to support conditional buttons being passed in

* fix(playlistpage): remove disabled prop from LinkButton for editors

* chore(playlistpage): remove title from edit button
2021-06-04 14:38:29 +02:00
Jack Westbrook 9df23b8fff Chore: Bump sanitize-url to 5.0.2 (#35088) 2021-06-03 10:05:55 +02:00
Jack Westbrook cb3c317e81 TimeSeries: Migration from old graph legend values (#34997)
* fix(timeseries): filter enabled graph legend values when migrating

* test(timeseries): update snapshots

* test(timeseries): add additional tests for legend
2021-06-01 09:49:19 +02:00
Jack Westbrook 8c93899b15 PluginsList Panel: Redirect to catalog app for updating plugins (#34893)
* feat(pluginlistpanel): if catalog app is enabled redirect user if plugin is upgradable

* refactor(catalog): update copy if plugin is disabled
2021-05-31 13:53:40 +02:00
Jack Westbrook fd028fd798 DashboardLinks: Fix dropdown positioning (#34909) 2021-05-31 09:01:12 +02:00
Jack Westbrook 8ced249c91 AddPanelWidget: Add padding to prevent top being cut off (#34806)
* fix(dashboardpage): add padding so add panel chrome isnt cut off

* fix(addpanelwidget): introduce wrapping element to cater for pulsate animation offset

* refactor(addpanelwidget): use spacing.xs rather than spacing.sm

* test(addpanelwidget): update snapshot
2021-05-27 15:28:09 +02:00
Jack Westbrook 6f652e39cb Catalog: set library as active tab when viewing (#34753) 2021-05-26 18:19:40 +02:00
Jack Westbrook 515c73d8e6 Transformations: Prevent FilterByValue transform crashing panel edit (#34747) 2021-05-26 17:30:34 +02:00