diff --git a/awx/ui_next/src/screens/ManagementJob/ManagementJobDetails/ManagementJobDetails.jsx b/awx/ui_next/src/screens/ManagementJob/ManagementJobDetails/ManagementJobDetails.jsx index 2ed939563a..ebc6393b18 100644 --- a/awx/ui_next/src/screens/ManagementJob/ManagementJobDetails/ManagementJobDetails.jsx +++ b/awx/ui_next/src/screens/ManagementJob/ManagementJobDetails/ManagementJobDetails.jsx @@ -1,10 +1,107 @@ -import React from 'react'; +import React, { useState } from 'react'; import { withI18n } from '@lingui/react'; +import { t } from '@lingui/macro'; +import { Link, useHistory } from 'react-router-dom'; +import { Button } from '@patternfly/react-core'; -import { CardBody } from '../../../components/Card'; +import { SystemJobTemplatesAPI } from '../../../api'; +import AlertModal from '../../../components/AlertModal'; +import { CardBody, CardActionsRow } from '../../../components/Card'; +import { + Detail, + DetailList, + UserDateDetail, +} from '../../../components/DetailList'; +import ErrorDetail from '../../../components/ErrorDetail'; +import { useConfig } from '../../../contexts/Config'; -function ManagementJobDetails() { - return Management Job Details; +function ManagementJobDetails({ i18n, managementJob }) { + const { me } = useConfig(); + + const history = useHistory(); + const [isLaunchLoading, setIsLaunchLoading] = useState(false); + const [launchError, setLaunchError] = useState(null); + + const handleLaunch = async () => { + setIsLaunchLoading(true); + try { + const { data } = await SystemJobTemplatesAPI.launch(managementJob?.id); + history.push(`/jobs/management/${data.id}/output`); + } catch (error) { + setLaunchError(error); + } finally { + setIsLaunchLoading(false); + } + }; + + if (!managementJob) return null; + + return ( + <> + + + + + {managementJob?.has_configurable_retention ? ( + + ) : null} + + + + + {me?.is_superuser && managementJob?.has_configurable_retention ? ( + + ) : null} + {me?.is_superuser ? ( + + ) : null} + + + setLaunchError(null)} + > + {i18n._(t`Failed to launch job.`)} + + + + ); } export default withI18n()(ManagementJobDetails);