diff --git a/src/legacy/core_plugins/kibana/public/assets/illo_telemetry.png b/src/legacy/core_plugins/kibana/public/assets/illo_telemetry.png
new file mode 100644
index 0000000000000..d0d6dac59ab24
Binary files /dev/null and b/src/legacy/core_plugins/kibana/public/assets/illo_telemetry.png differ
diff --git a/src/legacy/core_plugins/kibana/public/home/components/__snapshots__/home.test.js.snap b/src/legacy/core_plugins/kibana/public/home/components/__snapshots__/home.test.js.snap
index 2331fdd559c91..0e73c0cbc93a5 100644
--- a/src/legacy/core_plugins/kibana/public/home/components/__snapshots__/home.test.js.snap
+++ b/src/legacy/core_plugins/kibana/public/home/components/__snapshots__/home.test.js.snap
@@ -1135,7 +1135,10 @@ exports[`home welcome should show the normal home page if welcome screen is disa
exports[`home welcome should show the welcome screen if enabled, and there are no index patterns defined 1`] = `
`;
diff --git a/src/legacy/core_plugins/kibana/public/home/components/_welcome.scss b/src/legacy/core_plugins/kibana/public/home/components/_welcome.scss
index 821fbe46b1404..d8c777534647b 100644
--- a/src/legacy/core_plugins/kibana/public/home/components/_welcome.scss
+++ b/src/legacy/core_plugins/kibana/public/home/components/_welcome.scss
@@ -1,6 +1,5 @@
-
.homWelcome {
- @include kibanaFullScreenGraphics;
+ @include kibanaFullScreenGraphics($euiZLevel6);
}
.homWelcome__header {
diff --git a/src/legacy/core_plugins/kibana/public/home/components/home.js b/src/legacy/core_plugins/kibana/public/home/components/home.js
index 3b7e2c0990c6f..76f15f797ed6c 100644
--- a/src/legacy/core_plugins/kibana/public/home/components/home.js
+++ b/src/legacy/core_plugins/kibana/public/home/components/home.js
@@ -225,6 +225,10 @@ export class Home extends Component {
);
}
@@ -247,6 +251,10 @@ export class Home extends Component {
Home.propTypes = {
addBasePath: PropTypes.func.isRequired,
+ fetchTelemetry: PropTypes.func.isRequired,
+ getTelemetryBannerId: PropTypes.func.isRequired,
+ setOptIn: PropTypes.func.isRequired,
+ shouldShowTelemetryOptIn: PropTypes.bool.isRequired,
directories: PropTypes.arrayOf(
PropTypes.shape({
id: PropTypes.string.isRequired,
diff --git a/src/legacy/core_plugins/kibana/public/home/components/home.test.js b/src/legacy/core_plugins/kibana/public/home/components/home.test.js
index c10aa3f0b1e32..aa520ba2ed5f9 100644
--- a/src/legacy/core_plugins/kibana/public/home/components/home.test.js
+++ b/src/legacy/core_plugins/kibana/public/home/components/home.test.js
@@ -17,30 +17,14 @@
* under the License.
*/
+import './home.test.mocks';
+
import React from 'react';
import sinon from 'sinon';
import { shallow } from 'enzyme';
import { Home } from './home';
import { FeatureCatalogueCategory } from 'ui/registry/feature_catalogue';
-jest.mock(
- 'ui/chrome',
- () => ({
- getBasePath: jest.fn(() => 'path'),
- getInjected: jest.fn(() => ''),
- }),
- { virtual: true }
-);
-
-jest.mock(
- 'ui/capabilities',
- () => ({
- catalogue: {},
- management: {},
- navLinks: {}
- })
-);
-
describe('home', () => {
let defaultProps;
@@ -50,6 +34,10 @@ describe('home', () => {
apmUiEnabled: true,
mlEnabled: true,
kibanaVersion: '99.2.1',
+ fetchTelemetry: jest.fn(),
+ getTelemetryBannerId: jest.fn(),
+ setOptIn: jest.fn(),
+ showTelemetryOptIn: false,
addBasePath(url) {
return `base_path/${url}`;
},
diff --git a/src/legacy/core_plugins/kibana/public/home/components/home.test.mocks.ts b/src/legacy/core_plugins/kibana/public/home/components/home.test.mocks.ts
new file mode 100644
index 0000000000000..1eed597a90a4b
--- /dev/null
+++ b/src/legacy/core_plugins/kibana/public/home/components/home.test.mocks.ts
@@ -0,0 +1,45 @@
+/*
+ * Licensed to Elasticsearch B.V. under one or more contributor
+ * license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright
+ * ownership. Elasticsearch B.V. licenses this file to you under
+ * the Apache License, Version 2.0 (the "License"); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import { notificationServiceMock } from '../../../../../../core/public/mocks';
+
+jest.doMock('ui/new_platform', () => {
+ return {
+ npSetup: {
+ core: {
+ notifications: notificationServiceMock.createSetupContract(),
+ },
+ },
+ };
+});
+
+jest.doMock(
+ 'ui/chrome',
+ () => ({
+ getBasePath: jest.fn(() => 'path'),
+ getInjected: jest.fn(() => ''),
+ }),
+ { virtual: true }
+);
+
+jest.doMock('ui/capabilities', () => ({
+ catalogue: {},
+ management: {},
+ navLinks: {},
+}));
diff --git a/src/legacy/core_plugins/kibana/public/home/components/home_app.js b/src/legacy/core_plugins/kibana/public/home/components/home_app.js
index fc24eeaa0f451..9aa44863f6d70 100644
--- a/src/legacy/core_plugins/kibana/public/home/components/home_app.js
+++ b/src/legacy/core_plugins/kibana/public/home/components/home_app.js
@@ -30,12 +30,10 @@ import {
} from 'react-router-dom';
import { getTutorial } from '../load_tutorials';
import { replaceTemplateStrings } from './tutorial/replace_template_strings';
+import { telemetryOptInProvider, shouldShowTelemetryOptIn } from '../kibana_services';
import chrome from 'ui/chrome';
-export function HomeApp({
- directories,
-}) {
-
+export function HomeApp({ directories }) {
const isCloudEnabled = chrome.getInjected('isCloudEnabled', false);
const apmUiEnabled = chrome.getInjected('apmUiEnabled', true);
const mlEnabled = chrome.getInjected('mlEnabled', false);
@@ -94,6 +92,10 @@ export function HomeApp({
find={savedObjectsClient.find}
localStorage={localStorage}
urlBasePath={chrome.getBasePath()}
+ shouldShowTelemetryOptIn={shouldShowTelemetryOptIn}
+ setOptIn={telemetryOptInProvider.setOptIn}
+ fetchTelemetry={telemetryOptInProvider.fetchExample}
+ getTelemetryBannerId={telemetryOptInProvider.getBannerId}
/>
diff --git a/src/legacy/core_plugins/kibana/public/home/components/sample_data/index.tsx b/src/legacy/core_plugins/kibana/public/home/components/sample_data/index.tsx
new file mode 100644
index 0000000000000..1bb8bd214d2cb
--- /dev/null
+++ b/src/legacy/core_plugins/kibana/public/home/components/sample_data/index.tsx
@@ -0,0 +1,71 @@
+/*
+ * Licensed to Elasticsearch B.V. under one or more contributor
+ * license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright
+ * ownership. Elasticsearch B.V. licenses this file to you under
+ * the Apache License, Version 2.0 (the "License"); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/*
+ * The UI and related logic for the welcome screen that *should* show only
+ * when it is enabled (the default) and there is no Kibana-consumed data
+ * in Elasticsearch.
+ */
+
+import React from 'react';
+import {
+ // @ts-ignore
+ EuiCard,
+ EuiButton,
+ EuiButtonEmpty,
+} from '@elastic/eui';
+
+import { FormattedMessage } from '@kbn/i18n/react';
+
+interface Props {
+ urlBasePath: string;
+ onDecline: () => void;
+ onConfirm: () => void;
+}
+
+export function SampleDataCard({ urlBasePath, onDecline, onConfirm }: Props) {
+ return (
+ }
+ description={
+
+ }
+ footer={
+
+ }
+ />
+ );
+}
diff --git a/src/legacy/core_plugins/kibana/public/home/components/telemetry_opt_in/index.ts b/src/legacy/core_plugins/kibana/public/home/components/telemetry_opt_in/index.ts
new file mode 100644
index 0000000000000..63636433bc00b
--- /dev/null
+++ b/src/legacy/core_plugins/kibana/public/home/components/telemetry_opt_in/index.ts
@@ -0,0 +1,23 @@
+/*
+ * Licensed to Elasticsearch B.V. under one or more contributor
+ * license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright
+ * ownership. Elasticsearch B.V. licenses this file to you under
+ * the Apache License, Version 2.0 (the "License"); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+import { renderTelemetryOptInCard, Props } from './telemetry_opt_in_card';
+
+export const TelemetryOptInCard = (props: Props) => {
+ return renderTelemetryOptInCard(props);
+};
diff --git a/src/legacy/core_plugins/kibana/public/home/components/telemetry_opt_in/opt_in_details_component.tsx b/src/legacy/core_plugins/kibana/public/home/components/telemetry_opt_in/opt_in_details_component.tsx
new file mode 100644
index 0000000000000..d90f54b2bcb54
--- /dev/null
+++ b/src/legacy/core_plugins/kibana/public/home/components/telemetry_opt_in/opt_in_details_component.tsx
@@ -0,0 +1,163 @@
+/*
+ * Licensed to Elasticsearch B.V. under one or more contributor
+ * license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright
+ * ownership. Elasticsearch B.V. licenses this file to you under
+ * the Apache License, Version 2.0 (the "License"); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import * as React from 'react';
+
+import {
+ EuiCallOut,
+ EuiCodeBlock,
+ EuiFlexGroup,
+ EuiFlexItem,
+ EuiFlyout,
+ EuiFlyoutHeader,
+ EuiFlyoutBody,
+ EuiLoadingSpinner,
+ EuiPortal, // EuiPortal is a temporary requirement to use EuiFlyout with "ownFocus"
+ EuiText,
+ EuiTextColor,
+ EuiTitle,
+} from '@elastic/eui';
+
+import { FormattedMessage } from '@kbn/i18n/react';
+
+interface Props {
+ fetchTelemetry: () => Promise;
+ onClose: () => void;
+}
+
+interface State {
+ isLoading: boolean;
+ hasPrivilegeToRead: boolean;
+ data: any[] | null;
+}
+
+/**
+ * React component for displaying the example data associated with the Telemetry opt-in banner.
+ */
+export class OptInExampleFlyout extends React.PureComponent {
+ public readonly state: State = {
+ data: null,
+ isLoading: true,
+ hasPrivilegeToRead: false,
+ };
+
+ componentDidMount() {
+ this.props
+ .fetchTelemetry()
+ .then(response =>
+ this.setState({
+ data: Array.isArray(response.data) ? response.data : null,
+ isLoading: false,
+ hasPrivilegeToRead: true,
+ })
+ )
+ .catch(err => {
+ this.setState({
+ isLoading: false,
+ hasPrivilegeToRead: err.status !== 403,
+ });
+ });
+ }
+
+ renderBody({ data, isLoading, hasPrivilegeToRead }: State) {
+ if (isLoading) {
+ return (
+
+
+
+
+
+ );
+ }
+
+ if (!hasPrivilegeToRead) {
+ return (
+
+ }
+ color="danger"
+ iconType="cross"
+ >
+
+
+ );
+ }
+
+ if (data === null) {
+ return (
+
+ }
+ color="danger"
+ iconType="cross"
+ >
+
+
+ );
+ }
+
+ return {JSON.stringify(data, null, 2)};
+ }
+
+ render() {
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {this.renderBody(this.state)}
+
+
+ );
+ }
+}
diff --git a/src/legacy/core_plugins/kibana/public/home/components/telemetry_opt_in/opt_in_message.tsx b/src/legacy/core_plugins/kibana/public/home/components/telemetry_opt_in/opt_in_message.tsx
new file mode 100644
index 0000000000000..0f581e819b052
--- /dev/null
+++ b/src/legacy/core_plugins/kibana/public/home/components/telemetry_opt_in/opt_in_message.tsx
@@ -0,0 +1,106 @@
+/*
+ * Licensed to Elasticsearch B.V. under one or more contributor
+ * license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright
+ * ownership. Elasticsearch B.V. licenses this file to you under
+ * the Apache License, Version 2.0 (the "License"); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import * as React from 'react';
+import { EuiLink } from '@elastic/eui';
+import { FormattedMessage } from '@kbn/i18n/react';
+import { OptInExampleFlyout } from './opt_in_details_component';
+
+interface Props {
+ fetchTelemetry: () => Promise;
+}
+
+interface State {
+ showDetails: boolean;
+ showExample: boolean;
+}
+
+export class OptInMessage extends React.PureComponent {
+ public readonly state: State = {
+ showDetails: false,
+ showExample: false,
+ };
+
+ toggleShowExample = () => {
+ this.setState(prevState => ({
+ showExample: !prevState.showExample,
+ }));
+ };
+
+ render() {
+ const { fetchTelemetry } = this.props;
+ const { showDetails, showExample } = this.state;
+
+ const getDetails = () => (
+
+
+
+ ),
+ telemetryPrivacyStatementLink: (
+
+
+
+ ),
+ }}
+ />
+ );
+
+ const getFlyoutDetails = () => (
+ this.setState({ showExample: false })}
+ fetchTelemetry={fetchTelemetry}
+ />
+ );
+
+ const getReadMore = () => (
+ this.setState({ showDetails: true })}>
+
+
+ );
+
+ return (
+
+ {' '}
+ {!showDetails && getReadMore()}
+ {showDetails && getDetails()}
+ {showDetails && showExample && getFlyoutDetails()}
+
+ );
+ }
+}
diff --git a/src/legacy/core_plugins/kibana/public/home/components/telemetry_opt_in/telemetry_opt_in_card.tsx b/src/legacy/core_plugins/kibana/public/home/components/telemetry_opt_in/telemetry_opt_in_card.tsx
new file mode 100644
index 0000000000000..5fa842291b028
--- /dev/null
+++ b/src/legacy/core_plugins/kibana/public/home/components/telemetry_opt_in/telemetry_opt_in_card.tsx
@@ -0,0 +1,81 @@
+/*
+ * Licensed to Elasticsearch B.V. under one or more contributor
+ * license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright
+ * ownership. Elasticsearch B.V. licenses this file to you under
+ * the Apache License, Version 2.0 (the "License"); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import React from 'react';
+import { FormattedMessage } from '@kbn/i18n/react';
+import {
+ // @ts-ignore
+ EuiCard,
+ EuiButton,
+} from '@elastic/eui';
+import { OptInMessage } from './opt_in_message';
+
+export interface Props {
+ urlBasePath: string;
+ onConfirm: () => void;
+ onDecline: () => void;
+ fetchTelemetry: () => Promise;
+}
+
+export function renderTelemetryOptInCard({
+ urlBasePath,
+ fetchTelemetry,
+ onConfirm,
+ onDecline,
+}: Props) {
+ return (
+
+ }
+ description={}
+ footer={
+
+ }
+ />
+ );
+}
diff --git a/src/legacy/core_plugins/kibana/public/home/components/welcome.js b/src/legacy/core_plugins/kibana/public/home/components/welcome.js
deleted file mode 100644
index 98560b748ec0d..0000000000000
--- a/src/legacy/core_plugins/kibana/public/home/components/welcome.js
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Licensed to Elasticsearch B.V. under one or more contributor
- * license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright
- * ownership. Elasticsearch B.V. licenses this file to you under
- * the Apache License, Version 2.0 (the "License"); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/*
- * The UI and related logic for the welcome screen that *should* show only
- * when it is enabled (the default) and there is no Kibana-consumed data
- * in Elasticsearch.
- */
-
-import React from 'react';
-import PropTypes from 'prop-types';
-import {
- EuiCard,
- EuiTitle,
- EuiSpacer,
- EuiFlexGroup,
- EuiFlexItem,
- EuiText,
- EuiIcon,
- EuiButton,
- EuiButtonEmpty,
- EuiPortal,
-} from '@elastic/eui';
-
-import { FormattedMessage } from '@kbn/i18n/react';
-
-/**
- * Shows a full-screen welcome page that gives helpful quick links to beginners.
- */
-export class Welcome extends React.Component {
- hideOnEsc = e => {
- if (e.key === 'Escape') {
- this.props.onSkip();
- }
- };
-
- componentDidMount() {
- document.addEventListener('keydown', this.hideOnEsc);
- }
-
- componentWillUnmount() {
- document.removeEventListener('keydown', this.hideOnEsc);
- }
-
- render() {
- const { urlBasePath, onSkip } = this.props;
-
- return (
-
-
+
+ );
+ }
+}
diff --git a/src/legacy/core_plugins/kibana/public/home/kibana_services.js b/src/legacy/core_plugins/kibana/public/home/kibana_services.js
index fc06a61ae343d..c5480e16491a9 100644
--- a/src/legacy/core_plugins/kibana/public/home/kibana_services.js
+++ b/src/legacy/core_plugins/kibana/public/home/kibana_services.js
@@ -18,9 +18,23 @@
*/
import { uiModules } from 'ui/modules';
+import { npStart } from 'ui/new_platform';
+import { createUiStatsReporter, METRIC_TYPE } from '../../../ui_metric/public';
+import { TelemetryOptInProvider } from './telemetry_opt_in';
export let indexPatternService;
+export let shouldShowTelemetryOptIn;
+export let telemetryOptInProvider;
+
+export const trackUiMetric = createUiStatsReporter('Kibana_home');
+export { METRIC_TYPE };
uiModules.get('kibana').run(($injector) => {
+ const telemetryEnabled = npStart.core.injectedMetadata.getInjectedVar('telemetryEnabled');
+ const telemetryBanner = npStart.core.injectedMetadata.getInjectedVar('telemetryBanner');
+ const Private = $injector.get('Private');
+
+ telemetryOptInProvider = Private(TelemetryOptInProvider);
+ shouldShowTelemetryOptIn = telemetryEnabled && telemetryBanner && !telemetryOptInProvider.getOptIn();
indexPatternService = $injector.get('indexPatterns');
});
diff --git a/x-pack/legacy/plugins/telemetry/public/services/telemetry_opt_in.js b/src/legacy/core_plugins/kibana/public/home/telemetry_opt_in.js
similarity index 52%
rename from x-pack/legacy/plugins/telemetry/public/services/telemetry_opt_in.js
rename to src/legacy/core_plugins/kibana/public/home/telemetry_opt_in.js
index 2fcd2012a1528..274820844da45 100644
--- a/x-pack/legacy/plugins/telemetry/public/services/telemetry_opt_in.js
+++ b/src/legacy/core_plugins/kibana/public/home/telemetry_opt_in.js
@@ -1,20 +1,37 @@
/*
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
- * or more contributor license agreements. Licensed under the Elastic License;
- * you may not use this file except in compliance with the Elastic License.
+ * Licensed to Elasticsearch B.V. under one or more contributor
+ * license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright
+ * ownership. Elasticsearch B.V. licenses this file to you under
+ * the Apache License, Version 2.0 (the "License"); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
*/
import moment from 'moment';
import { setCanTrackUiMetrics } from 'ui/ui_metric';
import { toastNotifications } from 'ui/notify';
+import { npStart } from 'ui/new_platform';
import { i18n } from '@kbn/i18n';
export function TelemetryOptInProvider($injector, chrome) {
- let currentOptInStatus = $injector.get('telemetryOptedIn');
- setCanTrackUiMetrics(currentOptInStatus);
+ let currentOptInStatus = npStart.core.injectedMetadata.getInjectedVar('telemetryOptedIn');
+ let bannerId = null;
+ setCanTrackUiMetrics(currentOptInStatus);
const provider = {
+ getBannerId: () => bannerId,
getOptIn: () => currentOptInStatus,
+ setBannerId(id) { bannerId = id; },
setOptIn: async (enabled) => {
setCanTrackUiMetrics(enabled);
const $http = $injector.get('$http');
@@ -24,10 +41,10 @@ export function TelemetryOptInProvider($injector, chrome) {
currentOptInStatus = enabled;
} catch (error) {
toastNotifications.addError(error, {
- title: i18n.translate('xpack.telemetry.optInErrorToastTitle', {
+ title: i18n.translate('kbn.home.telemetry.optInErrorToastTitle', {
defaultMessage: 'Error',
}),
- toastMessage: i18n.translate('xpack.telemetry.optInErrorToastText', {
+ toastMessage: i18n.translate('kbn.home.telemetry.optInErrorToastText', {
defaultMessage: 'An error occured while trying to set the usage statistics preference.',
}),
});
diff --git a/src/legacy/ui/public/styles/_mixins.scss b/src/legacy/ui/public/styles/_mixins.scss
index cb027ee684a17..ae529a4678d5d 100644
--- a/src/legacy/ui/public/styles/_mixins.scss
+++ b/src/legacy/ui/public/styles/_mixins.scss
@@ -55,13 +55,13 @@
}
}
-@mixin kibanaFullScreenGraphics() {
+@mixin kibanaFullScreenGraphics($euiZLevel: $euiZLevel9) {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
- z-index: $euiZLevel9 + 1000;
+ z-index: $euiZLevel + 1000;
background: inherit;
background-image: linear-gradient(0deg, $euiColorLightestShade 0%, $euiColorEmptyShade 100%);
opacity: 0;
diff --git a/x-pack/legacy/plugins/license_management/__jest__/__snapshots__/telemetry_opt_in.test.js.snap b/x-pack/legacy/plugins/license_management/__jest__/__snapshots__/telemetry_opt_in.test.js.snap
index e07d9144c01c5..642b8399ff6d1 100644
--- a/x-pack/legacy/plugins/license_management/__jest__/__snapshots__/telemetry_opt_in.test.js.snap
+++ b/x-pack/legacy/plugins/license_management/__jest__/__snapshots__/telemetry_opt_in.test.js.snap
@@ -104,277 +104,7 @@ exports[`TelemetryOptIn should display when telemetry not opted in 1`] = `
"timeZone": null,
}
}
->
-
-
-
-
-
-
- Help Elastic support provide better service
-
-