diff --git a/.gitignore b/.gitignore
index 447f30c..efb558f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -59,5 +59,5 @@ typings/
dist/
node_modules/
-public/
-.vscode/
+
+
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
new file mode 100644
index 0000000..f5deb72
--- /dev/null
+++ b/.vscode/tasks.json
@@ -0,0 +1,29 @@
+{
+ // See https://go.microsoft.com/fwlink/?LinkId=733558
+ // for the documentation about the tasks.json format
+ "version": "0.1.0",
+ "isShellCommand": true,
+ "showOutput": "always",
+ "suppressTaskName": false,
+ "args": [
+ "--color"
+ ],
+
+ "tasks": [
+ {
+ "taskName": "npm:webpack-dev-server",
+ "command": "npm",
+ "args": ["run", "webpack-dev-server"],
+ "isBuildCommand": true,
+ "isTestCommand": false
+ },
+ {
+ "taskName": "gulp:webpack",
+ "command": "gulp",
+ "args": ["webpack"],
+ "isBuildCommand": true,
+ "isTestCommand": false
+ }
+
+ ]
+}
diff --git a/public/favicon.ico b/public/favicon.ico
new file mode 100644
index 0000000..5c125de
Binary files /dev/null and b/public/favicon.ico differ
diff --git a/public/index.html b/public/index.html
new file mode 100644
index 0000000..305e824
--- /dev/null
+++ b/public/index.html
@@ -0,0 +1,19 @@
+
+
+
+
+ Hello React!
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/ts/components/rest.tsx b/src/ts/components/rest.tsx
new file mode 100644
index 0000000..a08f4e0
--- /dev/null
+++ b/src/ts/components/rest.tsx
@@ -0,0 +1,34 @@
+
+
+const url = "http://192.168.1.203:8080/v1/overflow/services";
+
+export class OFRest {
+
+ obj: any;
+
+
+ constructor(serviceName: string, methodName: string, data: any) {
+
+ this.obj = {
+ "serviceName": serviceName,
+ "methodName": methodName,
+ "param": data
+
+ };
+
+
+
+ }
+
+ public Call() {
+ return fetch(url, {
+ method: 'POST',
+ headers: {
+ 'Accept': 'application/json',
+ // mode: 'no-cors'
+ },
+ body: JSON.stringify(this.obj)
+ })
+ }
+
+}
\ No newline at end of file
diff --git a/src/ts/containers/member/login.tsx b/src/ts/containers/member/login.tsx
new file mode 100644
index 0000000..6565a26
--- /dev/null
+++ b/src/ts/containers/member/login.tsx
@@ -0,0 +1,177 @@
+/**
+ * In this file, we create a React component
+ * which incorporates components provided by Material-UI.
+ */
+import * as React from 'react';
+import RaisedButton from 'material-ui/RaisedButton';
+import Dialog from 'material-ui/Dialog';
+import { deepOrange500 } from 'material-ui/styles/colors';
+import FlatButton from 'material-ui/FlatButton';
+import getMuiTheme from 'material-ui/styles/getMuiTheme';
+import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider';
+
+import * as ReactDOM from 'react-dom';
+
+import Divider from 'material-ui/Divider';
+import Paper from 'material-ui/Paper';
+import TextField from 'material-ui/TextField';
+
+import SelectField from 'material-ui/SelectField';
+import MenuItem from 'material-ui/MenuItem';
+
+import Slider from 'material-ui/Slider';
+
+import * as http from "http"
+
+
+
+
+const styles = {
+ body: {
+ textAlign: 'center',
+ },
+ container: {
+ textAlign: 'center',
+
+ },
+
+ textfield: {
+ width: 300,
+ marginLeft: 3
+ },
+
+ customWidth: {
+ width: 150,
+ },
+ button: {
+ margin: 12,
+ }
+};
+
+const muiTheme = getMuiTheme({
+ palette: {
+ accent1Color: deepOrange500,
+ },
+});
+
+export class MemberLogin extends React.Component {
+ constructor(props: any, context: any) {
+ super(props, context);
+
+ this.handleSignUp = this.handleSignUp.bind(this);
+
+ this.state = {
+ open: false,
+ value: 1,
+
+ email: "",
+ pw: "",
+ };
+ }
+
+ handleChange = () => this.setState({});
+
+ private emailInput: any;
+
+ handleRequestClose = () => {
+ this.setState({
+ open: false,
+ });
+ }
+
+ handleTouchTap = () => {
+ this.setState({
+ open: true,
+ });
+ }
+
+ handleSignUp = () => {
+
+ let output: string;
+ let obj: any; //new object declaration
+ obj = {
+ "email": this.state.email,
+ "pwSalt": this.state.pw,
+ };
+
+ let exeObj: any;
+ exeObj = {
+ "serviceName": "Member",
+ "methodName": "Login",
+ "param": obj
+ }
+
+
+ output = JSON.stringify(exeObj);
+
+ // obj = { "value": output };
+
+ fetch('http://192.168.1.203:8080/v1/overflow/services', {
+ method: 'POST',
+ headers: {
+ 'Accept': 'application/json',
+ // mode: 'no-cors'
+ },
+ body: output
+ }).then(function (response) {
+ return response.json();
+ }).then(function (json) {
+ console.log(json);
+
+ }).catch((err) => {
+ console.log(err);
+ });
+
+
+
+
+
+ }
+
+
+
+btnTouchTap = () => {
+ alert(event)
+};
+
+render() {
+
+ return (
+
+
+
+
Log in with a overflow Account:
+
+ this.setState({ email: newValue })}
+ />
+
+
+
+ this.setState({ pw: newValue })}
+ />
+
+
+
+
+
+
+
+
+ );
+}
+}
+
diff --git a/src/ts/containers/member/regist.tsx b/src/ts/containers/member/regist.tsx
index bf7ec16..8293cf3 100644
--- a/src/ts/containers/member/regist.tsx
+++ b/src/ts/containers/member/regist.tsx
@@ -25,6 +25,8 @@ import * as http from "http"
import { MemberRegistResult } from './registResult';
+import { OFRest } from '../../components/rest';
+
const styles = {
body: {
@@ -60,10 +62,13 @@ export class MemberRegist extends React.Component {
this.handleSignUp = this.handleSignUp.bind(this);
+
+
this.state = {
open: false,
value: 1,
+ id:0,
email: "",
name: "",
company: "",
@@ -76,17 +81,7 @@ export class MemberRegist extends React.Component {
private emailInput: any;
- handleRequestClose = () => {
- this.setState({
- open: false,
- });
- }
-
- handleTouchTap = () => {
- this.setState({
- open: true,
- });
- }
+
handleSignUp = () => {
@@ -100,17 +95,74 @@ export class MemberRegist extends React.Component {
"phone": this.state.phone
};
- let exeObj :any;
+ let os: OFRest = new OFRest("Member", "Regist", obj);
+
+ os.Call().then(function (res) {
+ return res.json();
+ }).then(function(json) {
+ console.log(json);
+ ReactDOM.render(, document.getElementById('example'));
+ }).catch(function(err) {
+console.log(err);
+ });
+
+ // let exeObj: any;
+ // exeObj = {
+ // "serviceName": "Member",
+ // "methodName": "Regist",
+ // "param": obj
+ // }
+
+
+ // output = JSON.stringify(exeObj);
+
+ // // obj = { "value": output };
+
+ // fetch('http://192.168.1.203:8080/v1/overflow/services', {
+ // method: 'POST',
+ // headers: {
+ // 'Accept': 'application/json',
+ // // mode: 'no-cors'
+ // },
+ // body: output
+ // }).then(function (response) {
+ // return response.json();
+ // }).then(function (json) {
+ // console.log(json);
+ // ReactDOM.render(, document.getElementById('example')
+ // );
+ // }).catch((err) => {
+ // console.log(err);
+ // });
+
+
+
+
+
+ }
+
+ handleTestRead = () => {
+ let output: string;
+ let obj: any; //new object declaration
+ obj = {
+ "id":this.state.id,
+ "email": this.state.email,
+ "pwSalt": this.state.pw,
+ "name": this.state.name,
+ "company": this.state.company,
+ "phone": this.state.phone
+ };
+
+ let exeObj: any;
exeObj = {
- "serviceName":"Member",
- "methodName":"Regist",
- "param":obj
- }
+ "serviceName": "Member",
+ "methodName": "Read",
+ "param": obj
+ };
output = JSON.stringify(exeObj);
- // obj = { "value": output };
fetch('http://192.168.1.203:8080/v1/overflow/services', {
method: 'POST',
@@ -123,101 +175,183 @@ export class MemberRegist extends React.Component {
return response.json();
}).then(function (json) {
console.log(json);
- ReactDOM.render(, document.getElementById('example')
- );
}).catch((err) => {
- console.log(err);
- });
-
-
-
-
-
- }
-
-
- handleResultContainer = () => {
- ReactDOM.render(
- ,
- document.getElementById('example')
- );
- }
-
-
- btnTouchTap = () => {
- alert(event)
- };
-
- render() {
-
- return (
-
-
-
- Get started with Overflow
-
- this.setState({ email: newValue })}
- />
-
- this.setState({ name: newValue })}
-
- />
-
-
- this.setState({ company: newValue })}
- />
-
-
- this.setState({ phone: newValue })}
- />
-
-
- this.setState({ pw: newValue })}
- />
-
-
-
-
-
-
-
-
- );
- }
+ console.log(err);
+ });
+}
+
+handleTestUpdate = () => {
+ let output: string;
+ let obj: any; //new object declaration
+ obj = {
+ "id":this.state.id,
+ "email": this.state.email,
+ "pwSalt": this.state.pw,
+ "name": this.state.name,
+ "company": this.state.company,
+ "phone": this.state.phone
+ };
+
+ let exeObj: any;
+ exeObj = {
+ "serviceName": "Member",
+ "methodName": "Modify",
+ "param": obj
+ };
+
+
+ output = JSON.stringify(exeObj);
+
+
+ fetch('http://192.168.1.203:8080/v1/overflow/services', {
+ method: 'POST',
+ headers: {
+ 'Accept': 'application/json',
+ // mode: 'no-cors'
+ },
+ body: output
+ }).then(function (response) {
+ return response.json();
+ }).then(function (json) {
+ console.log(json);
+ }).catch((err) => {
+ console.log(err);
+ });
+}
+
+handleTestDelete = () => {
+ let output: string;
+ let obj: any; //new object declaration
+ obj = {
+ "id":this.state.id,
+ "email": this.state.email,
+ "pwSalt": this.state.pw,
+ "name": this.state.name,
+ "company": this.state.company,
+ "phone": this.state.phone
+ };
+
+ let exeObj: any;
+ exeObj = {
+ "serviceName": "Member",
+ "methodName": "Remove",
+ "param": obj
+ };
+
+
+ output = JSON.stringify(exeObj);
+
+
+ fetch('http://192.168.1.203:8080/v1/overflow/services', {
+ method: 'POST',
+ headers: {
+ 'Accept': 'application/json',
+ // mode: 'no-cors'
+ },
+ body: output
+ }).then(function (response) {
+ return response.json();
+ }).then(function (json) {
+ console.log(json);
+ }).catch((err) => {
+ console.log(err);
+ });
+ }
+
+
+handleResultContainer = () => {
+ ReactDOM.render(
+ ,
+ document.getElementById('example')
+ );
+}
+
+
+btnTouchTap = () => {
+ alert(event)
+};
+
+render() {
+
+ return (
+
+
+
+ Get started with Overflow
+
+ this.setState({ email: newValue })}
+ />
+
+ this.setState({ name: newValue })}
+
+ />
+
+
+ this.setState({ company: newValue })}
+ />
+
+
+ this.setState({ phone: newValue })}
+ />
+
+
+ this.setState({ pw: newValue })}
+ />
+
+
+
+
+
+
+
+
+ this.setState({ id: newValue })}
+ />
+
+
+
+ );
+}
}
diff --git a/src/ts/containers/prove/download.tsx b/src/ts/containers/prove/download.tsx
new file mode 100644
index 0000000..52ee6e8
--- /dev/null
+++ b/src/ts/containers/prove/download.tsx
@@ -0,0 +1,58 @@
+import * as React from 'react';
+
+import { List, ListItem } from 'material-ui/List';
+import ContentInbox from 'material-ui/svg-icons/content/inbox';
+import ActionGrade from 'material-ui/svg-icons/action/grade';
+import ContentSend from 'material-ui/svg-icons/content/send';
+import ContentDrafts from 'material-ui/svg-icons/content/drafts';
+import Divider from 'material-ui/Divider';
+import ActionInfo from 'material-ui/svg-icons/action/info';
+import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider';
+
+
+const styles = {
+ container: {
+ textAlign: "center",
+ width: 250,
+
+ }
+}
+
+export class ProveDownload extends React.Component {
+ constructor(props: any, context: any) {
+ super(props, context)
+
+ }
+
+
+
+ render() {
+
+
+ return (
+
+
+
+ } />
+ } />
+ } />
+ } />
+ } />
+ } />
+ } />
+ } />
+ } />
+ } />
+ } />
+ } />
+ } />
+ } />
+ } />
+ } />
+
+
+
+
+ );
+ }
+}
diff --git a/src/ts/containers/prove/installguide.tsx b/src/ts/containers/prove/installguide.tsx
new file mode 100644
index 0000000..e69de29
diff --git a/src/ts/index.tsx b/src/ts/index.tsx
index 5011661..3e831f1 100644
--- a/src/ts/index.tsx
+++ b/src/ts/index.tsx
@@ -4,6 +4,9 @@ import * as injectTapEventPlugin from 'react-tap-event-plugin';
import { MemberRegist } from './containers/member/regist';
import { MemberRegistResult } from './containers/member/registResult';
import { MemberEmailConfirm } from './containers/member/emailConfirm';
+import { MemberLogin } from './containers/member/login';
+import { Main } from './containers/Main';
+import { ProveDownload } from './containers/prove/download';
import '../scss/index.scss';