mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
Fix retired app loading issue in APPM UI
This commit is contained in:
parent
ab581e5147
commit
bfe154e7c9
@ -55,7 +55,7 @@ class AppDetailsDrawer extends React.Component {
|
|||||||
super(props);
|
super(props);
|
||||||
this.state = {
|
this.state = {
|
||||||
loading: false,
|
loading: false,
|
||||||
name: null,
|
name: "",
|
||||||
description: null,
|
description: null,
|
||||||
globalCategories: [],
|
globalCategories: [],
|
||||||
globalTags: [],
|
globalTags: [],
|
||||||
@ -93,7 +93,7 @@ class AppDetailsDrawer extends React.Component {
|
|||||||
getCategories = () => {
|
getCategories = () => {
|
||||||
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/categories"
|
window.location.origin + config.serverConfig.invoker.uri + config.serverConfig.invoker.publisher + "/applications/categories"
|
||||||
).then(res => {
|
).then(res => {
|
||||||
if (res.status === 200) {
|
if (res.status === 200) {
|
||||||
const categories = JSON.parse(res.data.data);
|
const categories = JSON.parse(res.data.data);
|
||||||
@ -115,7 +115,7 @@ class AppDetailsDrawer extends React.Component {
|
|||||||
|
|
||||||
}).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';
|
||||||
} else {
|
} else {
|
||||||
notification["error"]({
|
notification["error"]({
|
||||||
message: "There was a problem",
|
message: "There was a problem",
|
||||||
@ -133,7 +133,7 @@ class AppDetailsDrawer extends React.Component {
|
|||||||
getTags = () => {
|
getTags = () => {
|
||||||
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/tags"
|
window.location.origin + config.serverConfig.invoker.uri + config.serverConfig.invoker.publisher + "/applications/tags"
|
||||||
).then(res => {
|
).then(res => {
|
||||||
if (res.status === 200) {
|
if (res.status === 200) {
|
||||||
const tags = JSON.parse(res.data.data);
|
const tags = JSON.parse(res.data.data);
|
||||||
@ -155,7 +155,7 @@ class AppDetailsDrawer extends React.Component {
|
|||||||
|
|
||||||
}).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';
|
||||||
} else {
|
} else {
|
||||||
notification["error"]({
|
notification["error"]({
|
||||||
message: "There was a problem",
|
message: "There was a problem",
|
||||||
@ -178,7 +178,7 @@ class AppDetailsDrawer extends React.Component {
|
|||||||
if (name !== this.state.name && name !== "") {
|
if (name !== this.state.name && name !== "") {
|
||||||
const data = {name: name};
|
const data = {name: name};
|
||||||
axios.put(
|
axios.put(
|
||||||
window.location.origin+ config.serverConfig.invoker.uri + config.serverConfig.invoker.publisher + "/applications/" + id,
|
window.location.origin + config.serverConfig.invoker.uri + config.serverConfig.invoker.publisher + "/applications/" + id,
|
||||||
data
|
data
|
||||||
).then(res => {
|
).then(res => {
|
||||||
if (res.status === 200) {
|
if (res.status === 200) {
|
||||||
@ -195,7 +195,7 @@ class AppDetailsDrawer extends React.Component {
|
|||||||
}).catch((error) => {
|
}).catch((error) => {
|
||||||
if (error.hasOwnProperty("response") && error.response.status === 401) {
|
if (error.hasOwnProperty("response") && error.response.status === 401) {
|
||||||
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",
|
||||||
@ -259,7 +259,7 @@ class AppDetailsDrawer extends React.Component {
|
|||||||
if (difference.length !== 0 && temporaryCategories.length !== 0) {
|
if (difference.length !== 0 && temporaryCategories.length !== 0) {
|
||||||
const data = {categories: temporaryCategories};
|
const data = {categories: temporaryCategories};
|
||||||
axios.put(
|
axios.put(
|
||||||
window.location.origin+ config.serverConfig.invoker.uri + config.serverConfig.invoker.publisher + "/applications/" + id,
|
window.location.origin + config.serverConfig.invoker.uri + config.serverConfig.invoker.publisher + "/applications/" + id,
|
||||||
data
|
data
|
||||||
).then(res => {
|
).then(res => {
|
||||||
if (res.status === 200) {
|
if (res.status === 200) {
|
||||||
@ -277,7 +277,7 @@ class AppDetailsDrawer extends React.Component {
|
|||||||
}).catch((error) => {
|
}).catch((error) => {
|
||||||
if (error.hasOwnProperty("response") && error.response.status === 401) {
|
if (error.hasOwnProperty("response") && error.response.status === 401) {
|
||||||
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",
|
||||||
@ -324,7 +324,7 @@ class AppDetailsDrawer extends React.Component {
|
|||||||
if (difference.length !== 0 && temporaryTags.length !== 0) {
|
if (difference.length !== 0 && temporaryTags.length !== 0) {
|
||||||
const data = {tags: temporaryTags};
|
const data = {tags: temporaryTags};
|
||||||
axios.put(
|
axios.put(
|
||||||
window.location.origin+ config.serverConfig.invoker.uri + config.serverConfig.invoker.publisher + "/applications/" + id,
|
window.location.origin + config.serverConfig.invoker.uri + config.serverConfig.invoker.publisher + "/applications/" + id,
|
||||||
data
|
data
|
||||||
).then(res => {
|
).then(res => {
|
||||||
if (res.status === 200) {
|
if (res.status === 200) {
|
||||||
@ -341,7 +341,7 @@ class AppDetailsDrawer extends React.Component {
|
|||||||
}).catch((error) => {
|
}).catch((error) => {
|
||||||
if (error.hasOwnProperty("response") && error.response.status === 401) {
|
if (error.hasOwnProperty("response") && error.response.status === 401) {
|
||||||
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",
|
||||||
@ -365,7 +365,7 @@ class AppDetailsDrawer extends React.Component {
|
|||||||
if (temporaryDescription !== description && temporaryDescription !== "<p><br></p>") {
|
if (temporaryDescription !== description && temporaryDescription !== "<p><br></p>") {
|
||||||
const data = {description: temporaryDescription};
|
const data = {description: temporaryDescription};
|
||||||
axios.put(
|
axios.put(
|
||||||
window.location.origin+ config.serverConfig.invoker.uri + config.serverConfig.invoker.publisher + "/applications/" + id,
|
window.location.origin + config.serverConfig.invoker.uri + config.serverConfig.invoker.publisher + "/applications/" + id,
|
||||||
data
|
data
|
||||||
).then(res => {
|
).then(res => {
|
||||||
if (res.status === 200) {
|
if (res.status === 200) {
|
||||||
@ -382,7 +382,7 @@ class AppDetailsDrawer extends React.Component {
|
|||||||
}).catch((error) => {
|
}).catch((error) => {
|
||||||
if (error.hasOwnProperty("response") && error.response.status === 401) {
|
if (error.hasOwnProperty("response") && error.response.status === 401) {
|
||||||
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 {
|
||||||
message.error('Something went wrong... :(');
|
message.error('Something went wrong... :(');
|
||||||
}
|
}
|
||||||
@ -406,6 +406,36 @@ class AppDetailsDrawer extends React.Component {
|
|||||||
if (app == null) {
|
if (app == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let avatar = null;
|
||||||
|
|
||||||
|
if (app.applicationReleases.length === 0) {
|
||||||
|
const avatarLetter = name.charAt(0).toUpperCase();
|
||||||
|
avatar = (
|
||||||
|
<Avatar shape="square"
|
||||||
|
size={100}
|
||||||
|
style={{
|
||||||
|
marginBottom: 10,
|
||||||
|
borderRadius: "28%",
|
||||||
|
backgroundColor: pSBC(0.50, config.theme.primaryColor)
|
||||||
|
}}>
|
||||||
|
{avatarLetter}
|
||||||
|
</Avatar>
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
avatar = (
|
||||||
|
<img
|
||||||
|
style={{
|
||||||
|
marginBottom: 10,
|
||||||
|
width: 100,
|
||||||
|
borderRadius: "28%",
|
||||||
|
border: "1px solid #ddd"
|
||||||
|
}}
|
||||||
|
src={app.applicationReleases[0].iconPath}
|
||||||
|
/>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<Drawer
|
<Drawer
|
||||||
@ -417,15 +447,7 @@ class AppDetailsDrawer extends React.Component {
|
|||||||
>
|
>
|
||||||
<Spin spinning={loading} delay={500}>
|
<Spin spinning={loading} delay={500}>
|
||||||
<div style={{textAlign: "center"}}>
|
<div style={{textAlign: "center"}}>
|
||||||
<img
|
{avatar}
|
||||||
style={{
|
|
||||||
marginBottom: 10,
|
|
||||||
width: 100,
|
|
||||||
borderRadius: "28%",
|
|
||||||
border: "1px solid #ddd"
|
|
||||||
}}
|
|
||||||
src={app.applicationReleases[0].iconPath}
|
|
||||||
/>
|
|
||||||
<Title editable={{onChange: this.handleNameSave}} level={2}>{name}</Title>
|
<Title editable={{onChange: this.handleNameSave}} level={2}>{name}</Title>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -436,8 +458,8 @@ class AppDetailsDrawer extends React.Component {
|
|||||||
{(app.type === "ENTERPRISE") && (
|
{(app.type === "ENTERPRISE") && (
|
||||||
<Link to={`/publisher/apps/${app.id}/add-release`}><Button htmlType="button" size="small">Add
|
<Link to={`/publisher/apps/${app.id}/add-release`}><Button htmlType="button" size="small">Add
|
||||||
new release</Button></Link>)}
|
new release</Button></Link>)}
|
||||||
<br/>
|
|
||||||
<List
|
<List
|
||||||
|
style={{paddingTop: 16}}
|
||||||
grid={{gutter: 16, column: 2}}
|
grid={{gutter: 16, column: 2}}
|
||||||
dataSource={app.applicationReleases}
|
dataSource={app.applicationReleases}
|
||||||
renderItem={release => (
|
renderItem={release => (
|
||||||
@ -596,8 +618,8 @@ class AppDetailsDrawer extends React.Component {
|
|||||||
)}
|
)}
|
||||||
|
|
||||||
<Divider dashed={true}/>
|
<Divider dashed={true}/>
|
||||||
|
{app.applicationReleases.length > 0 && (
|
||||||
<DetailedRating type="app" uuid={app.applicationReleases[0].uuid}/>
|
<DetailedRating type="app" uuid={app.applicationReleases[0].uuid}/>)}
|
||||||
</Spin>
|
</Spin>
|
||||||
</Drawer>
|
</Drawer>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -12,8 +12,22 @@ const columns = [
|
|||||||
title: '',
|
title: '',
|
||||||
dataIndex: 'name',
|
dataIndex: 'name',
|
||||||
render: (name, row) => {
|
render: (name, row) => {
|
||||||
return (
|
let avatar = null;
|
||||||
<div>
|
if (row.applicationReleases.length === 0) {
|
||||||
|
const avatarLetter = name.charAt(0).toUpperCase();
|
||||||
|
avatar = (
|
||||||
|
<Avatar shape="square" size="large"
|
||||||
|
style={{
|
||||||
|
marginRight: 20,
|
||||||
|
borderRadius: "28%",
|
||||||
|
border: "1px solid #ddd",
|
||||||
|
backgroundColor: pSBC(0.50, config.theme.primaryColor)
|
||||||
|
}}>
|
||||||
|
{avatarLetter}
|
||||||
|
</Avatar>
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
avatar = (
|
||||||
<Avatar shape="square" size="large"
|
<Avatar shape="square" size="large"
|
||||||
style={{
|
style={{
|
||||||
marginRight: 20,
|
marginRight: 20,
|
||||||
@ -22,6 +36,12 @@ const columns = [
|
|||||||
}}
|
}}
|
||||||
src={row.applicationReleases[0].iconPath}
|
src={row.applicationReleases[0].iconPath}
|
||||||
/>
|
/>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
{avatar}
|
||||||
{name}
|
{name}
|
||||||
</div>);
|
</div>);
|
||||||
}
|
}
|
||||||
@ -33,7 +53,7 @@ const columns = [
|
|||||||
<span>
|
<span>
|
||||||
{categories.map(category => {
|
{categories.map(category => {
|
||||||
return (
|
return (
|
||||||
<Tag color={pSBC ( 0.30, config.theme.primaryColor )} key={category}>
|
<Tag color={pSBC(0.30, config.theme.primaryColor)} key={category}>
|
||||||
{category}
|
{category}
|
||||||
</Tag>
|
</Tag>
|
||||||
);
|
);
|
||||||
@ -80,7 +100,7 @@ class AppsTable extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
const {filters} =this.props;
|
const {filters} = this.props;
|
||||||
this.setState({
|
this.setState({
|
||||||
filters
|
filters
|
||||||
});
|
});
|
||||||
@ -89,9 +109,9 @@ class AppsTable extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
componentDidUpdate(prevProps, prevState, snapshot) {
|
componentDidUpdate(prevProps, prevState, snapshot) {
|
||||||
const {filters} =this.props;
|
const {filters} = this.props;
|
||||||
if (prevProps.filters !== this.props.filters) {
|
if (prevProps.filters !== this.props.filters) {
|
||||||
console.log("d",this.props.filters);
|
console.log("d", this.props.filters);
|
||||||
this.setState({
|
this.setState({
|
||||||
filters
|
filters
|
||||||
});
|
});
|
||||||
@ -106,7 +126,7 @@ class AppsTable extends React.Component {
|
|||||||
this.setState({
|
this.setState({
|
||||||
pagination: pager,
|
pagination: pager,
|
||||||
});
|
});
|
||||||
this.fetch(this.state.filters,{
|
this.fetch(this.state.filters, {
|
||||||
results: pagination.pageSize,
|
results: pagination.pageSize,
|
||||||
page: pagination.current,
|
page: pagination.current,
|
||||||
sortField: sorter.field,
|
sortField: sorter.field,
|
||||||
@ -115,11 +135,11 @@ class AppsTable extends React.Component {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
fetch = (filters,params = {}) => {
|
fetch = (filters, params = {}) => {
|
||||||
this.setState({loading: true});
|
this.setState({loading: true});
|
||||||
const config = this.props.context;
|
const config = this.props.context;
|
||||||
|
|
||||||
if(!params.hasOwnProperty("page")){
|
if (!params.hasOwnProperty("page")) {
|
||||||
params.page = 1;
|
params.page = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -130,9 +150,8 @@ class AppsTable extends React.Component {
|
|||||||
};
|
};
|
||||||
|
|
||||||
axios.post(
|
axios.post(
|
||||||
window.location.origin+ config.serverConfig.invoker.uri +config.serverConfig.invoker.publisher+"/applications",
|
window.location.origin + config.serverConfig.invoker.uri + config.serverConfig.invoker.publisher + "/applications",
|
||||||
data,
|
data,
|
||||||
|
|
||||||
).then(res => {
|
).then(res => {
|
||||||
if (res.status === 200) {
|
if (res.status === 200) {
|
||||||
const data = res.data.data;
|
const data = res.data.data;
|
||||||
@ -156,7 +175,7 @@ class AppsTable extends React.Component {
|
|||||||
}).catch((error) => {
|
}).catch((error) => {
|
||||||
if (error.hasOwnProperty("response") && error.response.status === 401) {
|
if (error.hasOwnProperty("response") && error.response.status === 401) {
|
||||||
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",
|
||||||
|
|||||||
@ -68,7 +68,7 @@ class ReleaseView extends React.Component {
|
|||||||
icon="shop"
|
icon="shop"
|
||||||
disabled={this.props.currentLifecycleStatus !== "PUBLISHED"}
|
disabled={this.props.currentLifecycleStatus !== "PUBLISHED"}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
window.open("https://" + config.serverConfig.hostname + ':' + config.serverConfig.httpsPort + "/store/" + app.deviceType + "/apps/" + release.uuid)
|
window.open(window.location.origin+ "/store/" + app.deviceType + "/apps/" + release.uuid)
|
||||||
}}>
|
}}>
|
||||||
Open in store
|
Open in store
|
||||||
</Button>
|
</Button>
|
||||||
|
|||||||
@ -235,7 +235,7 @@ class NewAppDetailsForm extends React.Component {
|
|||||||
</Select>
|
</Select>
|
||||||
)}
|
)}
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
//todo implement add meta data
|
{/* //todo implement add meta data */}
|
||||||
{/*<Form.Item {...formItemLayout} label="Meta Data">*/}
|
{/*<Form.Item {...formItemLayout} label="Meta Data">*/}
|
||||||
{/*<InputGroup>*/}
|
{/*<InputGroup>*/}
|
||||||
{/*<Row gutter={8}>*/}
|
{/*<Row gutter={8}>*/}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user