mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 17:59:23 -04:00
This commit is contained in:
parent
b55dcff952
commit
c26611792b
6 changed files with 129 additions and 17 deletions
|
@ -14,6 +14,9 @@ import {
|
|||
EuiText,
|
||||
EuiTextColor,
|
||||
EuiToolTip,
|
||||
EuiConfirmModal,
|
||||
EuiOverlayMask,
|
||||
EUI_MODAL_CONFIRM_BUTTON,
|
||||
} from '@elastic/eui';
|
||||
import moment from 'moment';
|
||||
import React from 'react';
|
||||
|
@ -29,21 +32,57 @@ const stateColor = {
|
|||
[RepoState.INDEXING]: 'primary',
|
||||
};
|
||||
|
||||
class CodeProjectItem extends React.PureComponent<{
|
||||
project: Repository;
|
||||
enableManagement: boolean;
|
||||
showStatus: boolean;
|
||||
status?: RepoStatus;
|
||||
deleteRepo?: (uri: string) => void;
|
||||
indexRepo?: (uri: string) => void;
|
||||
initRepoCommand?: (uri: string) => void;
|
||||
openSettings?: (uri: string, url: string) => void;
|
||||
}> {
|
||||
class CodeProjectItem extends React.PureComponent<
|
||||
{
|
||||
project: Repository;
|
||||
enableManagement: boolean;
|
||||
showStatus: boolean;
|
||||
status?: RepoStatus;
|
||||
deleteRepo?: (uri: string) => void;
|
||||
indexRepo?: (uri: string) => void;
|
||||
initRepoCommand?: (uri: string) => void;
|
||||
openSettings?: (uri: string, url: string) => void;
|
||||
},
|
||||
{ showReindexConfirmModal: boolean; showDeleteConfirmModal: boolean }
|
||||
> {
|
||||
state = {
|
||||
showDeleteConfirmModal: false,
|
||||
showReindexConfirmModal: false,
|
||||
};
|
||||
|
||||
openReindexModal = () => {
|
||||
this.setState({ showReindexConfirmModal: true });
|
||||
};
|
||||
|
||||
closeReindexModal = () => {
|
||||
this.setState({ showReindexConfirmModal: false });
|
||||
};
|
||||
|
||||
openDeleteModal = () => {
|
||||
this.setState({ showDeleteConfirmModal: true });
|
||||
};
|
||||
|
||||
closeDeleteModal = () => {
|
||||
this.setState({ showDeleteConfirmModal: false });
|
||||
};
|
||||
|
||||
confirmDelete = () => {
|
||||
if (this.props.deleteRepo) {
|
||||
this.props.deleteRepo(this.props.project.uri);
|
||||
this.closeDeleteModal();
|
||||
}
|
||||
};
|
||||
|
||||
confirmReindex = () => {
|
||||
if (this.props.indexRepo) {
|
||||
this.props.indexRepo(this.props.project.uri);
|
||||
this.closeReindexModal();
|
||||
}
|
||||
};
|
||||
|
||||
public render() {
|
||||
const { project, showStatus, status, enableManagement } = this.props;
|
||||
const { name, org, uri, url } = project;
|
||||
const onClickDelete = () => this.props.deleteRepo && this.props.deleteRepo(uri);
|
||||
const onClickIndex = () => this.props.indexRepo && this.props.indexRepo(uri);
|
||||
const onClickSettings = () => this.props.openSettings && this.props.openSettings(uri, url);
|
||||
let footer = null;
|
||||
let disableRepoLink = false;
|
||||
|
@ -131,14 +170,14 @@ class CodeProjectItem extends React.PureComponent<{
|
|||
className="codeButton__project"
|
||||
data-test-subj="indexRepositoryButton"
|
||||
tabIndex={0}
|
||||
onKeyPress={onClickIndex}
|
||||
onClick={onClickIndex}
|
||||
onKeyPress={this.openReindexModal}
|
||||
onClick={this.openReindexModal}
|
||||
role="button"
|
||||
style={{ visibility: indexVisibility }}
|
||||
>
|
||||
<EuiIcon type="indexSettings" />
|
||||
<EuiText size="xs" color="subdued">
|
||||
Index
|
||||
Reindex
|
||||
</EuiText>
|
||||
</div>
|
||||
</EuiFlexItem>
|
||||
|
@ -147,8 +186,8 @@ class CodeProjectItem extends React.PureComponent<{
|
|||
className="codeButton__project"
|
||||
data-test-subj="deleteRepositoryButton"
|
||||
tabIndex={0}
|
||||
onKeyPress={onClickDelete}
|
||||
onClick={onClickDelete}
|
||||
onKeyPress={this.openDeleteModal}
|
||||
onClick={this.openDeleteModal}
|
||||
role="button"
|
||||
style={{ visibility: deleteVisibility }}
|
||||
>
|
||||
|
@ -195,10 +234,43 @@ class CodeProjectItem extends React.PureComponent<{
|
|||
</EuiFlexItem>
|
||||
{enableManagement && projectManagement}
|
||||
</EuiFlexGroup>
|
||||
{this.state.showDeleteConfirmModal && this.renderDeleteConfirmModal()}
|
||||
{this.state.showReindexConfirmModal && this.renderReindexConfirmModal()}
|
||||
</EuiPanel>
|
||||
);
|
||||
}
|
||||
|
||||
renderReindexConfirmModal = () => {
|
||||
return (
|
||||
<EuiOverlayMask>
|
||||
<EuiConfirmModal
|
||||
title="Reindex this repository?"
|
||||
onCancel={this.closeReindexModal}
|
||||
onConfirm={this.confirmReindex}
|
||||
cancelButtonText="No, don't do it"
|
||||
confirmButtonText="Yes, do it"
|
||||
defaultFocusedButton={EUI_MODAL_CONFIRM_BUTTON}
|
||||
/>
|
||||
</EuiOverlayMask>
|
||||
);
|
||||
};
|
||||
|
||||
renderDeleteConfirmModal = () => {
|
||||
return (
|
||||
<EuiOverlayMask>
|
||||
<EuiConfirmModal
|
||||
title="Delete this repository?"
|
||||
onCancel={this.closeDeleteModal}
|
||||
onConfirm={this.confirmDelete}
|
||||
cancelButtonText="No, don't do it"
|
||||
confirmButtonText="Yes, do it"
|
||||
buttonColor="danger"
|
||||
defaultFocusedButton={EUI_MODAL_CONFIRM_BUTTON}
|
||||
/>
|
||||
</EuiOverlayMask>
|
||||
);
|
||||
};
|
||||
|
||||
private renderProgress() {
|
||||
const { status } = this.props;
|
||||
if (
|
||||
|
|
|
@ -117,6 +117,16 @@ export default function codeIntelligenceFunctionalTests({
|
|||
|
||||
// Clean up the imported repository
|
||||
await PageObjects.code.clickDeleteRepositoryButton();
|
||||
await retry.try(async () => {
|
||||
expect(await testSubjects.exists('confirmModalConfirmButton')).to.be(true);
|
||||
});
|
||||
|
||||
await testSubjects.click('confirmModalConfirmButton');
|
||||
|
||||
await retry.tryForTime(300000, async () => {
|
||||
const repositoryItems = await testSubjects.findAll(repositoryListSelector);
|
||||
expect(repositoryItems).to.have.length(0);
|
||||
});
|
||||
await retry.tryForTime(300000, async () => {
|
||||
const repositoryItems = await testSubjects.findAll(repositoryListSelector);
|
||||
expect(repositoryItems).to.have.length(0);
|
||||
|
|
|
@ -64,6 +64,13 @@ export default function exploreRepositoryFunctionalTests({
|
|||
|
||||
// Clean up the imported repository
|
||||
await PageObjects.code.clickDeleteRepositoryButton();
|
||||
|
||||
await retry.try(async () => {
|
||||
expect(await testSubjects.exists('confirmModalConfirmButton')).to.be(true);
|
||||
});
|
||||
|
||||
await testSubjects.click('confirmModalConfirmButton');
|
||||
|
||||
await retry.tryForTime(300000, async () => {
|
||||
const repositoryItems = await testSubjects.findAll(repositoryListSelector);
|
||||
expect(repositoryItems).to.have.length(0);
|
||||
|
|
|
@ -54,6 +54,12 @@ export default function manageRepositoriesFunctionalTests({
|
|||
|
||||
// Clean up the imported repository
|
||||
await PageObjects.code.clickDeleteRepositoryButton();
|
||||
await retry.try(async () => {
|
||||
expect(await testSubjects.exists('confirmModalConfirmButton')).to.be(true);
|
||||
});
|
||||
|
||||
await testSubjects.click('confirmModalConfirmButton');
|
||||
|
||||
await retry.tryForTime(300000, async () => {
|
||||
const repositoryItems = await testSubjects.findAll(repositoryListSelector);
|
||||
expect(repositoryItems).to.have.length(0);
|
||||
|
|
|
@ -65,6 +65,12 @@ export default function manageRepositoriesFunctionalTests({
|
|||
// Click the delete repository button.
|
||||
await PageObjects.code.clickDeleteRepositoryButton();
|
||||
|
||||
await retry.try(async () => {
|
||||
expect(await testSubjects.exists('confirmModalConfirmButton')).to.be(true);
|
||||
});
|
||||
|
||||
await testSubjects.click('confirmModalConfirmButton');
|
||||
|
||||
await retry.tryForTime(300000, async () => {
|
||||
const repositoryItems = await testSubjects.findAll(repositoryListSelector);
|
||||
expect(repositoryItems).to.have.length(0);
|
||||
|
@ -101,6 +107,12 @@ export default function manageRepositoriesFunctionalTests({
|
|||
// Delete the repository
|
||||
await PageObjects.code.clickDeleteRepositoryButton();
|
||||
|
||||
await retry.try(async () => {
|
||||
expect(await testSubjects.exists('confirmModalConfirmButton')).to.be(true);
|
||||
});
|
||||
|
||||
await testSubjects.click('confirmModalConfirmButton');
|
||||
|
||||
await retry.tryForTime(300000, async () => {
|
||||
const repositoryItems = await testSubjects.findAll(repositoryListSelector);
|
||||
expect(repositoryItems).to.have.length(0);
|
||||
|
|
|
@ -135,6 +135,11 @@ export default function testWithSecurity({ getService, getPageObjects }: TestInv
|
|||
const deleteButton = await testSubjects.findAll('deleteRepositoryButton');
|
||||
if (deleteButton.length > 0) {
|
||||
await PageObjects.code.clickDeleteRepositoryButton();
|
||||
await retry.try(async () => {
|
||||
expect(await testSubjects.exists('confirmModalConfirmButton')).to.be(true);
|
||||
});
|
||||
|
||||
await testSubjects.click('confirmModalConfirmButton');
|
||||
}
|
||||
}
|
||||
expect(repositoryItems).to.have.length(0);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue