diff options
Diffstat (limited to 'server/sonar-web/src/main/js/apps/background-tasks/components/TaskActions.tsx')
-rw-r--r-- | server/sonar-web/src/main/js/apps/background-tasks/components/TaskActions.tsx | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/server/sonar-web/src/main/js/apps/background-tasks/components/TaskActions.tsx b/server/sonar-web/src/main/js/apps/background-tasks/components/TaskActions.tsx index 814611067c7..fbabb073096 100644 --- a/server/sonar-web/src/main/js/apps/background-tasks/components/TaskActions.tsx +++ b/server/sonar-web/src/main/js/apps/background-tasks/components/TaskActions.tsx @@ -25,6 +25,7 @@ import { translate, translateWithParameters } from '../../../helpers/l10n'; import ActionsDropdown, { ActionsDropdownItem } from '../../../components/controls/ActionsDropdown'; import { Task } from '../../../app/types'; import { lazyLoad } from '../../../components/lazyLoad'; +import ConfirmModal from '../../../components/controls/ConfirmModal'; const AnalysisWarningsModal = lazyLoad( () => import('../../../components/common/AnalysisWarningsModal'), @@ -33,12 +34,13 @@ const AnalysisWarningsModal = lazyLoad( interface Props { component?: unknown; - onCancelTask: (task: Task) => void; + onCancelTask: (task: Task) => Promise<void>; onFilterTask: (task: Task) => void; task: Task; } interface State { + cancelTaskOpen: boolean; scannerContextOpen: boolean; stacktraceOpen: boolean; warningsOpen: boolean; @@ -46,6 +48,7 @@ interface State { export default class TaskActions extends React.PureComponent<Props, State> { state: State = { + cancelTaskOpen: false, scannerContextOpen: false, stacktraceOpen: false, warningsOpen: false @@ -55,14 +58,22 @@ export default class TaskActions extends React.PureComponent<Props, State> { this.props.onFilterTask(this.props.task); }; + handleCancelTask = () => { + return this.props.onCancelTask(this.props.task); + }; + handleCancelClick = () => { - this.props.onCancelTask(this.props.task); + this.setState({ cancelTaskOpen: true }); }; handleShowScannerContextClick = () => { this.setState({ scannerContextOpen: true }); }; + closeCancelTask = () => { + this.setState({ cancelTaskOpen: false }); + }; + closeScannerContext = () => { this.setState({ scannerContextOpen: false }); }; @@ -140,6 +151,18 @@ export default class TaskActions extends React.PureComponent<Props, State> { )} </ActionsDropdown> + {this.state.cancelTaskOpen && ( + <ConfirmModal + cancelButtonText={translate('close')} + confirmButtonText={translate('background_tasks.cancel_task')} + header={translate('background_tasks.cancel_task')} + isDestructive={true} + onClose={this.closeCancelTask} + onConfirm={this.handleCancelTask}> + {translate('background_tasks.cancel_task.text')} + </ConfirmModal> + )} + {this.state.scannerContextOpen && ( <ScannerContext onClose={this.closeScannerContext} task={task} /> )} |