From 2a5cc97de9df4456946f8d838e2a5bb788f3a42b Mon Sep 17 00:00:00 2001 From: jayasanka Date: Tue, 19 Mar 2019 21:42:57 +0530 Subject: [PATCH 1/4] Fixed routing --- .../react-app/package.json | 3 ++- .../react-app/src/App.js | 16 +++++++++------- .../react-app/src/pages/dashboard/index.js | 19 +++++++++++++++++++ .../react-app/src/pages/login.js | 17 +++++++++++++++++ 4 files changed, 47 insertions(+), 8 deletions(-) create mode 100644 components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/pages/dashboard/index.js create mode 100644 components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/pages/login.js 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 ec52c2e3b84..57761af6ca0 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 @@ -13,7 +13,8 @@ "antd": "^3.15.0", "react": "^16.8.4", "react-dom": "^16.8.4", - "react-scripts": "2.1.8" + "react-scripts": "2.1.8", + "react-router-dom": "latest" }, "devDependencies": { "@babel/core": "^7.0.0", diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/App.js b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/App.js index 5c76e235ec0..717d6fd7c3b 100644 --- a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/App.js +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/App.js @@ -1,17 +1,19 @@ import React from "react"; -import { version, Button } from 'antd'; import "antd/dist/antd.css"; import "./index.css"; +import {BrowserRouter, Route, Switch} from 'react-router-dom'; +import Dashboard from "./pages/dashboard" +import Login from "./pages/login" class App extends React.Component { render() { return ( -
-

Current antd version: {version}

-

Please fork this codesandbox to reproduce your issue.

-

请 fork 这个链接来重现你碰到的问题。

- -
+ + + + + + ); } } diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/pages/dashboard/index.js b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/pages/dashboard/index.js new file mode 100644 index 00000000000..cc31b7f9ad5 --- /dev/null +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/pages/dashboard/index.js @@ -0,0 +1,19 @@ +import React from "react"; +import { version, Button } from 'antd'; +import {Link} from 'react-router-dom'; + +class Dashboard extends React.Component { + render() { + return ( +
+

Currentdddddd antd version: {version}

+

Please fork this codesandbox to reproduce your issue.

+

请 fork 这个链接来重现你碰到的问题。

+ login + +
+ ); + } +} + +export default Dashboard; 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 new file mode 100644 index 00000000000..3694ec01078 --- /dev/null +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/pages/login.js @@ -0,0 +1,17 @@ +import React from "react"; +import { version, Button } from 'antd'; + +class Login extends React.Component { + render() { + return ( +
+

Current antd version: {version}

+

Please fork this codesandbox to reproduce your issue.

+

请 fork 这个链接来重现你碰到的问题。

+ +
+ ); + } +} + +export default Login; From ea2dd0a024bd77473b95b2320801b34b08d339ba Mon Sep 17 00:00:00 2001 From: jayasanka Date: Tue, 19 Mar 2019 22:41:17 +0530 Subject: [PATCH 2/4] configured of LESS Module in webpack --- .../react-app/package.json | 4 ++-- .../react-app/webpack.config.js | 23 +++++++++++++------ 2 files changed, 18 insertions(+), 9 deletions(-) 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 57761af6ca0..277146278a2 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 @@ -33,7 +33,7 @@ "html-webpack-plugin": "^3.2.0", "img-loader": "^3.0.1", "less": "^3.9.0", - "less-loader": "^4.0.4", + "less-loader": "^4.1.0", "mini-css-extract-plugin": "^0.5.0", "mocha": "^5.2.0", "mock-local-storage": "^1.0.5", @@ -48,7 +48,7 @@ "react-intl": "^2.4.0", "redux": "^4.0.1", "sass-loader": "^6.0.7", - "style-loader": "^0.18.1", + "style-loader": "^0.18.2", "url-loader": "^1.1.2", "webpack": "^4.27.1", "webpack-cli": "^3.1.2", diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/webpack.config.js b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/webpack.config.js index bf87b97763e..50192db9ff4 100644 --- a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/webpack.config.js +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/webpack.config.js @@ -68,13 +68,22 @@ const config = { }, { test: /\.less$/, - use: [{ - loader: "style-loader" // creates style nodes from JS strings - }, { - loader: "css-loader" // translates CSS into CommonJS - }, { - loader: "less-loader" // compiles Less to CSS - }] + use: [ + { + loader: "style-loader" // creates style nodes from JS strings + }, + { + loader: "css-loader", // translates CSS into CommonJS + options: { + sourceMap: true, + modules: true, + localIdentName: "[local]___[hash:base64:5]" + } + }, + { + loader: "less-loader" // compiles Less to CSS + } + ] }, { test: /\.(woff|woff2|eot|ttf|svg)$/, From 9361a700238fc028bc52d995d1c01192f1503c19 Mon Sep 17 00:00:00 2001 From: jayasanka Date: Wed, 20 Mar 2019 01:55:19 +0530 Subject: [PATCH 3/4] Removed comments --- .../react-app/webpack.config.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/webpack.config.js b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/webpack.config.js index 50192db9ff4..dcb16b0f5e3 100644 --- a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/webpack.config.js +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/webpack.config.js @@ -70,10 +70,10 @@ const config = { test: /\.less$/, use: [ { - loader: "style-loader" // creates style nodes from JS strings + loader: "style-loader" }, { - loader: "css-loader", // translates CSS into CommonJS + loader: "css-loader", options: { sourceMap: true, modules: true, @@ -81,7 +81,7 @@ const config = { } }, { - loader: "less-loader" // compiles Less to CSS + loader: "less-loader" } ] }, From 3dc7758d209e7cba0e963d293cb778bc301f473a Mon Sep 17 00:00:00 2001 From: jayasanka Date: Wed, 20 Mar 2019 01:57:01 +0530 Subject: [PATCH 4/4] Created login page --- .../react-app/public/images/logo.png | Bin 35921 -> 0 bytes .../react-app/public/images/logo.svg | 798 ++++++++++++++++++ .../react-app/src/App.js | 3 +- .../react-app/src/pages/Login.js | 83 ++ .../react-app/src/pages/Login.less | 34 + .../react-app/src/pages/dashboard/index.js | 2 +- .../react-app/src/pages/login.js | 17 - 7 files changed, 917 insertions(+), 20 deletions(-) delete mode 100644 components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/public/images/logo.png create mode 100644 components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/public/images/logo.svg create mode 100644 components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/pages/Login.js create mode 100644 components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/pages/Login.less delete mode 100644 components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/pages/login.js diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/public/images/logo.png b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/public/images/logo.png deleted file mode 100644 index 2cf18f9cfddc8a686d87e26ac26f92433e1b267e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35921 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 ?zY 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 diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/public/images/logo.svg b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/public/images/logo.svg new file mode 100644 index 00000000000..05742db887f --- /dev/null +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/public/images/logo.svg @@ -0,0 +1,798 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/App.js b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/App.js index 717d6fd7c3b..495a057468b 100644 --- a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/App.js +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/App.js @@ -1,9 +1,8 @@ import React from "react"; import "antd/dist/antd.css"; -import "./index.css"; import {BrowserRouter, Route, Switch} from 'react-router-dom'; import Dashboard from "./pages/dashboard" -import Login from "./pages/login" +import Login from "./pages/Login" class App extends React.Component { render() { 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 new file mode 100644 index 00000000000..f4faa2a3489 --- /dev/null +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/pages/Login.js @@ -0,0 +1,83 @@ +import React from "react"; +import {Typography, Row, Col, Form, Icon, Input, Button, Checkbox,} from 'antd'; +import styles from './Login.less'; +const {Title} = Typography; + +class Login extends React.Component { + render() { + return ( +

+
+ + + + + + + + Login + + + + + + + + + +
+
+ + ); + } +} + +class NormalLoginForm extends React.Component { + handleSubmit = (e) => { + e.preventDefault(); + this.props.form.validateFields((err, values) => { + if (!err) { + console.log('Received values of form: ', values); + } + }); + } + + render() { + const { getFieldDecorator } = this.props.form; + return ( +
+ + {getFieldDecorator('userName', { + rules: [{ required: true, message: 'Please input your username!' }], + })( + } placeholder="Username" /> + )} + + + {getFieldDecorator('password', { + rules: [{ required: true, message: 'Please input your Password!' }], + })( + } type="password" placeholder="Password" /> + )} + + + {getFieldDecorator('remember', { + valuePropName: 'checked', + initialValue: true, + })( + Remember me + )} + Forgot password + + Or register now! + +
+ ); + } +} + +const WrappedNormalLoginForm = Form.create({ name: 'normal_login' })(NormalLoginForm); + +export default Login; diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/pages/Login.less b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/pages/Login.less new file mode 100644 index 00000000000..f04eeb84c86 --- /dev/null +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/pages/Login.less @@ -0,0 +1,34 @@ +@nice-blue: #5B83AD; +@light-blue: @nice-blue + #111; + +.header { + color: @nice-blue; +} + +.main{ + background-image: url('https://gw.alipayobjects.com/zos/rmsportal/TVYTbAXWheQpRcWDaDMu.svg'); + background-repeat: no-repeat; + background-position: center 110px; + background-size: 100%; + + .header { + color: @nice-blue; + } + + +} + +.content{ + padding-top: 128px; +} + +.logo{ + height: 44px; + margin: auto; + width: 100%; + +} + +input{ + min-height: 0; +} \ No newline at end of file diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/pages/dashboard/index.js b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/pages/dashboard/index.js index cc31b7f9ad5..ac86a24b68d 100644 --- a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/pages/dashboard/index.js +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/pages/dashboard/index.js @@ -9,7 +9,7 @@ class Dashboard extends React.Component {

Currentdddddd antd version: {version}

Please fork this codesandbox to reproduce your issue.

请 fork 这个链接来重现你碰到的问题。

- login + login ); 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 deleted file mode 100644 index 3694ec01078..00000000000 --- a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/react-app/src/pages/login.js +++ /dev/null @@ -1,17 +0,0 @@ -import React from "react"; -import { version, Button } from 'antd'; - -class Login extends React.Component { - render() { - return ( -
-

Current antd version: {version}

-

Please fork this codesandbox to reproduce your issue.

-

请 fork 这个链接来重现你碰到的问题。

- -
- ); - } -} - -export default Login;