@@ -41,7 +41,7 @@ import {
4141} from '../ciPipeline/ciPipeline.service'
4242import { toast } from 'react-toastify'
4343import { ValidationRules } from '../ciPipeline/validationRules'
44- import { CIBuildType , CIPipelineDataType , CIPipelineType } from '../ciPipeline/types'
44+ import { CIBuildType , CIPipelineBuildType , CIPipelineDataType , CIPipelineType } from '../ciPipeline/types'
4545import { ReactComponent as Close } from '../../assets/icons/ic-cross.svg'
4646import Tippy from '@tippyjs/react'
4747import { PreBuild } from './PreBuild'
@@ -70,6 +70,7 @@ export default function CIPipeline({
7070 close,
7171 deleteWorkflow,
7272 isJobView,
73+ isJobCI,
7374} : CIPipelineType ) {
7475 let { appId, workflowId, ciPipelineId } = useParams < { appId : string ; workflowId : string ; ciPipelineId : string } > ( )
7576 if ( ciPipelineId === '0' ) {
@@ -85,9 +86,10 @@ export default function CIPipeline({
8586 const { path } = useRouteMatch ( )
8687 const [ pageState , setPageState ] = useState ( ViewType . LOADING )
8788 const text = ciPipelineId ? 'Update Pipeline' : 'Create Pipeline'
88- const title = `${ ciPipelineId ? 'Edit ' : 'Create ' } ${ isJobView ? 'job' : 'build' } pipeline`
89+ const isJobCard = isJobCI || isJobView // constant for common elements of both Job and CI_JOB
90+ const title = `${ ciPipelineId ? 'Edit ' : 'Create ' } ${ isJobCard ? 'job' : 'build' } pipeline`
8991 const [ isAdvanced , setIsAdvanced ] = useState < boolean > (
90- isJobView || ( activeStageName !== BuildStageVariable . PreBuild && ! ! ciPipelineId ) ,
92+ isJobCard || ( activeStageName !== BuildStageVariable . PreBuild && ! ! ciPipelineId ) ,
9193 )
9294 const [ showFormError , setShowFormError ] = useState < boolean > ( false )
9395 const [ loadingState , setLoadingState ] = useState < LoadingState > ( {
@@ -154,6 +156,7 @@ export default function CIPipeline({
154156 linkedCount : 0 ,
155157 scanEnabled : false ,
156158 environmentId : 0 ,
159+ pipelineType : "" ,
157160 } )
158161 const validationRules = new ValidationRules ( )
159162 const [ isDockerConfigOverridden , setDockerConfigOverridden ] = useState ( false )
@@ -184,7 +187,16 @@ export default function CIPipeline({
184187 ) {
185188 localStorage . removeItem ( 'takeMeThereClicked' )
186189 }
187- } , [ location . pathname ] )
190+ // redirect to ci-job based on pipeline type
191+ if (
192+ location . pathname . includes ( `/${ URLS . APP_CI_CONFIG } /` ) &&
193+ ciPipelineId &&
194+ ciPipeline . pipelineType === CIPipelineBuildType . CI_JOB
195+ ) {
196+ const editCIPipelineURL : string = location . pathname . replace ( `/${ URLS . APP_CI_CONFIG } /` , `/${ URLS . APP_JOB_CI_CONFIG } /` )
197+ window . location . href = editCIPipelineURL
198+ }
199+ } , [ location . pathname , ciPipeline . pipelineType ] )
188200
189201 const getEnvironments = ( envId ) => {
190202 envId = envId || 0
@@ -284,7 +296,7 @@ export default function CIPipeline({
284296 showError ( error )
285297 } )
286298 } else {
287- getInitData ( appId , true , ! isJobView )
299+ getInitData ( appId , true , ! isJobCard )
288300 . then ( ( ciResponse ) => {
289301 setFormData ( ciResponse . result . form )
290302 setPageState ( ViewType . FORM )
@@ -352,7 +364,7 @@ export default function CIPipeline({
352364 }
353365
354366 const getMandatoryPluginData = ( _formData : PipelineFormType , pluginList : PluginDetailType [ ] ) : void => {
355- if ( ! isJobView && processPluginData && prepareFormData && pluginList . length ) {
367+ if ( ! isJobCard && processPluginData && prepareFormData && pluginList . length ) {
356368 let branchName = ''
357369 if ( _formData ?. materials ?. length ) {
358370 for ( const material of _formData . materials ) {
@@ -524,7 +536,15 @@ export default function CIPipeline({
524536 } else {
525537 _ciPipeline . environmentId = undefined
526538 }
527-
539+ if ( ! isJobView ) {
540+ let ciPipelineType : CIPipelineBuildType = CIPipelineBuildType . CI_BUILD
541+ if ( ciPipeline . isExternal ) {
542+ ciPipelineType = CIPipelineBuildType . CI_EXTERNAL
543+ } else if ( isJobCI ) {
544+ ciPipelineType = CIPipelineBuildType . CI_JOB
545+ }
546+ _ciPipeline . pipelineType = ciPipeline . id ? ciPipeline . pipelineType : ciPipelineType
547+ }
528548 saveCIPipeline (
529549 {
530550 ...formData ,
@@ -642,7 +662,7 @@ export default function CIPipeline({
642662 validateStage ( activeStageName , formData )
643663 } }
644664 >
645- { isJobView ? JobPipelineTabText [ stageName ] : BuildTabText [ stageName ] }
665+ { isJobCard ? JobPipelineTabText [ stageName ] : BuildTabText [ stageName ] }
646666 { ( showAlert || showWarning ) && (
647667 < WarningTriangle
648668 className = { `icon-dim-16 mr-5 ml-5 mt-3 ${
@@ -713,7 +733,7 @@ export default function CIPipeline({
713733
714734 { isAdvanced && (
715735 < ul className = "ml-20 tab-list w-90" >
716- { isJobView ? (
736+ { isJobCard ? (
717737 < >
718738 { getNavLink ( `build` , BuildStageVariable . Build ) }
719739 { getNavLink ( `pre-build` , BuildStageVariable . PreBuild ) }
@@ -734,6 +754,7 @@ export default function CIPipeline({
734754 < div className = "sidebar-container" >
735755 < Sidebar
736756 isJobView = { isJobView }
757+ isJobCI = { isJobCI }
737758 mandatoryPluginData = { mandatoryPluginData }
738759 pluginList = { [ ...presetPlugins , ...sharedPlugins ] }
739760 setInputVariablesListFromPrevStep = { setInputVariablesListFromPrevStep }
@@ -750,7 +771,7 @@ export default function CIPipeline({
750771 < PreBuild
751772 presetPlugins = { presetPlugins }
752773 sharedPlugins = { sharedPlugins }
753- isJobView = { isJobView }
774+ isJobView = { isJobCard }
754775 mandatoryPluginsMap = { mandatoryPluginsMap }
755776 />
756777 </ Route >
@@ -772,7 +793,7 @@ export default function CIPipeline({
772793 ciPipeline = { ciPipeline }
773794 isSecurityModuleInstalled = { isSecurityModuleInstalled }
774795 setDockerConfigOverridden = { setDockerConfigOverridden }
775- isJobView = { isJobView }
796+ isJobView = { isJobCard }
776797 getPluginData = { getPluginData }
777798 />
778799 </ Route >
0 commit comments