Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 | 110x 110x 110x 110x 110x 110x 110x 110x 110x 110x 110x 110x 8x 8x 8x 8x 8x 8x 8x 8x 8x 8x 110x 8x | /*
* Copyright 2021 Harness Inc. All rights reserved.
* Use of this source code is governed by the PolyForm Free Trial 1.0.0 license
* that can be found in the licenses directory at the root of this repository, also available at
* https://polyformproject.org/wp-content/uploads/2020/05/PolyForm-Free-Trial-1.0.0.txt.
*/
import React from 'react'
import { useParams } from 'react-router-dom'
import { isEmpty } from 'lodash-es'
import { FormInput, getMultiTypeFromValue, MultiTypeInputType } from '@wings-software/uicore'
import { useStrings } from 'framework/strings'
import type {
AccountPathProps,
GitQueryParams,
PipelinePathProps,
PipelineType
} from '@common/interfaces/RouteInterfaces'
import { useQueryParams } from '@common/hooks'
import { FormMultiTypeDurationField } from '@common/components/MultiTypeDuration/MultiTypeDuration'
import { useVariablesExpression } from '@pipeline/components/PipelineStudio/PiplineHooks/useVariablesExpression'
import { FormMultiTypeTextAreaField } from '@common/components'
import { FormMultiTypeConnectorField } from '@connectors/components/ConnectorReferenceField/FormMultiTypeConnectorField'
import { isApprovalStepFieldDisabled } from '../Common/ApprovalCommons'
import type { JiraApprovalDeploymentModeProps } from './types'
import css from './JiraApproval.module.scss'
function FormContent(formContentProps: JiraApprovalDeploymentModeProps) {
const { inputSetData, initialValues, allowableTypes } = formContentProps
const template = inputSetData?.template
const path = inputSetData?.path
const prefix = isEmpty(path) ? '' : `${path}.`
const readonly = inputSetData?.readonly
const { getString } = useStrings()
const { accountId, projectIdentifier, orgIdentifier } =
useParams<PipelineType<PipelinePathProps & AccountPathProps>>()
const { repoIdentifier, branch } = useQueryParams<GitQueryParams>()
const { expressions } = useVariablesExpression()
return (
<React.Fragment>
{getMultiTypeFromValue(template?.timeout) === MultiTypeInputType.RUNTIME ? (
<FormMultiTypeDurationField
name={`${prefix}timeout`}
label={getString('pipelineSteps.timeoutLabel')}
className={css.deploymentViewMedium}
multiTypeDurationProps={{
enableConfigureOptions: false,
allowableTypes,
expressions,
disabled: isApprovalStepFieldDisabled(readonly)
}}
disabled={isApprovalStepFieldDisabled(readonly)}
/>
) : null}
{getMultiTypeFromValue(template?.spec?.connectorRef) === MultiTypeInputType.RUNTIME ? (
<FormMultiTypeConnectorField
name={`${prefix}spec.connectorRef`}
label={getString('pipeline.jiraApprovalStep.connectorRef')}
selected={(initialValues?.spec?.connectorRef as string) || ''}
placeholder={getString('connectors.selectConnector')}
accountIdentifier={accountId}
projectIdentifier={projectIdentifier}
orgIdentifier={orgIdentifier}
width={385}
setRefValue
disabled={isApprovalStepFieldDisabled(readonly)}
multiTypeProps={{
allowableTypes,
expressions
}}
type={'Jira'}
gitScope={{ repo: repoIdentifier || '', branch, getDefaultFromOtherRepo: true }}
/>
) : null}
{getMultiTypeFromValue(template?.spec?.issueKey) === MultiTypeInputType.RUNTIME ? (
<FormInput.MultiTextInput
label={getString('pipeline.jiraApprovalStep.issueKey')}
name={`${prefix}spec.issueKey`}
multiTextInputProps={{
disabled: isApprovalStepFieldDisabled(readonly),
expressions,
allowableTypes
}}
className={css.deploymentViewMedium}
/>
) : null}
{getMultiTypeFromValue(template?.spec?.approvalCriteria?.spec?.expression) === MultiTypeInputType.RUNTIME ? (
<FormMultiTypeTextAreaField
className={css.deploymentViewMedium}
label={getString('pipeline.approvalCriteria.jexlExpressionLabelApproval')}
name={`${prefix}spec.approvalCriteria.spec.expression`}
disabled={isApprovalStepFieldDisabled(readonly)}
multiTypeTextArea={{
expressions,
allowableTypes
}}
/>
) : null}
{getMultiTypeFromValue(template?.spec?.rejectionCriteria?.spec?.expression) === MultiTypeInputType.RUNTIME ? (
<FormMultiTypeTextAreaField
className={css.deploymentViewMedium}
label={getString('pipeline.approvalCriteria.jexlExpressionLabelRejection')}
name={`${prefix}spec.rejectionCriteria.spec.expression`}
disabled={isApprovalStepFieldDisabled(readonly)}
multiTypeTextArea={{
expressions,
allowableTypes
}}
/>
) : null}
</React.Fragment>
)
}
/*
Used for iput sets and deployment form
Provide values for all runtime fields in approval step
Open the same form in readonly view while viewing already run executions
*/
export default function JiraApprovalDeploymentMode(props: JiraApprovalDeploymentModeProps): JSX.Element {
return <FormContent {...props} />
}
|