@ -27,6 +27,7 @@ import {
Steps ,
Steps ,
Alert ,
Alert ,
Tabs ,
Tabs ,
Tooltip ,
} from 'antd' ;
} from 'antd' ;
import axios from 'axios' ;
import axios from 'axios' ;
import ReactQuill from 'react-quill' ;
import ReactQuill from 'react-quill' ;
@ -76,6 +77,7 @@ class LifeCycle extends React.Component {
current : 0 ,
current : 0 ,
lifecycleSteps : [ ] ,
lifecycleSteps : [ ] ,
lifeCycleStates : [ ] ,
lifeCycleStates : [ ] ,
isPublished : false ,
} ;
} ;
}
}
@ -85,9 +87,11 @@ class LifeCycle extends React.Component {
const lifecycleSteps = Object . keys ( lifeCycleConfig ) . map ( config => {
const lifecycleSteps = Object . keys ( lifeCycleConfig ) . map ( config => {
return lifeCycleConfig [ config ] ;
return lifeCycleConfig [ config ] ;
} ) ;
} ) ;
let isPublished = this . checkReleaseLifeCycleStatus ( ) ;
this . setState ( {
this . setState ( {
current : lifeCycleConfig [ this . props . currentStatus ] . step ,
current : lifeCycleConfig [ this . props . currentStatus ] . step ,
lifecycleSteps ,
lifecycleSteps ,
isPublished ,
} ) ;
} ) ;
this . getLifeCycleHistory ( ) ;
this . getLifeCycleHistory ( ) ;
}
}
@ -198,6 +202,27 @@ class LifeCycle extends React.Component {
this . setState ( { current } ) ;
this . setState ( { current } ) ;
} ;
} ;
/ *
Function to check if the same app releases are in published
state or not and assigned a boolean value to disable
the publish button if an app release is already published
* /
checkReleaseLifeCycleStatus = ( ) => {
if ( typeof this . props . appReleases !== 'undefined' ) {
let appReleases = this . props . appReleases . fullAppDetails ;
for ( let i = 0 ; i < appReleases . length ; i ++ ) {
if (
this . props . uuid !== appReleases [ i ] . uuid &&
appReleases [ i ] . currentStatus === 'PUBLISHED'
) {
return true ;
}
}
return false ;
}
return false ;
} ;
render ( ) {
render ( ) {
const {
const {
currentStatus ,
currentStatus ,
@ -207,6 +232,7 @@ class LifeCycle extends React.Component {
lifeCycleStates ,
lifeCycleStates ,
} = this . state ;
} = this . state ;
const { lifecycle } = this . props ;
const { lifecycle } = this . props ;
const text = < span > Already an app is in publish state < / s p a n > ;
let proceedingStates = [ ] ;
let proceedingStates = [ ] ;
if (
if (
lifecycle !== null &&
lifecycle !== null &&
@ -247,9 +273,22 @@ class LifeCycle extends React.Component {
< p > { step . text } < / p >
< p > { step . text } < / p >
{ proceedingStates . map ( lifecycleState => {
{ proceedingStates . map ( lifecycleState => {
return (
return (
< Tooltip
key = { lifecycleState }
title = {
lifecycleState === 'PUBLISHED' &&
this . state . isPublished
? text
: ''
}
>
< Button
< Button
size = { 'small' }
size = { 'small' }
style = { { marginRight : 3 } }
style = { { marginRight : 3 } }
disabled = {
lifecycleState === 'PUBLISHED' &&
this . state . isPublished
}
onClick = { ( ) =>
onClick = { ( ) =>
this . showReasonModal ( lifecycleState )
this . showReasonModal ( lifecycleState )
}
}
@ -258,6 +297,7 @@ class LifeCycle extends React.Component {
>
>
{ lifecycleState }
{ lifecycleState }
< / B u t t o n >
< / B u t t o n >
< / T o o l t i p >
) ;
) ;
} ) }
} ) }
< / d i v >
< / d i v >