Commit Graph
100 Commits
Author SHA1 Message Date
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
Jack Westbrook bcc7bd9dd3 VisualisationPicker: allow scrolling in Safari (#34717) 2021-05-26 11:45:50 +02:00
Jack Westbrook ad3b0b2272 PageToolbar: add bottom padding (#34602)
* fix(pagetoolbar): pad elements top and bottom to keep vertical align and wrapper padding

* fix(sidemenu): prevent mobile sidemenu squashing dashboard, vertically align mobile sidemenu icon

* fix(dashboardsettings): prevent subheader overlap

* fix(pagetoolbar): center align all toolbar elements vertically

* refactor(pagetoolbar): combine vertical paddings to bring back original padding values

* refactor: update padding values for components that use PageToolbar

* fix(playlists): update Empty cta link route to prevent 404

* test(dashboard): update snapshot
2021-05-26 10:49:39 +02:00
Jack Westbrook 68513b9a3f Chore: bump Acorn and Underscore (#34302) 2021-05-24 09:55:39 +02:00
Jack Westbrook 7580124d50 chore: update latest.json to v8-beta2 (#34504) 2021-05-20 15:53:16 +02:00
Jack Westbrook a7c5636948 Update _index.md (#34500) 2021-05-20 15:33:44 +02:00
Jack Westbrook 2be27c391b Plugin Catalog: clean up (#34274)
* chore(marketplace): remove view plugin page from plugin.json

* refactor(marketplace): replace usage of stylesFactory with useStyles2

* feat(catalog): remove image renderers from listings
2021-05-19 17:25:21 +02:00
Jack Westbrook 00253fe359 Dependencies: Remove duplicates from yarn.lock (#34124)
* build(yarn): run yarn-deduplicate on lock file

* chore(npm): clean up moment dependencies

* chore(npm): move dev dependencies out of dependencies

* chore(npm): bump moment-timezone to fix TS errors

* chore(npm): move dev dependencies to devDependencies in package.json
2021-05-17 14:18:54 +02:00
Jack Westbrook 7c9ac0f990 Annotations panel: Remove subpath from dashboard links (#34134)
* fix(annolistpanel): strip base from url to prevent subpath duplication

* fix(centrifuge): allow connections when served from subpath
2021-05-17 09:31:48 +02:00
Jack Westbrook fa7345dafa Docs: Remove extra character from release notes (#34057) 2021-05-13 15:16:56 +02:00
abdceb18da Plugins: introduce marketplace app (#33869)
* add uninstall flow

* add install flow

* small cleanup

* smaller-footprint solution

* cleanup + make bp start auto

* fix interface contract

* improve naming

* accept version arg

* ensure use of shared logger

* make installer a field

* add plugin decommissioning

* add basic error checking

* fix api docs

* making initialization idempotent

* add mutex

* fix comment

* fix test

* add test for decommission

* improve existing test

* add more test coverage

* more tests

* change test func to use read lock

* refactoring + adding test asserts

* improve purging old install flow

* improve dupe checking

* change log name

* skip over dupe scanned

* make test assertion more flexible

* remove trailing line

* fix pointer receiver name

* update comment

* add context to API

* add config flag

* add base http api test + fix update functionality

* simplify existing check

* clean up test

* refactor tests based on feedback

* add single quotes to errs

* use gcmp in tests + fix logo issue

* make plugin list testing more flexible

* address feedback

* fix API test

* fix linter

* undo preallocate

* Update docs/sources/administration/configuration.md

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

* Update docs/sources/administration/configuration.md

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

* Update docs/sources/administration/configuration.md

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

* fix linting issue in test

* add docs placeholder

* update install notes

* Update docs/sources/plugins/marketplace.md

Co-authored-by: Marcus Olsson <marcus.olsson@hey.com>

* update access wording

* add more placeholder docs

* add link to more info

* PR feedback - improved errors, refactor, lock fix

* improve err details

* propagate plugin version errors

* don't autostart renderer

* add H1

* fix imports

* feat(bundled-plugins): introduce marketplace-app to the repo

* chore(marketplace-app): remove backend

* feat(marketplace): nav is only visible to admins

* feat(marketplace): use gnet api

* refactor(marketplace): move styles to theme2 move card concerns to card component

* feat(marketplace): introduce loaders, clean up styles

* refactor(marketplace): wip - debugging for api endpoints

* feat(grafana-ui): introduce height prop to Layout components

* refactor(marketplace): clean up org details component

* fix(marketplace): display search results without active filters

* refactor(marketplace): use grafana api for install/uninstall

* refactor(marketplace): remove pluginDir

* feat(marketplace): clean up Library page

* fix(plugins): get panel plugins from meta for newly installed plugins

* fix(marketplace): fix multiple renders of InstallControls when installing/uninstalling plugins

* refactor(marketplace): componentise the loader

* chore(marketplace): remove unsigned plugins option

* refactor(marketplace): remove includeUnsigned from codebase

* refactor(marketplace): prefer useStyles over useTheme

* docs(marketplace): remove changelog and update readme

* Apply suggestions from code review

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

* refactor(marketplace): prefer module over class for api

* refactor(marketplace): move updatePlugin to api

* refactor(marketplace): add PluginMeta to api to please TS

* feat(marketplace): always include pre-release in semver check

* chore(marketplace): remove redundant arch install code. backend handles it now

* feat(marketplace): add a link to browse page if library is empty

* refactor(marketplace): replace status with isLoading boolean for hooks

* refactor(marketplace): clean up async functions in InstallControls

* fix(marketplace): setInstalled false on successful uninstall

* include marketplace in bundled plugin test

Co-authored-by: Will Browne <will.browne@grafana.com>
Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
Co-authored-by: Marcus Olsson <marcus.olsson@hey.com>
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2021-05-12 21:07:37 +02:00
Jack Westbrook e13f15f646 Docs: reduce number of API Extractor warnings 2021-05-11 18:47:34 +02:00
Jack Westbrook 7df591442e Docs: fix grafana/ui docsExtract REF_NOT_FOUND errors (#33905)
* fix(grafana-ui): re-export commonOptionsBuilder namespace for api-extractor to work

* docs(grafana-ui): add docblock annotations for exported interfaces

* docs(grafana-ui): export ScaleDistribution from uplot
2021-05-11 14:45:46 +02:00
Jack Westbrook 34d81b7d13 Piechart: add e2e test (#33737) 2021-05-05 14:02:55 +02:00
Jack Westbrook 7f63efb941 Routing: refresh plugin module when pluginId changes (#33579)
* fix(approotpage): load plugin if pluginId changes so ui updates

* fix(approotpage): prevent dashboard search breaking for plugins without navmodel
2021-05-05 13:55:34 +02:00
Jack Westbrook a90e3084b1 Docs: share tooltip mode description between TimeSeries and PieChart (#33488)
* docs(tooltip): share tooltip mode docs between visualizations

* docs(tooltip-mode): replace mentions of graph with visualization
2021-05-04 16:09:26 -04:00
Jack Westbrook 907d7b71dc docs(piechart): refactor story to use controls (#33696) 2021-05-04 17:01:47 +02:00
Jack Westbrook 8f62e42554 Plugins: add level and signature badges to plugin details page (#33553)
* feat(grafana-ui): badge can accept react node for text, add shield-exclamation to icons

* feat(plugins): add PluginSignatureType type

* feat(pluginpage): introduce PluginSignatureDetailsBadge. Fix sidebar icon margin

* feat(pluginlistpage): update filterinput placeholder, introduce filter by plugin type
2021-04-30 11:00:41 +02:00
Jack Westbrook 0836e7bde8 IconButton: introduce variant for red and blue icon buttons (#33479)
* feat(iconbutton): introduce variant for red and blue icon buttons

* refactor(iconbutton): give variants breathing space in story

* docs(iconbutton): add docblock comment for variant prop

* refactor(iconbutton): prefer secondary to undefined variant prop and add default

* refactor(iconbutton): use icon color for hover
2021-04-29 10:47:06 +02:00
Jack Westbrook 249004ebef Pages: update react components to use v2 theme (#33413)
* chore: expose theme types / functions

* fix(grafana-ui): withTheme2 extends themeable2

* feat: migrate page components to use new theme

* refactor(pages): replace legacy form components with latest form components

* refactor(dashboardimport): update page component to use theme spacing

* refactor(alerting-ng): update page component to use v2 theme

* test(dashboardpage): update test for v2 theme

* test(apikeyspage): update test to select InlineSwitch component

* test(createteam): update snapshot

* refactor(playlist): update page components to use v2 theme

* refactor(page): put back classes on page-container and background colors
2021-04-28 16:05:00 +02:00
Jack WestbrookandTorkel Ödegaard 45fa5fdf48 Buttons: introduce buttonStyle prop (#33384)
* Wip

* Updates to colors to make secondary outline work

* refactor: prefer buttonStyle="text" over variant="link" for text buttons

* revert(button): put back mdx story page

* fix(button): variant link disabled as text disabled

* docs(button): remove link variant from stories

* feat(grafana-ui): introduce basic deprecation notice for button and linkbutton components

* docs(button): update usage of href with button and buttonlink

* feat(button): add grafana/ui to deprecation warning

* refactor(buttons): use a more descriptive name for prop warning function

* test(buttonrow): update snapshots

* refactor(buttons): change prop name from buttonStyle to fill

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2021-04-27 12:03:06 +02:00