Modify edit release component to update the release without refreshing

feature/appm-store/pbac
Jayasanka 5 years ago
parent 70310c55fb
commit e07197743a

@ -11,23 +11,22 @@ const {Title, Text, Paragraph} = Typography;
class ReleaseView extends React.Component { class ReleaseView extends React.Component {
render() { render() {
const {app, release} = this.props;
const config = this.props.context; const config = this.props.context;
const app = this.props.app;
const release = (app !== null) ? app.applicationReleases[0] : null;
const {lifecycle, currentLifecycleStatus} = this.props; const {lifecycle, currentLifecycleStatus} = this.props;
if (release == null || lifecycle == null) { if (release == null || lifecycle == null) {
return null; return null;
} }
const {isAppUpdatable, isAppInstallable} = lifecycle[currentLifecycleStatus]; const {isAppUpdatable, isAppInstallable} = lifecycle[currentLifecycleStatus];
console.log(isAppInstallable, isAppUpdatable);
const platform = app.deviceType; const platform = app.deviceType;
const defaultPlatformIcons = config.defaultPlatformIcons; const defaultPlatformIcons = config.defaultPlatformIcons;
let icon = defaultPlatformIcons.default.icon; let icon = defaultPlatformIcons.default.icon;
let color = defaultPlatformIcons.default.color; let color = defaultPlatformIcons.default.color;
let theme = defaultPlatformIcons.default.theme; let theme = defaultPlatformIcons.default.theme;
if (defaultPlatformIcons.hasOwnProperty(platform)) { if (defaultPlatformIcons.hasOwnProperty(platform)) {
icon = defaultPlatformIcons[platform].icon; icon = defaultPlatformIcons[platform].icon;
color = defaultPlatformIcons[platform].color; color = defaultPlatformIcons[platform].color;

@ -94,10 +94,10 @@ class EditReleaseModal extends React.Component {
releaseDescription: { releaseDescription: {
value: release.description value: release.description
}, },
price:{ price: {
value: release.price value: release.price
}, },
isSharedWithAllTenants:{ isSharedWithAllTenants: {
value: release.isSharedWithAllTenants value: release.isSharedWithAllTenants
} }
}); });
@ -231,6 +231,9 @@ class EditReleaseModal extends React.Component {
data data
).then(res => { ).then(res => {
if (res.status === 200) { if (res.status === 200) {
const updatedRelease = res.data.data;
this.setState({ this.setState({
loading: false, loading: false,
visible: false, visible: false,
@ -241,10 +244,9 @@ class EditReleaseModal extends React.Component {
description: description:
"Saved!", "Saved!",
}); });
// console.log(updatedRelease);
window.location.reload(); this.props.updateRelease(updatedRelease);
} }
}).catch((error) => { }).catch((error) => {
if (error.hasOwnProperty("response") && error.response.status === 401) { if (error.hasOwnProperty("response") && error.response.status === 401) {
window.location.href = window.location.origin + '/publisher/login'; window.location.href = window.location.origin + '/publisher/login';

@ -8,8 +8,6 @@ import {withConfigContext} from "../../../../context/ConfigContext";
const {Title} = Typography; const {Title} = Typography;
class Release extends React.Component { class Release extends React.Component {
routes; routes;
@ -38,16 +36,16 @@ class Release extends React.Component {
} }
} }
changeCurrentLifecycleStatus = (status) =>{ changeCurrentLifecycleStatus = (status) => {
this.setState({ this.setState({
currentLifecycleStatus: status currentLifecycleStatus: status
}); });
}; };
updateRelease = (release) =>{ updateRelease = (release) => {
this.setState({ this.setState({
release release
}); });
}; };
fetchData = (uuid) => { fetchData = (uuid) => {
@ -55,12 +53,12 @@ class Release extends React.Component {
//send request to the invoker //send request to the invoker
axios.get( axios.get(
window.location.origin+ config.serverConfig.invoker.uri + config.serverConfig.invoker.publisher + "/applications/release/"+ uuid, window.location.origin + config.serverConfig.invoker.uri + config.serverConfig.invoker.publisher + "/applications/release/" + uuid,
).then(res => { ).then(res => {
if (res.status === 200) { if (res.status === 200) {
const app = res.data.data; const app = res.data.data;
const release = (app !== null) ? app.applicationReleases[0] : null; const release = (app !== null) ? app.applicationReleases[0] : null;
const currentLifecycleStatus = (release!==null) ? release.currentStatus : null; const currentLifecycleStatus = (release !== null) ? release.currentStatus : null;
this.setState({ this.setState({
app: app, app: app,
release: release, release: release,
@ -74,7 +72,7 @@ class Release extends React.Component {
if (error.hasOwnProperty("response") && error.response.status === 401) { if (error.hasOwnProperty("response") && error.response.status === 401) {
//todo display a popop with error //todo display a popop with error
message.error('You are not logged in'); message.error('You are not logged in');
window.location.href = window.location.origin+ '/publisher/login'; window.location.href = window.location.origin + '/publisher/login';
} else { } else {
notification["error"]({ notification["error"]({
message: "There was a problem", message: "There was a problem",
@ -92,7 +90,7 @@ class Release extends React.Component {
getLifecycle = () => { getLifecycle = () => {
const config = this.props.context; const config = this.props.context;
axios.get( axios.get(
window.location.origin+ config.serverConfig.invoker.uri + config.serverConfig.invoker.publisher + "/applications/lifecycle-config" window.location.origin + config.serverConfig.invoker.uri + config.serverConfig.invoker.publisher + "/applications/lifecycle-config"
).then(res => { ).then(res => {
if (res.status === 200) { if (res.status === 200) {
const lifecycle = res.data.data; const lifecycle = res.data.data;
@ -103,7 +101,7 @@ class Release extends React.Component {
}).catch(function (error) { }).catch(function (error) {
if (error.hasOwnProperty("response") && error.response.status === 401) { if (error.hasOwnProperty("response") && error.response.status === 401) {
window.location.href = window.location.origin+ '/publisher/login'; window.location.href = window.location.origin + '/publisher/login';
} else { } else {
notification["error"]({ notification["error"]({
message: "There was a problem", message: "There was a problem",
@ -135,8 +133,9 @@ class Release extends React.Component {
<Card> <Card>
<ReleaseView <ReleaseView
app={app} app={app}
release={release}
currentLifecycleStatus={currentLifecycleStatus} currentLifecycleStatus={currentLifecycleStatus}
lifecycle ={lifecycle} lifecycle={lifecycle}
updateRelease={this.updateRelease} updateRelease={this.updateRelease}
/> />
</Card> </Card>
@ -147,7 +146,7 @@ class Release extends React.Component {
uuid={release.uuid} uuid={release.uuid}
currentStatus={release.currentStatus.toUpperCase()} currentStatus={release.currentStatus.toUpperCase()}
changeCurrentLifecycleStatus={this.changeCurrentLifecycleStatus} changeCurrentLifecycleStatus={this.changeCurrentLifecycleStatus}
lifecycle ={lifecycle} lifecycle={lifecycle}
/> />
</Card> </Card>
</Col> </Col>

Loading…
Cancel
Save