mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
Disable publish button for releases with a published app
This commit is contained in:
parent
c4927c3508
commit
0df8c8d91c
@ -127,7 +127,10 @@ class AddNewReleaseFormComponent extends React.Component {
|
|||||||
description: 'New release was added successfully',
|
description: 'New release was added successfully',
|
||||||
});
|
});
|
||||||
const uuid = res.data.data.uuid;
|
const uuid = res.data.data.uuid;
|
||||||
this.props.history.push('/publisher/apps/releases/' + uuid);
|
this.props.history.push({
|
||||||
|
pathname: '/publisher/apps/releases/' + uuid,
|
||||||
|
state: { fullAppDetails: this.props.location.state.fullAppDetails },
|
||||||
|
});
|
||||||
} else {
|
} else {
|
||||||
this.setState({
|
this.setState({
|
||||||
loading: false,
|
loading: false,
|
||||||
|
|||||||
@ -702,7 +702,14 @@ class AppDetailsDrawer extends React.Component {
|
|||||||
title="Click to view full details"
|
title="Click to view full details"
|
||||||
placement="topRight"
|
placement="topRight"
|
||||||
>
|
>
|
||||||
<Link to={'apps/releases/' + release.uuid}>
|
<Link
|
||||||
|
to={{
|
||||||
|
pathname: `apps/releases/${release.uuid}`,
|
||||||
|
state: {
|
||||||
|
fullAppDetails: app.applicationReleases,
|
||||||
|
},
|
||||||
|
}}
|
||||||
|
>
|
||||||
<Card className="release-card">
|
<Card className="release-card">
|
||||||
<Meta
|
<Meta
|
||||||
avatar={
|
avatar={
|
||||||
@ -773,7 +780,12 @@ class AppDetailsDrawer extends React.Component {
|
|||||||
<Text>Add new release for the application</Text>
|
<Text>Add new release for the application</Text>
|
||||||
</div>
|
</div>
|
||||||
<Link
|
<Link
|
||||||
to={`/publisher/apps/${app.deviceType}/${app.id}/add-release`}
|
to={{
|
||||||
|
pathname: `/publisher/apps/${app.deviceType}/${app.id}/add-release`,
|
||||||
|
state: {
|
||||||
|
fullAppDetails: app.applicationReleases,
|
||||||
|
},
|
||||||
|
}}
|
||||||
>
|
>
|
||||||
<Button htmlType="button" type="primary" size="small">
|
<Button htmlType="button" type="primary" size="small">
|
||||||
Add
|
Add
|
||||||
|
|||||||
@ -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';
|
||||||
@ -198,6 +199,35 @@ 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 = (proceedingStates, lifecycleState) => {
|
||||||
|
if (typeof this.props.appReleases !== 'undefined') {
|
||||||
|
const currentAppUUID = this.props.uuid;
|
||||||
|
let appReleases = this.props.appReleases.fullAppDetails;
|
||||||
|
let appRelease;
|
||||||
|
let isPublished;
|
||||||
|
for (let i = 0; i < appReleases.length; i++) {
|
||||||
|
appRelease = appReleases[i];
|
||||||
|
if (
|
||||||
|
currentAppUUID !== appRelease.uuid &&
|
||||||
|
appRelease.currentStatus === 'PUBLISHED' &&
|
||||||
|
proceedingStates.includes('PUBLISHED') &&
|
||||||
|
lifecycleState === 'PUBLISHED'
|
||||||
|
) {
|
||||||
|
isPublished = true;
|
||||||
|
return isPublished;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
isPublished = false;
|
||||||
|
return isPublished;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const {
|
const {
|
||||||
currentStatus,
|
currentStatus,
|
||||||
@ -207,6 +237,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</span>;
|
||||||
let proceedingStates = [];
|
let proceedingStates = [];
|
||||||
if (
|
if (
|
||||||
lifecycle !== null &&
|
lifecycle !== null &&
|
||||||
@ -247,17 +278,33 @@ class LifeCycle extends React.Component {
|
|||||||
<p>{step.text}</p>
|
<p>{step.text}</p>
|
||||||
{proceedingStates.map(lifecycleState => {
|
{proceedingStates.map(lifecycleState => {
|
||||||
return (
|
return (
|
||||||
<Button
|
// eslint-disable-next-line react/jsx-key
|
||||||
size={'small'}
|
<Tooltip
|
||||||
style={{ marginRight: 3 }}
|
title={
|
||||||
onClick={() =>
|
this.checkReleaseLifeCycleStatus(
|
||||||
this.showReasonModal(lifecycleState)
|
proceedingStates,
|
||||||
|
lifecycleState,
|
||||||
|
) === true
|
||||||
|
? text
|
||||||
|
: ''
|
||||||
}
|
}
|
||||||
key={lifecycleState}
|
|
||||||
type={'primary'}
|
|
||||||
>
|
>
|
||||||
{lifecycleState}
|
<Button
|
||||||
</Button>
|
size={'small'}
|
||||||
|
style={{ marginRight: 3 }}
|
||||||
|
disabled={this.checkReleaseLifeCycleStatus(
|
||||||
|
proceedingStates,
|
||||||
|
lifecycleState,
|
||||||
|
)}
|
||||||
|
onClick={() =>
|
||||||
|
this.showReasonModal(lifecycleState)
|
||||||
|
}
|
||||||
|
key={lifecycleState}
|
||||||
|
type={'primary'}
|
||||||
|
>
|
||||||
|
{lifecycleState}
|
||||||
|
</Button>
|
||||||
|
</Tooltip>
|
||||||
);
|
);
|
||||||
})}
|
})}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -232,6 +232,7 @@ class Release extends React.Component {
|
|||||||
this.changeCurrentLifecycleStatus
|
this.changeCurrentLifecycleStatus
|
||||||
}
|
}
|
||||||
lifecycle={lifecycle}
|
lifecycle={lifecycle}
|
||||||
|
appReleases={this.props.location.state}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
</Skeleton>
|
</Skeleton>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user