+
)
diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/components/new-release/AddReleaseForm.js b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/components/new-release/AddReleaseForm.js
index 200cf9e7411..1fa47170e90 100644
--- a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/components/new-release/AddReleaseForm.js
+++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/components/new-release/AddReleaseForm.js
@@ -17,38 +17,19 @@
*/
import React from "react";
-import {
- Card,
- Button,
- message,
- Row,
- Col,
- Input,
- Icon,
- Select,
- Switch,
- Form,
- Upload,
- Divider,
- notification,
- Spin, InputNumber
-} from "antd";
+import {Form, notification, Spin, Card, Row, Col} from "antd";
import axios from "axios";
import {withRouter} from 'react-router-dom'
import {withConfigContext} from "../../context/ConfigContext";
import {handleApiError} from "../../js/Utils";
+import NewAppUploadForm from "../new-app/subForms/NewAppUploadForm";
-const {Option} = Select;
-const {TextArea} = Input;
-const InputGroup = Input.Group;
-
-const formItemLayout = {
- labelCol: {
- span: 8,
- },
- wrapperCol: {
- span: 16,
- },
+const formConfig = {
+ specificElements: {
+ binaryFile: {
+ required: true
+ }
+ }
};
class AddNewReleaseFormComponent extends React.Component {
@@ -56,18 +37,12 @@ class AddNewReleaseFormComponent extends React.Component {
constructor(props) {
super(props);
this.state = {
- current: 0,
- categories: [],
- tags: [],
- icons: [],
- screenshots: [],
loading: false,
- binaryFiles: [],
- isFree: true,
- supportedOsVersions: []
+ supportedOsVersions: [],
+ application: null,
+ release: null,
+ deviceType: null
};
- this.lowerOsVersion = null;
- this.upperOsVersion = null;
}
componentDidMount() {
@@ -95,309 +70,76 @@ class AddNewReleaseFormComponent extends React.Component {
});
};
- handleSubmit = e => {
+ onSuccessReleaseData = (releaseData) => {
const config = this.props.context;
- e.preventDefault();
const {appId, deviceType} = this.props;
+ this.setState({
+ loading: true
+ });
+ const {data, release} = releaseData;
+
+ const json = JSON.stringify(release);
+ const blob = new Blob([json], {
+ type: 'application/json'
+ });
+ data.append("applicationRelease", blob);
- this.props.form.validateFields((err, values) => {
- if (!err) {
+ const url = window.location.origin + config.serverConfig.invoker.uri + config.serverConfig.invoker.publisher +
+ "/applications/" + deviceType + "/ent-app/" + appId;
+ axios.post(
+ url,
+ data
+ ).then(res => {
+ if (res.status === 201) {
this.setState({
- loading: true
+ loading: false,
});
- const {price, isSharedWithAllTenants, icon, screenshots, releaseDescription, releaseType, binaryFile} = values;
- const data = new FormData();
- //add release data
- const release = {
- description: releaseDescription,
- price: (price === undefined) ? 0 : parseInt(price),
- isSharedWithAllTenants,
- metaData: "[]",
- releaseType: releaseType,
- supportedOsVersions: `${this.lowerOsVersion}-${this.upperOsVersion}`
- };
- data.append('binaryFile', binaryFile[0].originFileObj);
- data.append('icon', icon[0].originFileObj);
- data.append('screenshot1', screenshots[0].originFileObj);
- data.append('screenshot2', screenshots[1].originFileObj);
- data.append('screenshot3', screenshots[2].originFileObj);
-
- const json = JSON.stringify(release);
- const blob = new Blob([json], {
- type: 'application/json'
+ notification["success"]({
+ message: "Done!",
+ description:
+ "New release was added successfully",
});
+ const uuid = res.data.data.uuid;
+ this.props.history.push('/publisher/apps/releases/' + uuid);
- data.append("applicationRelease", blob);
-
- const url = window.location.origin + config.serverConfig.invoker.uri +
- config.serverConfig.invoker.publisher + "/applications/" + deviceType + "/ent-app/" + appId;
-
- axios.post(
- url,
- data
- ).then(res => {
- if (res.status === 201) {
- this.setState({
- loading: false,
- });
-
- notification["success"]({
- message: "Done!",
- description:
- "New release was added successfully",
- });
-
- const uuid = res.data.data.uuid;
-
- this.props.history.push('/publisher/apps/releases/' + uuid);
- }
-
- }).catch((error) => {
- handleApiError(error, "Sorry, we were unable to complete your request.");
- this.setState({
- loading: false
- });
+ } else {
+ this.setState({
+ loading: false
});
}
+ }).catch((error) => {
+ handleApiError(error, "Sorry, we were unable to complete your request.");
+ this.setState({
+ loading: false
+ });
});
- };
-
- normFile = e => {
- if (Array.isArray(e)) {
- return e;
- }
- return e && e.fileList;
- };
-
- handleIconChange = ({fileList}) => this.setState({icons: fileList});
- handleBinaryFileChange = ({fileList}) => this.setState({binaryFiles: fileList});
-
- handleScreenshotChange = ({fileList}) => this.setState({screenshots: fileList});
-
- handlePriceTypeChange = (value) => {
- this.setState({
- isFree: (value === 'free')
- });
- };
- handleLowerOsVersionChange = (lowerOsVersion) => {
- this.lowerOsVersion = lowerOsVersion;
};
- handleUpperOsVersionChange = (upperOsVersion) => {
- this.upperOsVersion = upperOsVersion;
+ onClickBackButton = () => {
+ this.props.history.push('/publisher/apps/');
};
render() {
- const {isFree, icons, screenshots, loading, binaryFiles, supportedOsVersions} = this.state;
- const {getFieldDecorator} = this.props.form;
+ const {loading, supportedOsVersions} = this.state;
return (
-
);
}
}
diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/pages/dashboard/add-new-release/AddNewRelease.js b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/pages/dashboard/add-new-release/AddNewRelease.js
index 2cdaf6d2ab1..d5d7d70bb01 100644
--- a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/pages/dashboard/add-new-release/AddNewRelease.js
+++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/pages/dashboard/add-new-release/AddNewRelease.js
@@ -55,7 +55,7 @@ class AddNewRelease extends React.Component {