diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/public/conf/config.json b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/public/conf/config.json
index 8ac3b835777..902c2cdd469 100644
--- a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/public/conf/config.json
+++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/public/conf/config.json
@@ -7,10 +7,10 @@
"protocol": "https",
"hostname": "localhost",
"httpsPort": "9443",
- "invokerUri": "/api/application-mgt-handler/v1.0/invoke",
- "loginUri": "/api/application-mgt-handler/v1.0/login"
+ "invokerUri": "/ui-request-handler/invoke/application-mgt-publisher/v1.0",
+ "loginUri": "/ui-request-handler/login",
+ "platform": "publisher"
},
- "serverUrl": "https://localhost:9443",
"defaultPlatformIcons": {
"default": {
"icon": "mobile",
diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/components/apps/detailed-rating/DetailedRating.js b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/components/apps/detailed-rating/DetailedRating.js
index 18fa46f812d..19766fa499e 100644
--- a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/components/apps/detailed-rating/DetailedRating.js
+++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/components/apps/detailed-rating/DetailedRating.js
@@ -30,8 +30,11 @@ class DetailedRating extends React.Component{
getData = (uuid)=>{
const request = "method=get&content-type=application/json&payload={}&api-endpoint=/application-mgt-store/v1.0/reviews/"+uuid+"/rating";
- return axios.post(config.serverConfig.protocol + "://"+config.serverConfig.hostname + ':' + config.serverConfig.httpsPort + config.serverConfig.invokerUri, request
- ).then(res => {
+ return axios.get(
+ config.serverConfig.protocol + "://"+config.serverConfig.hostname + ':' + config.serverConfig.httpsPort + config.serverConfig.invokerUri+"/reviews/"+uuid+"/rating",
+ {
+ headers: { 'X-Platform': config.serverConfig.platform }
+ }).then(res => {
if (res.status === 200) {
let detailedRating = res.data.data;
this.setState({
diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/components/apps/list-apps/AppsTable.js b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/components/apps/list-apps/AppsTable.js
index 16a6659af8a..57a369965f6 100644
--- a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/components/apps/list-apps/AppsTable.js
+++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/components/apps/list-apps/AppsTable.js
@@ -100,22 +100,26 @@ class AppsTable extends React.Component {
fetch = (params = {}) => {
this.setState({loading: true});
+ if(!params.hasOwnProperty("page")){
+ params.page = 1;
+ }
+
const extraParams = {
offset: 10 * (params.page - 1),
limit: 10
};
// note: encode with '%26' not '&'
- const encodedExtraParams = Object.keys(extraParams).map(key => key + '=' + extraParams[key]).join('%26');
- const parameters = {
- method: "post",
- 'content-type': "application/json",
- payload: JSON.stringify({}),
- 'api-endpoint': "/application-mgt-publisher/v1.0/applications?" + encodedExtraParams
+ const encodedExtraParams = Object.keys(extraParams).map(key => key + '=' + extraParams[key]).join('&');
+ const data = {
};
- const request = Object.keys(parameters).map(key => key + '=' + parameters[key]).join('&');
- console.log(request);
- axios.post(config.serverConfig.protocol + "://"+config.serverConfig.hostname + ':' + config.serverConfig.httpsPort + config.serverConfig.invokerUri, request
+ console.log(config.serverConfig.protocol + "://"+config.serverConfig.hostname + ':' + config.serverConfig.httpsPort + config.serverConfig.invokerUri+"/applications?"+encodedExtraParams);
+ axios.post(
+ config.serverConfig.protocol + "://"+config.serverConfig.hostname + ':' + config.serverConfig.httpsPort + config.serverConfig.invokerUri+"/applications?"+encodedExtraParams,
+ data,
+ {
+ headers: { 'X-Platform': config.serverConfig.platform }
+ }
).then(res => {
if (res.status === 200) {
let apps = [];
@@ -136,7 +140,7 @@ class AppsTable extends React.Component {
}
}).catch((error) => {
- if (error.response.status === 401) {
+ if (error.hasOwnProperty("response") && error.response.status === 401) {
message.error('You are not logged in');
window.location.href = config.serverConfig.protocol + "://" + config.serverConfig.hostname + ':' + config.serverConfig.httpsPort+'/publisher/login';
} else {
diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/components/apps/release/ReleaseView.js b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/components/apps/release/ReleaseView.js
index effa0d7ec67..4fb34364a38 100644
--- a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/components/apps/release/ReleaseView.js
+++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/components/apps/release/ReleaseView.js
@@ -8,7 +8,6 @@ const {Title, Text, Paragraph} = Typography;
class ReleaseView extends React.Component {
render() {
const release = this.props.release;
- console.log(release);
return (
@@ -19,7 +18,6 @@ class ReleaseView extends React.Component {
App Name
{release.version}
-
{release.description}
@@ -50,12 +48,7 @@ class ReleaseView extends React.Component {
- Ant Design, a design language for background applications, is refined by Ant UED Team. Ant
- Design, a design language for background applications, is refined by Ant UED Team. Ant Design,
- a design language for background applications, is refined by Ant UED Team. Ant Design, a
- design language for background applications, is refined by Ant UED Team. Ant Design, a design
- language for background applications, is refined by Ant UED Team. Ant Design, a design
- language for background applications, is refined by Ant UED Team.
+ {release.description}
diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/components/manage/categories/ManageCategories.js b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/components/manage/categories/ManageCategories.js
index 9339835363b..204c76460d0 100644
--- a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/components/manage/categories/ManageCategories.js
+++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/components/manage/categories/ManageCategories.js
@@ -20,9 +20,11 @@ class ManageCategories extends React.Component {
};
componentDidMount() {
- const request = "method=get&content-type=application/json&payload={}&api-endpoint=/application-mgt-publisher/v1.0/applications/categories";
- axios.post(config.serverConfig.protocol + "://"+config.serverConfig.hostname + ':' + config.serverConfig.httpsPort + config.serverConfig.invokerUri, request
- ).then(res => {
+ axios.get(
+ config.serverConfig.protocol + "://"+config.serverConfig.hostname + ':' + config.serverConfig.httpsPort + config.serverConfig.invokerUri+"/applications/categories",
+ {
+ headers: { 'X-Platform': config.serverConfig.platform }
+ }).then(res => {
if (res.status === 200) {
let categories = JSON.parse(res.data.data);
this.setState({
@@ -55,8 +57,11 @@ class ManageCategories extends React.Component {
this.setState({
loading: true
});
- const request = "method=delete&content-type=application/json&payload={}&api-endpoint=/application-mgt-publisher/v1.0/admin/applications/categories/" + id;
- axios.post(config.serverConfig.protocol + "://"+config.serverConfig.hostname + ':' + config.serverConfig.httpsPort + config.serverConfig.invokerUri, request
+ axios.delete(
+ config.serverConfig.protocol + "://"+config.serverConfig.hostname + ':' + config.serverConfig.httpsPort + config.serverConfig.invokerUri+"/admin/applications/categories/"+id,
+ {
+ headers: { 'X-Platform': config.serverConfig.platform }
+ }
).then(res => {
if (res.status === 200) {
notification["success"]({
@@ -192,10 +197,14 @@ class ManageCategories extends React.Component {
loading: true
});
- const dataArray = JSON.stringify(tempElements.map(category => category.categoryName));
+ const data = tempElements.map(category => category.categoryName);
- const request = "method=post&content-type=application/json&payload=" + dataArray + "&api-endpoint=/application-mgt-publisher/v1.0/admin/applications/categories";
- axios.post(config.serverConfig.protocol + "://"+config.serverConfig.hostname + ':' + config.serverConfig.httpsPort + config.serverConfig.invokerUri, request
+ axios.post(
+ config.serverConfig.protocol + "://"+config.serverConfig.hostname + ':' + config.serverConfig.httpsPort + config.serverConfig.invokerUri+"/admin/applications/categories",
+ data,
+ {
+ headers: { 'X-Platform': config.serverConfig.platform }
+ }
).then(res => {
if (res.status === 200) {
notification["success"]({
@@ -255,8 +264,13 @@ class ManageCategories extends React.Component {
loading: true,
isEditModalVisible: false,
});
- const request = "method=put&content-type=application/json&payload={}&api-endpoint=/application-mgt-publisher/v1.0/admin/applications/categories/rename?from="+currentlyEditingId+"%26to="+editingValue;
- axios.post(config.serverConfig.protocol + "://"+config.serverConfig.hostname + ':' + config.serverConfig.httpsPort + config.serverConfig.invokerUri, request
+
+ axios.put(
+ config.serverConfig.protocol + "://"+config.serverConfig.hostname + ':' + config.serverConfig.httpsPort + config.serverConfig.invokerUri+"/admin/applications/categories/rename?from="+currentlyEditingId+"&to="+editingValue,
+ {},
+ {
+ headers: { 'X-Platform': config.serverConfig.platform }
+ }
).then(res => {
if (res.status === 200) {
notification["success"]({
diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/components/manage/categories/ManageTags.js b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/components/manage/categories/ManageTags.js
index 047669ca593..7c10934b710 100644
--- a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/components/manage/categories/ManageTags.js
+++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/components/manage/categories/ManageTags.js
@@ -9,7 +9,7 @@ class ManageTags extends React.Component {
state = {
loading: false,
searchText: '',
- categories: [],
+ tags: [],
tempElements: [],
inputVisible: false,
inputValue: '',
@@ -20,13 +20,15 @@ class ManageTags extends React.Component {
};
componentDidMount() {
- const request = "method=get&content-type=application/json&payload={}&api-endpoint=/application-mgt-publisher/v1.0/applications/tags";
- axios.post(config.serverConfig.protocol + "://"+config.serverConfig.hostname + ':' + config.serverConfig.httpsPort + config.serverConfig.invokerUri, request
- ).then(res => {
+ axios.get(
+ config.serverConfig.protocol + "://"+config.serverConfig.hostname + ':' + config.serverConfig.httpsPort + config.serverConfig.invokerUri+"/applications/tags",
+ {
+ headers: { 'X-Platform': config.serverConfig.platform }
+ }).then(res => {
if (res.status === 200) {
- let categories = JSON.parse(res.data.data);
+ let tags = JSON.parse(res.data.data);
this.setState({
- categories: categories,
+ tags: tags,
loading: false
});
}
@@ -51,31 +53,34 @@ class ManageTags extends React.Component {
});
};
- deleteCategory = (id) => {
+ deleteTag = (id) => {
+
this.setState({
loading: true
});
- const request = "method=delete&content-type=application/json&payload={}&api-endpoint=/application-mgt-publisher/v1.0/admin/applications/categories/" + id;
- axios.post(config.serverConfig.protocol + "://"+config.serverConfig.hostname + ':' + config.serverConfig.httpsPort + config.serverConfig.invokerUri, request
- ).then(res => {
+
+ axios.delete(
+ config.serverConfig.protocol + "://"+config.serverConfig.hostname + ':' + config.serverConfig.httpsPort + config.serverConfig.invokerUri+"/admin/applications/tags/"+id,
+ {
+ headers: {'X-Platform': config.serverConfig.platform}
+ }).then(res => {
if (res.status === 200) {
notification["success"]({
message: "Done!",
description:
- "Category Removed Successfully!",
+ "Tag Removed Successfully!",
+ });
+
+ const {tags} = this.state;
+ const remainingElements = tags.filter(function (value) {
+ return value.tagName !== id;
+
});
this.setState({
- loading: false
+ loading: false,
+ tags: remainingElements
});
- // this.setState({
- // categories: [...categories, ...tempElements],
- // tempElements: [],
- // inputVisible: false,
- // inputValue: '',
- // loading: false,
- // isAddNewVisible: false
- // });
}
}).catch((error) => {
@@ -91,31 +96,31 @@ class ManageTags extends React.Component {
});
};
- renderElement = (category) => {
- const categoryName = category.tagName;
+ renderElement = (tag) => {
+ const tagName = tag.tagName;
const tagElem = (
- {categoryName}
+ {tagName}
{
- this.openEditModal(categoryName)
+ this.openEditModal(tagName)
}} style={{color: 'rgba(0,0,0,0.45)'}} type="edit"/>
{
- if (category.isTagDeletable) {
- this.deleteCategory(categoryName);
+ if (tag.isTagDeletable) {
+ this.deleteTag(tagName);
} else {
notification["error"]({
- message: 'Cannot delete "' + categoryName + '"',
+ message: 'Cannot delete "' + tagName + '"',
description:
- "This category is currently used. Please unassign the category from apps.",
+ "This tag is currently used. Please unassign the tag from apps.",
});
}
}}
@@ -128,13 +133,13 @@ class ManageTags extends React.Component {
);
return (
-
+
{tagElem}
);
};
- renderTempElement = (category) => {
+ renderTempElement = (tag) => {
const {tempElements} = this.state;
const tagElem = (
- {category.categoryName}
+ {tag.tagName}
);
return (
-
+
{tagElem}
);
@@ -170,13 +175,13 @@ class ManageTags extends React.Component {
};
handleInputConfirm = () => {
- const {inputValue, categories} = this.state;
+ const {inputValue, tags} = this.state;
let {tempElements} = this.state;
if (inputValue) {
- if ((categories.findIndex(i => i.categoryName === inputValue) === -1) && (tempElements.findIndex(i => i.categoryName === inputValue) === -1)) {
- tempElements = [...tempElements, {categoryName: inputValue, isTagDeletable: true}];
+ if ((tags.findIndex(i => i.tagName === inputValue) === -1) && (tempElements.findIndex(i => i.tagName === inputValue) === -1)) {
+ tempElements = [...tempElements, {tagName: inputValue, isTagDeletable: true}];
} else {
- message.warning('Category already exists');
+ message.warning('Tag already exists');
}
}
@@ -188,25 +193,27 @@ class ManageTags extends React.Component {
};
handleSave = () => {
- const {tempElements, categories} = this.state;
+ const {tempElements, tags} = this.state;
this.setState({
loading: true
});
- const dataArray = JSON.stringify(tempElements.map(category => category.categoryName));
+ const data = tempElements.map(tag => tag.tagName);
- const request = "method=post&content-type=application/json&payload=" + dataArray + "&api-endpoint=/application-mgt-publisher/v1.0/admin/applications/categories";
- axios.post(config.serverConfig.protocol + "://"+config.serverConfig.hostname + ':' + config.serverConfig.httpsPort + config.serverConfig.invokerUri, request
- ).then(res => {
+ axios.post(config.serverConfig.protocol + "://"+config.serverConfig.hostname + ':' + config.serverConfig.httpsPort + config.serverConfig.invokerUri+"/applications/tags",
+ data,
+ {
+ headers: { 'X-Platform': config.serverConfig.platform }
+ }).then(res => {
if (res.status === 200) {
notification["success"]({
message: "Done!",
description:
- "New Categories were added successfully",
+ "New tags were added successfully",
});
this.setState({
- categories: [...categories, ...tempElements],
+ tags: [...tags, ...tempElements],
tempElements: [],
inputVisible: false,
inputValue: '',
@@ -250,26 +257,31 @@ class ManageTags extends React.Component {
editItem = () => {
- const {editingValue, currentlyEditingId, categories} = this.state;
+ const {editingValue, currentlyEditingId, tags} = this.state;
this.setState({
loading: true,
isEditModalVisible: false,
});
- const request = "method=put&content-type=application/json&payload={}&api-endpoint=/application-mgt-publisher/v1.0/admin/applications/categories?from="+currentlyEditingId+"%26to="+editingValue;
- axios.post(config.serverConfig.protocol + "://"+config.serverConfig.hostname + ':' + config.serverConfig.httpsPort + config.serverConfig.invokerUri, request
+
+ axios.put(
+ config.serverConfig.protocol + "://"+config.serverConfig.hostname + ':' + config.serverConfig.httpsPort + config.serverConfig.invokerUri+"/applications/tags/rename?from="+currentlyEditingId+"&to="+editingValue,
+ {},
+ {
+ headers: { 'X-Platform': config.serverConfig.platform }
+ }
).then(res => {
if (res.status === 200) {
notification["success"]({
message: "Done!",
description:
- "Category was edited successfully",
+ "Tag was edited successfully",
});
- categories[categories.findIndex(i => i.categoryName === currentlyEditingId)].categoryName = editingValue;
+ tags[tags.findIndex(i => i.tagName === currentlyEditingId)].tagName = editingValue;
this.setState({
- categories: categories,
+ tags: tags,
loading: false,
editingValue: null
});
@@ -298,8 +310,8 @@ class ManageTags extends React.Component {
};
render() {
- const {categories, inputVisible, inputValue, tempElements, isAddNewVisible} = this.state;
- const categoriesElements = categories.map(this.renderElement);
+ const {tags, inputVisible, inputValue, tempElements, isAddNewVisible} = this.state;
+ const tagsElements = tags.map(this.renderElement);
const temporaryElements = tempElements.map(this.renderTempElement);
return (
@@ -349,7 +361,7 @@ class ManageTags extends React.Component {
{!inputVisible && (
- New Category
+ New Tag
)}
@@ -386,7 +398,7 @@ class ManageTags extends React.Component {
leave={{opacity: 0, width: 0, scale: 0, duration: 200}}
appear={false}
>
- {categoriesElements}
+ {tagsElements}
diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/pages/Login.js b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/pages/Login.js
index 030a43dfe43..48701cf09df 100644
--- a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/pages/Login.js
+++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/pages/Login.js
@@ -57,9 +57,15 @@ class NormalLoginForm extends React.Component {
thisForm.setState({
loading: true
});
- console.log('Received values of form: ', values);
- let data = "username=" + values.username + "&password=" + values.password + "&platform=publisher";
- axios.post(config.serverConfig.protocol + "://"+config.serverConfig.hostname+':'+config.serverConfig.httpsPort+config.serverConfig.loginUri, data
+ const parameters = {
+ username: values.username,
+ password: values.password,
+ platform: "publisher"
+ };
+
+ const request = Object.keys(parameters).map(key => key + '=' + parameters[key]).join('&');
+
+ axios.post(config.serverConfig.protocol + "://"+config.serverConfig.hostname+':'+config.serverConfig.httpsPort+config.serverConfig.loginUri, request
).then(res => {
if (res.status === 200) {
window.location = res.data.url;
diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/pages/dashboard/apps/release/Release.js b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/pages/dashboard/apps/release/Release.js
index 69e268939b9..dc19a967d6a 100644
--- a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/pages/dashboard/apps/release/Release.js
+++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/pages/dashboard/apps/release/Release.js
@@ -1,12 +1,11 @@
import React from "react";
import '../../../../App.css';
-import {PageHeader, Typography, Input, Button, Row, Col, Avatar, Card} from "antd";
-import {connect} from "react-redux";
+import {PageHeader, Typography, Row, Col, message, Card} from "antd";
+import axios from 'axios';
+import config from "../../../../../public/conf/config.json";
import ReleaseView from "../../../../components/apps/release/ReleaseView";
-import {getRelease} from "../../../../js/actions";
import LifeCycle from "../../../../components/apps/release/LifeCycle";
-const Search = Input.Search;
const {Title} = Typography;
const routes = [
@@ -24,31 +23,67 @@ const routes = [
},
];
-const mapStateToProps = state => {
- return {release: state.release}
-};
-const mapDispatchToProps = dispatch => ({
- getRelease: (uuid) => dispatch(getRelease(uuid))
-});
-
-class ConnectedRelease extends React.Component {
+class Release extends React.Component {
routes;
constructor(props) {
super(props);
this.routes = props.routes;
-
+ this.state={
+ loading: true,
+ app: null,
+ uuid: null
+ }
}
componentDidMount() {
const {uuid} = this.props.match.params;
- this.props.getRelease(uuid);
+ this.fetchData(uuid);
+ }
+
+ componentDidUpdate(prevProps, prevState, snapshot) {
+ if (prevState.uuid !== this.state.uuid) {
+ const {uuid} = this.props.match.params;
+ this.fetchData(uuid);
+ }
}
+ fetchData = (uuid)=>{
+
+ //send request to the invoker
+ axios.get(
+ config.serverConfig.protocol + "://"+config.serverConfig.hostname + ':' + config.serverConfig.httpsPort + config.serverConfig.invokerUri+"/applications/release/"+uuid,
+ {
+ headers: { 'X-Platform': config.serverConfig.platform }
+ }
+ ).then(res => {
+ if (res.status === 200) {
+ let app = res.data.data;
+ this.setState({
+ app: app,
+ loading: false,
+ uuid: uuid
+ })
+ }
+
+ }).catch((error) => {
+ if (error.hasOwnProperty("response") && error.response.status === 401) {
+ //todo display a popop with error
+ message.error('You are not logged in');
+ window.location.href = config.serverConfig.protocol + "://" + config.serverConfig.hostname + ':' + config.serverConfig.httpsPort + '/store/login';
+ } else {
+ message.error('Something went wrong... :(');
+ }
+
+ this.setState({loading: false});
+ });
+ };
+
render() {
+ const {app} = this.state;
+ const release = app;
- const release = this.props.release;
if (release == null) {
return (
@@ -72,7 +107,7 @@ class ConnectedRelease extends React.Component {
-
+ {/**/}
@@ -83,6 +118,4 @@ class ConnectedRelease extends React.Component {
}
}
-const Release = connect(mapStateToProps,mapDispatchToProps)(ConnectedRelease);
-
export default Release;
diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.store.ui/react-app/public/conf/config.json b/components/application-mgt/org.wso2.carbon.device.application.mgt.store.ui/react-app/public/conf/config.json
index 6f469f5e029..706fe7cbd7c 100644
--- a/components/application-mgt/org.wso2.carbon.device.application.mgt.store.ui/react-app/public/conf/config.json
+++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.store.ui/react-app/public/conf/config.json
@@ -7,13 +7,22 @@
"protocol": "https",
"hostname": "localhost",
"httpsPort": "9443",
- "invokerUri": "/api/application-mgt-handler/v1.0/invoke",
- "loginUri": "/api/application-mgt-handler/v1.0/login"
+ "invokerUri": "/ui-request-handler/invoke/application-mgt-store/v1.0",
+ "loginUri": "/ui-request-handler/login",
+ "platform": "store"
},
- "serverUrl" : "https://localhost:9443",
"defaultPlatformIcons": {
- "default": "http://www.newdesignfile.com/postpic/2015/08/square-app-icon-blue_77131.png",
- "android": "data:image/png;base64,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",
- "ios" : "data:image/png;base64,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"
+ "default": {
+ "icon": "mobile",
+ "color": "#535c68"
+ },
+ "android": {
+ "icon": "android",
+ "color": "#7db343"
+ },
+ "ios": {
+ "icon": "apple",
+ "color": "#535c68"
+ }
}
}
diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.store.ui/react-app/src/components/apps/AppList.js b/components/application-mgt/org.wso2.carbon.device.application.mgt.store.ui/react-app/src/components/apps/AppList.js
index 767843d7107..d04af62794b 100644
--- a/components/application-mgt/org.wso2.carbon.device.application.mgt.store.ui/react-app/src/components/apps/AppList.js
+++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.store.ui/react-app/src/components/apps/AppList.js
@@ -14,9 +14,7 @@ class AppList extends React.Component {
}
componentDidMount() {
- console.log("mounted");
const {deviceType} = this.props;
- console.log(this.props);
this.props.changeSelectedMenuItem(deviceType);
this.fetchData(deviceType);
}
@@ -38,18 +36,14 @@ class AppList extends React.Component {
}else{
payload.deviceType= deviceType;
}
- const parameters = {
- method: "post",
- 'content-type': "application/json",
- payload: JSON.stringify(payload),
- 'api-endpoint': "/application-mgt-store/v1.0/applications/"
- };
-
- //url-encode parameters
- const request = Object.keys(parameters).map(key => key + '=' + parameters[key]).join('&');
//send request to the invoker
- axios.post(config.serverConfig.protocol + "://" + config.serverConfig.hostname + ':' + config.serverConfig.httpsPort + config.serverConfig.invokerUri, request
+ axios.post(
+ config.serverConfig.protocol + "://"+config.serverConfig.hostname + ':' + config.serverConfig.httpsPort + config.serverConfig.invokerUri+"/applications/",
+ payload,
+ {
+ headers: { 'X-Platform': config.serverConfig.platform }
+ }
).then(res => {
if (res.status === 200) {
//todo remove this property check after backend improvement
diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.store.ui/react-app/src/pages/Login.js b/components/application-mgt/org.wso2.carbon.device.application.mgt.store.ui/react-app/src/pages/Login.js
index 5d016cdeafa..71bae0e7927 100644
--- a/components/application-mgt/org.wso2.carbon.device.application.mgt.store.ui/react-app/src/pages/Login.js
+++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.store.ui/react-app/src/pages/Login.js
@@ -57,8 +57,15 @@ class NormalLoginForm extends React.Component {
thisForm.setState({
loading: true
});
- let data = "username=" + values.username + "&password=" + values.password + "&platform=store";
- axios.post(config.serverConfig.protocol + "://"+config.serverConfig.hostname+':'+config.serverConfig.httpsPort+config.serverConfig.loginUri, data
+ const parameters = {
+ username: values.username,
+ password: values.password,
+ platform: "store"
+ };
+
+ const request = Object.keys(parameters).map(key => key + '=' + parameters[key]).join('&');
+
+ axios.post(config.serverConfig.protocol + "://"+config.serverConfig.hostname+':'+config.serverConfig.httpsPort+config.serverConfig.loginUri, request
).then(res => {
if (res.status === 200) {
window.location = res.data.url;
diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.store.ui/react-app/src/pages/dashboard/apps/release/Release.js b/components/application-mgt/org.wso2.carbon.device.application.mgt.store.ui/react-app/src/pages/dashboard/apps/release/Release.js
index d6b3308b490..51c8897d6be 100644
--- a/components/application-mgt/org.wso2.carbon.device.application.mgt.store.ui/react-app/src/pages/dashboard/apps/release/Release.js
+++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.store.ui/react-app/src/pages/dashboard/apps/release/Release.js
@@ -48,7 +48,11 @@ class Release extends React.Component {
const request = Object.keys(parameters).map(key => key + '=' + parameters[key]).join('&');
//send request to the invoker
- axios.post(config.serverConfig.protocol + "://" + config.serverConfig.hostname + ':' + config.serverConfig.httpsPort + config.serverConfig.invokerUri, request
+ axios.get(
+ config.serverConfig.protocol + "://"+config.serverConfig.hostname + ':' + config.serverConfig.httpsPort + config.serverConfig.invokerUri+"/applications/"+uuid,
+ {
+ headers: { 'X-Platform': config.serverConfig.platform }
+ }
).then(res => {
if (res.status === 200) {
let app = res.data.data;