diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/package.json b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/package.json index 3aa97aca33..3029a00c3f 100644 --- a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/package.json +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/package.json @@ -18,7 +18,8 @@ "react-highlight-words": "^0.16.0", "react-router-config": "^5.0.0", "react-router-dom": "latest", - "react-scripts": "2.1.8" + "react-scripts": "2.1.8", + "react-router": "latest" }, "devDependencies": { "@babel/core": "^7.0.0", diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/index.js b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/index.js index 734182829b..df386140c4 100644 --- a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/index.js +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/index.js @@ -13,19 +13,19 @@ import {Provider} from "react-redux"; const routes = [ { - path: '/publisher/Login', + path: '/publisher/login', component: Login }, { - path: '/publisher/dashboard', + path: '/publisher', component: Dashboard, routes: [ { - path: '/publisher/dashboard/apps', + path: '/publisher/apps', component: Apps }, { - path: '/publisher/dashboard/new-app', + path: '/publisher/new-app', component: AddNewApp } ] 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 d6b1b3fa15..e49b031118 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 @@ -1,9 +1,10 @@ import React from "react"; -import {Typography, Row, Col, Form, Icon, Input, Button, Checkbox,} from 'antd'; +import {Typography, Row, Col, Form, Icon, Input, Button, Checkbox} from 'antd'; import styles from './Login.less'; import axios from 'axios'; const {Title} = Typography; +const {Text} = Typography; class Login extends React.Component { render() { @@ -35,17 +36,41 @@ class Login extends React.Component { } class NormalLoginForm extends React.Component { + + constructor(props) { + super(props); + this.state = { + inValid: false, + loading : false + }; + } + handleSubmit = (e) => { + const thisForm = this; e.preventDefault(); this.props.form.validateFields((err, values) => { + thisForm.setState({ + inValid: false + }); if (!err) { + thisForm.setState({ + loading: true + }); console.log('Received values of form: ', values); - let data = "username="+values.username+"&password="+values.password+"&platform=publisher"; + let data = "username=" + values.username + "&password=" + values.password + "&platform=publisher"; axios.post('https://localhost:9443/api/application-mgt-handler/v1.0/login', data - ).then(res => { - console.log(res); - console.log(res.data); - }) + ).then(res => { + if (res.status === 200) { + window.location = res.data.url; + } + }).catch(function (error) { + if (error.response.status === 400) { + thisForm.setState({ + inValid: true, + loading: false + }); + } + }); } }); @@ -53,6 +78,14 @@ class NormalLoginForm extends React.Component { render() { const {getFieldDecorator} = this.props.form; + let errorMsg = ""; + if (this.state.inValid) { + errorMsg = Invalid Login Details; + } + let loading = ""; + if (this.state.loading) { + loading = Loading..; + } return (
@@ -72,13 +105,16 @@ class NormalLoginForm extends React.Component { placeholder="Password"/> )} + {loading} + {errorMsg} {getFieldDecorator('remember', { valuePropName: 'checked', initialValue: true, })( - Remember me.... + Remember me )} +
Forgot password