mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 01:38:56 -04:00
[Dashboard Navigation] GA Links Panel (#178999)
Closes https://github.com/elastic/kibana/issues/172075 Closes https://github.com/elastic/kibana/issues/178396 ## Summary In order to move the links panel into general availability, this PR does four main things: 1. It changes the default of the "Save to library" toggle in the flyout from `true` to `false` - this is in response to some early telemetry, which suggests that link panels **not** saved to the library are more common. | Before | After | |--------|--------| |  |  | 2. It fixes a styling issue in Serverless where the height of the secondary edit/add link flyout was incorrect. | Before | After | |--------|--------| |  |  | 3. It removes the lab setting for the links panel. The removal of this setting is **not** a breaking change - it is completely safe to remove this setting **regardless** of the previous value. Telemetry tracking for this setting is also no longer required. | Before | After | |--------|--------| |  |  | 4. It removes any reference to "Technical preview" or "Experimental" | Before | After | |--------|--------| |  |  | |  |  | ### Checklist - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios - [x] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server)) - [x] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) ### For maintainers - [ ] This was checked for breaking API changes and was [labeled appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)
This commit is contained in:
parent
80d831bb2a
commit
b9ab67ab13
13 changed files with 13 additions and 103 deletions
|
@ -515,10 +515,6 @@ export const stackManagementSchema: MakeSchemaFrom<UsageStats> = {
|
|||
type: 'boolean',
|
||||
_meta: { description: 'Non-default value of setting.' },
|
||||
},
|
||||
'labs:dashboard:linksPanel': {
|
||||
type: 'boolean',
|
||||
_meta: { description: 'Non-default value of setting.' },
|
||||
},
|
||||
'discover:showFieldStatistics': {
|
||||
type: 'boolean',
|
||||
_meta: { description: 'Non-default value of setting.' },
|
||||
|
|
|
@ -142,7 +142,6 @@ export interface UsageStats {
|
|||
'labs:canvas:useDataService': boolean;
|
||||
'labs:presentation:timeToPresent': boolean;
|
||||
'labs:dashboard:enable_ui': boolean;
|
||||
'labs:dashboard:linksPanel': boolean;
|
||||
'labs:dashboard:deferBelowFold': boolean;
|
||||
'discover:rowHeightOption': number;
|
||||
hideAnnouncements: boolean;
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
}
|
||||
|
||||
@mixin euiFlyout {
|
||||
@include kibanaFullBodyHeight();
|
||||
height: calc(100vh - var(--euiFixedHeadersOffset, 0));
|
||||
position: fixed;
|
||||
display: flex;
|
||||
inline-size: 50vw;
|
||||
|
|
|
@ -10,7 +10,6 @@ import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'
|
|||
import useMountedState from 'react-use/lib/useMountedState';
|
||||
|
||||
import {
|
||||
EuiBadge,
|
||||
EuiButton,
|
||||
EuiButtonEmpty,
|
||||
EuiButtonGroup,
|
||||
|
@ -28,7 +27,6 @@ import {
|
|||
EuiFormRow,
|
||||
EuiSwitch,
|
||||
EuiTitle,
|
||||
EuiToolTip,
|
||||
} from '@elastic/eui';
|
||||
import { DashboardContainer } from '@kbn/dashboard-plugin/public/dashboard_container';
|
||||
|
||||
|
@ -91,7 +89,7 @@ const LinksEditor = ({
|
|||
);
|
||||
const [isSaving, setIsSaving] = useState(false);
|
||||
const [orderedLinks, setOrderedLinks] = useState<Link[]>([]);
|
||||
const [saveByReference, setSaveByReference] = useState(!initialLinks ? true : isByReference);
|
||||
const [saveByReference, setSaveByReference] = useState(!initialLinks ? false : isByReference);
|
||||
|
||||
const isEditingExisting = initialLinks || isByReference;
|
||||
|
||||
|
@ -173,19 +171,6 @@ const LinksEditor = ({
|
|||
</h2>
|
||||
</EuiTitle>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem grow={false}>
|
||||
<EuiToolTip content={LinksStrings.editor.panelEditor.getTechnicalPreviewTooltip()}>
|
||||
{/* The EuiBadge needs an empty title to prevent the default tooltip */}
|
||||
<EuiBadge
|
||||
color="hollow"
|
||||
tabIndex={0}
|
||||
title=""
|
||||
aria-label={LinksStrings.editor.panelEditor.getTechnicalPreviewTooltip()}
|
||||
>
|
||||
{LinksStrings.editor.panelEditor.getTechnicalPreviewLabel()}
|
||||
</EuiBadge>
|
||||
</EuiToolTip>
|
||||
</EuiFlexItem>
|
||||
</EuiFlexGroup>
|
||||
</EuiFlyoutHeader>
|
||||
<EuiFlyoutBody>
|
||||
|
|
|
@ -37,15 +37,6 @@ export const LinksStrings = {
|
|||
defaultMessage: 'Close',
|
||||
}),
|
||||
panelEditor: {
|
||||
getTechnicalPreviewTooltip: () =>
|
||||
i18n.translate('links.panelEditor.technicalPreviewTooltip', {
|
||||
defaultMessage:
|
||||
'This functionality is in technical preview and may be changed or removed completely in a future release. Elastic will work to fix any issues, but features in technical preview are not subject to the support SLA of official GA features.',
|
||||
}),
|
||||
getTechnicalPreviewLabel: () =>
|
||||
i18n.translate('links.panelEditor.technicalPreviewLabel', {
|
||||
defaultMessage: 'Technical preview',
|
||||
}),
|
||||
getLinksTitle: () =>
|
||||
i18n.translate('links.panelEditor.linksTitle', {
|
||||
defaultMessage: 'Links',
|
||||
|
|
|
@ -26,11 +26,7 @@ import { LinksAttributes } from '../../common/content_management';
|
|||
import { extract, inject } from '../../common/embeddable';
|
||||
import { LinksStrings } from '../components/links_strings';
|
||||
import { getLinksAttributeService } from '../services/attribute_service';
|
||||
import {
|
||||
coreServices,
|
||||
presentationUtil,
|
||||
untilPluginStartServicesReady,
|
||||
} from '../services/kibana_services';
|
||||
import { coreServices, untilPluginStartServicesReady } from '../services/kibana_services';
|
||||
import type { LinksEmbeddable } from './links_embeddable';
|
||||
import { LinksByReferenceInput, LinksEditorFlyoutReturn, LinksInput } from './types';
|
||||
|
||||
|
@ -89,7 +85,7 @@ export class LinksFactoryDefinition
|
|||
}
|
||||
|
||||
public canCreateNew() {
|
||||
return presentationUtil.labsService.isProjectEnabled('labs:dashboard:linksPanel');
|
||||
return true;
|
||||
}
|
||||
|
||||
public getDefaultInput(): Partial<LinksInput> {
|
||||
|
|
|
@ -80,7 +80,7 @@ export class LinksPlugin
|
|||
title: APP_NAME,
|
||||
icon: APP_ICON,
|
||||
description: LinksStrings.getDescription(),
|
||||
stage: 'experimental',
|
||||
stage: 'production',
|
||||
appExtensions: {
|
||||
visualizations: {
|
||||
docTypes: [CONTENT_ID],
|
||||
|
@ -98,7 +98,7 @@ export class LinksPlugin
|
|||
updatedAt,
|
||||
icon: APP_ICON,
|
||||
typeTitle: APP_NAME,
|
||||
stage: 'experimental',
|
||||
stage: 'production',
|
||||
savedObjectType: type,
|
||||
};
|
||||
},
|
||||
|
|
|
@ -10,20 +10,12 @@ import { i18n } from '@kbn/i18n';
|
|||
|
||||
export const LABS_PROJECT_PREFIX = 'labs:';
|
||||
export const DEFER_BELOW_FOLD = `${LABS_PROJECT_PREFIX}dashboard:deferBelowFold` as const;
|
||||
export const DASHBOARD_LINKS_PANEL = `${LABS_PROJECT_PREFIX}dashboard:linksPanel` as const;
|
||||
export const BY_VALUE_EMBEDDABLE = `${LABS_PROJECT_PREFIX}canvas:byValueEmbeddable` as const;
|
||||
|
||||
export const projectIDs = [DEFER_BELOW_FOLD, BY_VALUE_EMBEDDABLE, DASHBOARD_LINKS_PANEL] as const;
|
||||
export const projectIDs = [DEFER_BELOW_FOLD, BY_VALUE_EMBEDDABLE] as const;
|
||||
export const environmentNames = ['kibana', 'browser', 'session'] as const;
|
||||
export const solutionNames = ['canvas', 'dashboard', 'presentation'] as const;
|
||||
|
||||
const technicalPreviewLabel = i18n.translate(
|
||||
'presentationUtil.advancedSettings.technicalPreviewLabel',
|
||||
{
|
||||
defaultMessage: 'technical preview',
|
||||
}
|
||||
);
|
||||
|
||||
/**
|
||||
* This is a list of active Labs Projects for the Presentation Team. It is the "source of truth" for all projects
|
||||
* provided to users of our solutions in Kibana.
|
||||
|
@ -43,23 +35,6 @@ export const projects: { [ID in ProjectID]: ProjectConfig & { id: ID } } = {
|
|||
}),
|
||||
solutions: ['dashboard'],
|
||||
},
|
||||
[DASHBOARD_LINKS_PANEL]: {
|
||||
id: DASHBOARD_LINKS_PANEL,
|
||||
isActive: true,
|
||||
isDisplayed: true,
|
||||
environments: ['kibana', 'browser', 'session'],
|
||||
name: i18n.translate('presentationUtil.labs.enableLinksPanelProjectName', {
|
||||
defaultMessage: 'Enable links panel',
|
||||
}),
|
||||
description: i18n.translate('presentationUtil.labs.enableLinksPanelProjectDescription', {
|
||||
defaultMessage:
|
||||
'{technicalPreviewLabel} Enables the links panel for dashboard, which allows dashboard authors to easily link dashboards together.',
|
||||
values: {
|
||||
technicalPreviewLabel: `<em>[${technicalPreviewLabel}]</em>`,
|
||||
},
|
||||
}),
|
||||
solutions: ['dashboard'],
|
||||
},
|
||||
[BY_VALUE_EMBEDDABLE]: {
|
||||
id: BY_VALUE_EMBEDDABLE,
|
||||
isActive: true,
|
||||
|
|
|
@ -10218,12 +10218,6 @@
|
|||
"description": "Non-default value of setting."
|
||||
}
|
||||
},
|
||||
"labs:dashboard:linksPanel": {
|
||||
"type": "boolean",
|
||||
"_meta": {
|
||||
"description": "Non-default value of setting."
|
||||
}
|
||||
},
|
||||
"discover:showFieldStatistics": {
|
||||
"type": "boolean",
|
||||
"_meta": {
|
||||
|
|
|
@ -17,17 +17,6 @@ export class DashboardPageLinks extends FtrService {
|
|||
private readonly testSubjects = this.ctx.getService('testSubjects');
|
||||
private readonly comboBox = this.ctx.getService('comboBox');
|
||||
|
||||
private readonly header = this.ctx.getPageObject('header');
|
||||
private readonly settings = this.ctx.getPageObject('settings');
|
||||
|
||||
public async toggleLinksLab(value?: boolean) {
|
||||
this.log.debug(`toggle the links lab setting to ${value}`);
|
||||
await this.header.clickStackManagement();
|
||||
await this.settings.clickKibanaSettings();
|
||||
|
||||
await this.settings.toggleAdvancedSettingCheckbox('labs:dashboard:linksPanel', value);
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------------
|
||||
Links panel
|
||||
----------------------------------------------------------- */
|
||||
|
|
|
@ -4915,8 +4915,6 @@
|
|||
"links.panelEditor.saveButtonLabel": "Enregistrer",
|
||||
"links.panelEditor.saveToLibrarySwitchLabel": "Enregistrer dans la bibliothèque",
|
||||
"links.panelEditor.saveToLibrarySwitchTooltip": "Enregistrer ce panneau de liens dans la bibliothèque afin de pouvoir l'ajouter facilement à d'autres tableaux de bord.",
|
||||
"links.panelEditor.technicalPreviewLabel": "Version d'évaluation technique",
|
||||
"links.panelEditor.technicalPreviewTooltip": "Cette fonctionnalité est en version d'évaluation technique et pourra être modifiée ou retirée complètement dans une future version. Elastic s'efforcera de corriger tout problème, mais les fonctionnalités des versions d'évaluation technique ne sont pas soumises aux SLA de support des fonctionnalités officielles en disponibilité générale.",
|
||||
"links.panelEditor.titleInputLabel": "Titre",
|
||||
"links.saveDuplicateRejectedDescription": "La confirmation d'enregistrement avec un doublon de titre a été rejetée.",
|
||||
"links.visTypeAlias.title": "Liens",
|
||||
|
@ -5277,8 +5275,6 @@
|
|||
"presentationUtil.labs.components.disabledStatusMessage": "Par défaut : {status}",
|
||||
"presentationUtil.labs.components.enabledStatusMessage": "Par défaut : {status}",
|
||||
"presentationUtil.labs.components.noProjectsinSolutionMessage": "Aucun atelier actuellement dans {solutionName}.",
|
||||
"presentationUtil.labs.enableLinksPanelProjectDescription": "{technicalPreviewLabel} Active le panneau de liens pour le tableau de bord, ce qui permet aux auteurs de tableaux de bord de les associer facilement entre eux.",
|
||||
"presentationUtil.advancedSettings.technicalPreviewLabel": "version d'évaluation technique",
|
||||
"presentationUtil.dashboardDrilldownConfig.components.openInNewTab": "Ouvrir le tableau de bord dans un nouvel onglet",
|
||||
"presentationUtil.dashboardDrilldownConfig.components.useCurrentDateRange": "Utiliser la plage de dates du tableau de bord d'origine",
|
||||
"presentationUtil.dashboardDrilldownConfig.components.useCurrentFiltersLabel": "Utiliser les filtres et la requête du tableau de bord d'origine",
|
||||
|
@ -5307,7 +5303,6 @@
|
|||
"presentationUtil.labs.enableByValueEmbeddableName": "Éléments d'incorporation By-Value",
|
||||
"presentationUtil.labs.enableDeferBelowFoldProjectDescription": "Les panneaux sous \"le pli\" (la zone masquée en dessous de la fenêtre accessible en faisant défiler), ne se chargeront pas immédiatement, mais seulement lorsqu'ils entreront dans la fenêtre d'affichage.",
|
||||
"presentationUtil.labs.enableDeferBelowFoldProjectName": "Différer le chargement des panneaux sous \"le pli\"",
|
||||
"presentationUtil.labs.enableLinksPanelProjectName": "Activer le panneau de liens",
|
||||
"presentationUtil.saveModalDashboard.addToDashboardLabel": "Ajouter au tableau de bord",
|
||||
"presentationUtil.saveModalDashboard.dashboardInfoTooltip": "Les éléments ajoutés à la bibliothèque Visualize sont disponibles pour tous les tableaux de bord. Les modifications apportées à un élément de bibliothèque sont répercutées partout où il est utilisé.",
|
||||
"presentationUtil.saveModalDashboard.existingDashboardOptionLabel": "Existant",
|
||||
|
|
|
@ -4909,8 +4909,6 @@
|
|||
"links.panelEditor.saveButtonLabel": "保存",
|
||||
"links.panelEditor.saveToLibrarySwitchLabel": "ライブラリに保存",
|
||||
"links.panelEditor.saveToLibrarySwitchTooltip": "このリンクパネルをライブラリに保存すると、他のダッシュボードに簡単に追加できます。",
|
||||
"links.panelEditor.technicalPreviewLabel": "テクニカルプレビュー",
|
||||
"links.panelEditor.technicalPreviewTooltip": "この機能はテクニカルプレビュー中であり、将来のリリースでは変更されたり完全に削除されたりする場合があります。Elasticはすべての問題の修正に努めますが、テクニカルプレビュー中の機能には正式なGA機能のサポートSLAが適用されません。",
|
||||
"links.panelEditor.titleInputLabel": "タイトル",
|
||||
"links.saveDuplicateRejectedDescription": "重複ファイルの保存確認が拒否されました",
|
||||
"links.visTypeAlias.title": "リンク",
|
||||
|
@ -5264,14 +5262,12 @@
|
|||
"presentationUtil.expressionInput.argReferenceAliasesDetail": "{BOLD_MD_TOKEN}エイリアス{BOLD_MD_TOKEN}: {aliases}",
|
||||
"presentationUtil.expressionInput.argReferenceDefaultDetail": "{BOLD_MD_TOKEN}Default{BOLD_MD_TOKEN}: {defaultVal}",
|
||||
"presentationUtil.expressionInput.argReferenceRequiredDetail": "{BOLD_MD_TOKEN}必須{BOLD_MD_TOKEN}:{required}",
|
||||
"presentationUtil.expressionInput.argReferenceTypesDetail": "{BOLD_MD_TOKEN}タイプ{BOLD_MD_TOKEN}: {types}",
|
||||
"presentationUtil.expressionInput.functionReferenceAccepts": "{BOLD_MD_TOKEN}承諾{BOLD_MD_TOKEN}:{acceptTypes}",
|
||||
"presentationUtil.expressionInput.functionReferenceReturns": "{BOLD_MD_TOKEN}返す{BOLD_MD_TOKEN}:{returnType}",
|
||||
"presentationUtil.labs.components.disabledStatusMessage": "デフォルト: {status}",
|
||||
"presentationUtil.labs.components.enabledStatusMessage": "デフォルト: {status}",
|
||||
"presentationUtil.labs.components.noProjectsinSolutionMessage": "現在{solutionName}にはラボがありません。",
|
||||
"presentationUtil.labs.enableLinksPanelProjectDescription": "{technicalPreviewLabel} ダッシュボードのリンクパネルを有効にすると、ダッシュボードの作成者がダッシュボードを簡単にリンクできるようになります。",
|
||||
"presentationUtil.advancedSettings.technicalPreviewLabel": "テクニカルプレビュー",
|
||||
"presentationUtil.expressionInput.argReferenceTypesDetail": "{BOLD_MD_TOKEN}タイプ{BOLD_MD_TOKEN}:{types}",
|
||||
"presentationUtil.expressionInput.functionReferenceAccepts": "{BOLD_MD_TOKEN}受け入れ{BOLD_MD_TOKEN}:{acceptTypes}",
|
||||
"presentationUtil.expressionInput.functionReferenceReturns": "{BOLD_MD_TOKEN}{BOLD_MD_TOKEN}を返します:{returnType}",
|
||||
"presentationUtil.labs.components.disabledStatusMessage": "デフォルト:{status}",
|
||||
"presentationUtil.labs.components.enabledStatusMessage": "デフォルト:{status}",
|
||||
"presentationUtil.labs.components.noProjectsinSolutionMessage": "現在{solutionName}にラボはありません。",
|
||||
"presentationUtil.dashboardDrilldownConfig.components.openInNewTab": "新しいタブでダッシュボードを開く",
|
||||
"presentationUtil.dashboardDrilldownConfig.components.useCurrentDateRange": "元のダッシュボードから日付範囲を使用",
|
||||
"presentationUtil.dashboardDrilldownConfig.components.useCurrentFiltersLabel": "元のダッシュボードからフィルターとクエリを使用",
|
||||
|
@ -5300,7 +5296,6 @@
|
|||
"presentationUtil.labs.enableByValueEmbeddableName": "By-Value埋め込み可能オブジェクト",
|
||||
"presentationUtil.labs.enableDeferBelowFoldProjectDescription": "「区切り」の下のすべてのパネル(ウィンドウ下部の下にある非表示の領域)はすぐに読み込まれません。ビューポートを入力するときにのみ読み込まれます",
|
||||
"presentationUtil.labs.enableDeferBelowFoldProjectName": "「区切り」の下のパネルの読み込みを延期",
|
||||
"presentationUtil.labs.enableLinksPanelProjectName": "リンクパネルを編集",
|
||||
"presentationUtil.saveModalDashboard.addToDashboardLabel": "ダッシュボードに追加",
|
||||
"presentationUtil.saveModalDashboard.dashboardInfoTooltip": "Visualizeライブラリに追加された項目はすべてのダッシュボードで使用できます。ライブラリ項目の編集は、使用されるすべての場所に表示されます。",
|
||||
"presentationUtil.saveModalDashboard.existingDashboardOptionLabel": "既存",
|
||||
|
|
|
@ -4918,8 +4918,6 @@
|
|||
"links.panelEditor.saveButtonLabel": "保存",
|
||||
"links.panelEditor.saveToLibrarySwitchLabel": "保存到库",
|
||||
"links.panelEditor.saveToLibrarySwitchTooltip": "将此链接面板保存到库中,以便将其轻松添加到其他仪表板。",
|
||||
"links.panelEditor.technicalPreviewLabel": "技术预览",
|
||||
"links.panelEditor.technicalPreviewTooltip": "此功能处于技术预览状态,在未来版本中可能会更改或完全移除。Elastic 将努力修复任何问题,但处于技术预览状态的功能不受正式 GA 功能支持 SLA 的约束。",
|
||||
"links.panelEditor.titleInputLabel": "标题",
|
||||
"links.saveDuplicateRejectedDescription": "已拒绝使用重复标题保存确认",
|
||||
"links.visTypeAlias.title": "链接",
|
||||
|
@ -5281,8 +5279,6 @@
|
|||
"presentationUtil.labs.components.disabledStatusMessage": "默认:{status}",
|
||||
"presentationUtil.labs.components.enabledStatusMessage": "默认:{status}",
|
||||
"presentationUtil.labs.components.noProjectsinSolutionMessage": "{solutionName} 中当前没有实验。",
|
||||
"presentationUtil.labs.enableLinksPanelProjectDescription": "{technicalPreviewLabel} 为仪表板启用链接面板,以便仪表板作者将仪表板轻松链接到一起。",
|
||||
"presentationUtil.advancedSettings.technicalPreviewLabel": "技术预览",
|
||||
"presentationUtil.dashboardDrilldownConfig.components.openInNewTab": "在新选项卡中打开仪表板",
|
||||
"presentationUtil.dashboardDrilldownConfig.components.useCurrentDateRange": "使用源仪表板的日期范围",
|
||||
"presentationUtil.dashboardDrilldownConfig.components.useCurrentFiltersLabel": "使用源仪表板的筛选和查询",
|
||||
|
@ -5311,7 +5307,6 @@
|
|||
"presentationUtil.labs.enableByValueEmbeddableName": "按值嵌入",
|
||||
"presentationUtil.labs.enableDeferBelowFoldProjectDescription": "“折叠”下的任何面板即可通过滚动访问的窗口底部隐藏的区域,将不会立即加载,而仅在进入视区时加载",
|
||||
"presentationUtil.labs.enableDeferBelowFoldProjectName": "推迟加载“折叠”下的面板",
|
||||
"presentationUtil.labs.enableLinksPanelProjectName": "启用链接面板",
|
||||
"presentationUtil.saveModalDashboard.addToDashboardLabel": "添加到仪表板",
|
||||
"presentationUtil.saveModalDashboard.dashboardInfoTooltip": "添加到 Visualize 库的项目可用于所有仪表板。对库项目的编辑将显示在使用位置。",
|
||||
"presentationUtil.saveModalDashboard.existingDashboardOptionLabel": "现有",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue