From afbdfe7cb4540f1027050f46d93cccc093c6256c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Wed, 29 May 2019 09:37:29 +0200 Subject: [PATCH] NewDataSourcePage: Add Grafana Cloud link (#17324) * NewDataSource: adding initial grafana cloud link * Minor update * Updated --- .../datasources/NewDataSourcePage.tsx | 44 ++++++++++++++++--- public/sass/components/_add_data_source.scss | 4 ++ public/sass/components/_buttons.scss | 1 + 3 files changed, 44 insertions(+), 5 deletions(-) diff --git a/public/app/features/datasources/NewDataSourcePage.tsx b/public/app/features/datasources/NewDataSourcePage.tsx index 6420225f2af..bd16ba6e884 100644 --- a/public/app/features/datasources/NewDataSourcePage.tsx +++ b/public/app/features/datasources/NewDataSourcePage.tsx @@ -6,7 +6,7 @@ import { StoreState } from 'app/types'; import { addDataSource, loadDataSourceTypes, setDataSourceTypeSearchQuery } from './state/actions'; import { getDataSourceTypes } from './state/selectors'; import { FilterInput } from 'app/core/components/FilterInput/FilterInput'; -import { NavModel, DataSourcePluginMeta, List } from '@grafana/ui'; +import { NavModel, DataSourcePluginMeta, List, PluginType } from '@grafana/ui'; export interface Props { navModel: NavModel; @@ -43,6 +43,7 @@ class NewDataSourcePage extends PureComponent { loki: 90, mysql: 80, postgres: 79, + gcloud: -1, }; componentDidMount() { @@ -114,6 +115,8 @@ class NewDataSourcePage extends PureComponent { {} as DataSourceCategories ); + categories['cloud'].push(getGrafanaCloudPhantomPlugin()); + return ( <> {this.categoryInfoList.map(category => ( @@ -174,7 +177,9 @@ interface DataSourceTypeCardProps { } const DataSourceTypeCard: FC = props => { - const { plugin, onClick, onLearnMoreClick } = props; + const { plugin, onLearnMoreClick } = props; + const canSelect = plugin.id !== 'gcloud'; + const onClick = canSelect ? props.onClick : () => {}; // find first plugin info link const learnMoreLink = plugin.info.links && plugin.info.links.length > 0 ? plugin.info.links[0].url : null; @@ -188,16 +193,45 @@ const DataSourceTypeCard: FC = props => {
{learnMoreLink && ( - - Learn more + + Learn more )} - + {canSelect && }
); }; +function getGrafanaCloudPhantomPlugin(): DataSourcePluginMeta { + return { + id: 'gcloud', + name: 'Grafana Cloud', + type: PluginType.datasource, + module: '', + baseUrl: '', + info: { + description: 'Hosted Graphite, Prometheus and Loki', + logos: { small: 'public/img/grafana_icon.svg', large: 'asd' }, + author: { name: 'Grafana Labs' }, + links: [ + { + url: 'https://grafana.com/cloud', + name: 'Learn more', + }, + ], + screenshots: [], + updated: '2019-05-10', + version: '1.0.0', + }, + }; +} + export function getNavModel(): NavModel { const main = { icon: 'gicon gicon-add-datasources', diff --git a/public/sass/components/_add_data_source.scss b/public/sass/components/_add_data_source.scss index c14455d35c1..9e1bcb6ed77 100644 --- a/public/sass/components/_add_data_source.scss +++ b/public/sass/components/_add_data_source.scss @@ -77,6 +77,10 @@ } } +.add-datasource-item-actions__btn-icon { + margin-left: $space-sm; +} + .add-data-source-more { text-align: center; margin: $space-xl; diff --git a/public/sass/components/_buttons.scss b/public/sass/components/_buttons.scss index 1a9936bceab..254ac5906ab 100644 --- a/public/sass/components/_buttons.scss +++ b/public/sass/components/_buttons.scss @@ -70,6 +70,7 @@ @include button-size($btn-padding-y-lg, $space-lg, $font-size-lg, $border-radius-sm); font-weight: normal; height: $height-lg; + .gicon { //font-size: 31px; margin-right: $space-sm;