mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 17:59:23 -04:00
[SOM] Improve warning when trying to delete hidden objects (#111698)
* improve warning message when trying to delete hidden saved objects * improve message * fix pluralize * fix title
This commit is contained in:
parent
b9f3fceea5
commit
c78121ce5a
4 changed files with 88 additions and 9 deletions
|
@ -14,15 +14,21 @@ import { DeleteConfirmModal } from './delete_confirm_modal';
|
|||
|
||||
interface CreateObjectOptions {
|
||||
namespaces?: string[];
|
||||
hiddenType?: boolean;
|
||||
}
|
||||
|
||||
const createObject = ({ namespaces }: CreateObjectOptions = {}): SavedObjectWithMetadata => ({
|
||||
const createObject = ({
|
||||
namespaces,
|
||||
hiddenType = false,
|
||||
}: CreateObjectOptions = {}): SavedObjectWithMetadata => ({
|
||||
id: 'foo',
|
||||
type: 'bar',
|
||||
attributes: {},
|
||||
references: [],
|
||||
namespaces,
|
||||
meta: {},
|
||||
meta: {
|
||||
hiddenType,
|
||||
},
|
||||
});
|
||||
|
||||
describe('DeleteConfirmModal', () => {
|
||||
|
@ -81,7 +87,7 @@ describe('DeleteConfirmModal', () => {
|
|||
isDeleting={false}
|
||||
onConfirm={onConfirm}
|
||||
onCancel={onCancel}
|
||||
selectedObjects={[]}
|
||||
selectedObjects={[createObject()]}
|
||||
/>
|
||||
);
|
||||
wrapper.find('EuiButton').simulate('click');
|
||||
|
@ -90,6 +96,81 @@ describe('DeleteConfirmModal', () => {
|
|||
expect(onCancel).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
describe('when trying to delete hidden objects', () => {
|
||||
it('excludes the hidden objects from the table', () => {
|
||||
const objs = [
|
||||
createObject({ hiddenType: true }),
|
||||
createObject({ hiddenType: false }),
|
||||
createObject({ hiddenType: true }),
|
||||
];
|
||||
const wrapper = mountWithIntl(
|
||||
<DeleteConfirmModal
|
||||
isDeleting={false}
|
||||
onConfirm={onConfirm}
|
||||
onCancel={onCancel}
|
||||
selectedObjects={objs}
|
||||
/>
|
||||
);
|
||||
expect(wrapper.find('.euiTableRow')).toHaveLength(1);
|
||||
});
|
||||
|
||||
it('displays a callout when at least one object cannot be deleted', () => {
|
||||
const objs = [
|
||||
createObject({ hiddenType: false }),
|
||||
createObject({ hiddenType: false }),
|
||||
createObject({ hiddenType: true }),
|
||||
];
|
||||
const wrapper = mountWithIntl(
|
||||
<DeleteConfirmModal
|
||||
isDeleting={false}
|
||||
onConfirm={onConfirm}
|
||||
onCancel={onCancel}
|
||||
selectedObjects={objs}
|
||||
/>
|
||||
);
|
||||
|
||||
const callout = findTestSubject(wrapper, 'cannotDeleteObjectsConfirmWarning');
|
||||
expect(callout).toHaveLength(1);
|
||||
});
|
||||
|
||||
it('does not display a callout when all objects can be deleted', () => {
|
||||
const objs = [
|
||||
createObject({ hiddenType: false }),
|
||||
createObject({ hiddenType: false }),
|
||||
createObject({ hiddenType: false }),
|
||||
];
|
||||
const wrapper = mountWithIntl(
|
||||
<DeleteConfirmModal
|
||||
isDeleting={false}
|
||||
onConfirm={onConfirm}
|
||||
onCancel={onCancel}
|
||||
selectedObjects={objs}
|
||||
/>
|
||||
);
|
||||
|
||||
const callout = findTestSubject(wrapper, 'cannotDeleteObjectsConfirmWarning');
|
||||
expect(callout).toHaveLength(0);
|
||||
});
|
||||
|
||||
it('disable the submit button when all objects cannot be deleted', () => {
|
||||
const objs = [
|
||||
createObject({ hiddenType: true }),
|
||||
createObject({ hiddenType: true }),
|
||||
createObject({ hiddenType: true }),
|
||||
];
|
||||
const wrapper = mountWithIntl(
|
||||
<DeleteConfirmModal
|
||||
isDeleting={false}
|
||||
onConfirm={onConfirm}
|
||||
onCancel={onCancel}
|
||||
selectedObjects={objs}
|
||||
/>
|
||||
);
|
||||
|
||||
expect(wrapper.find('EuiButton').getDOMNode()).toBeDisabled();
|
||||
});
|
||||
});
|
||||
|
||||
describe('shared objects warning', () => {
|
||||
it('does not display a callout when no objects are shared', () => {
|
||||
const objs = [
|
||||
|
|
|
@ -86,7 +86,7 @@ export const DeleteConfirmModal: FC<DeleteConfirmModalProps> = ({
|
|||
title={
|
||||
<FormattedMessage
|
||||
id="savedObjectsManagement.objectsTable.deleteConfirmModal.cannotDeleteCallout.title"
|
||||
defaultMessage="Some objects cannot deleted"
|
||||
defaultMessage="Some objects cannot be deleted"
|
||||
/>
|
||||
}
|
||||
iconType="alert"
|
||||
|
@ -95,7 +95,8 @@ export const DeleteConfirmModal: FC<DeleteConfirmModalProps> = ({
|
|||
<p>
|
||||
<FormattedMessage
|
||||
id="savedObjectsManagement.objectsTable.deleteConfirmModal.cannotDeleteCallout.content"
|
||||
defaultMessage="Some of the selected objects cannot be deleted, and are not listed in the table summary"
|
||||
defaultMessage="{objectCount, plural, one {# object is} other {# objects are}} hidden and cannot be deleted. {objectCount, plural, one {It was} other {They were}} excluded from the table summary."
|
||||
values={{ objectCount: undeletableObjects.length }}
|
||||
/>
|
||||
</p>
|
||||
</EuiCallOut>
|
||||
|
@ -186,6 +187,7 @@ export const DeleteConfirmModal: FC<DeleteConfirmModalProps> = ({
|
|||
fill
|
||||
color="danger"
|
||||
onClick={onConfirm}
|
||||
disabled={deletableObjects.length === 0}
|
||||
data-test-subj="confirmModalConfirmButton"
|
||||
>
|
||||
<FormattedMessage
|
||||
|
|
|
@ -4389,8 +4389,6 @@
|
|||
"savedObjectsManagement.managementSectionLabel": "保存されたオブジェクト",
|
||||
"savedObjectsManagement.objects.savedObjectsDescription": "保存された検索、ビジュアライゼーション、ダッシュボードのインポート、エクスポート、管理を行います。",
|
||||
"savedObjectsManagement.objects.savedObjectsTitle": "保存されたオブジェクト",
|
||||
"savedObjectsManagement.objectsTable.deleteConfirmModal.cannotDeleteCallout.content": "一部の選択したオブジェクトは削除できません。テーブル概要の一覧には表示されません",
|
||||
"savedObjectsManagement.objectsTable.deleteConfirmModal.cannotDeleteCallout.title": "一部のオブジェクトを削除できません",
|
||||
"savedObjectsManagement.objectsTable.deleteConfirmModal.sharedObjectsCallout.content": "共有オブジェクトは属しているすべてのスペースから削除されます。",
|
||||
"savedObjectsManagement.objectsTable.deleteSavedObjectsConfirmModal.cancelButtonLabel": "キャンセル",
|
||||
"savedObjectsManagement.objectsTable.deleteSavedObjectsConfirmModal.idColumnName": "Id",
|
||||
|
|
|
@ -4430,8 +4430,6 @@
|
|||
"savedObjectsManagement.managementSectionLabel": "已保存对象",
|
||||
"savedObjectsManagement.objects.savedObjectsDescription": "导入、导出和管理您的已保存搜索、可视化和仪表板。",
|
||||
"savedObjectsManagement.objects.savedObjectsTitle": "已保存对象",
|
||||
"savedObjectsManagement.objectsTable.deleteConfirmModal.cannotDeleteCallout.content": "部分选定的对象无法删除,且不会列在表摘要中",
|
||||
"savedObjectsManagement.objectsTable.deleteConfirmModal.cannotDeleteCallout.title": "一些对象无法删除",
|
||||
"savedObjectsManagement.objectsTable.deleteConfirmModal.sharedObjectsCallout.content": "共享对象已从其所在的各个工作区中移除。",
|
||||
"savedObjectsManagement.objectsTable.deleteConfirmModal.sharedObjectsCallout.title": "{sharedObjectsCount, plural, one {# 个已保存对象已共享} other {您的已保存对象有 # 个已共享}}",
|
||||
"savedObjectsManagement.objectsTable.deleteSavedObjectsConfirmModal.cancelButtonLabel": "取消",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue