Advertisement
Guest User

Untitled

a guest
Nov 2nd, 2017
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import React, {Component } from 'react';
  2. import {Modal, Button, FormGroup, FormControl, ControlLabel} from 'react-bootstrap';
  3. import auth from '../General/auth.js';
  4. import axios from 'axios';
  5.  
  6.  
  7. export const RegisterModal = React.createClass({
  8.     getInitialState() {
  9.         return {
  10.             showModal: false,
  11.             formStatus:'',
  12.  
  13.             Username: '',
  14.             Password: '',
  15.             Administrator: 0};
  16.     },
  17.  
  18.     close() {
  19.         this.setState({ showModal: false });
  20.     },
  21.  
  22.     open() {
  23.         this.setState({ showModal: true });
  24.     },
  25.     handleChange(e){
  26.         this.setState({[e.target.name]: e.target.value});
  27.  
  28.         //Check if not empty
  29.         if(e.target.value != ''){
  30.           this.setState({formStatus: 'success'});
  31.         }
  32.         else{
  33.           this.setState({formStatus: 'error'});
  34.         }
  35.  
  36.     },
  37.     register(e){
  38.         e.preventDefault();
  39.         console.log(this.state);
  40.         axios.post('/users/register', {Username: this.state.Username,
  41.                                         Password: this.state.Password,
  42.                                         FirstName: this.state.FirstName,
  43.                                         LastName:this.state.LastName,
  44.                                         EmailAddress:this.state.EmailAddress,
  45.                                         PhoneNumber:this.state.PhoneNumber,
  46.                                         Administrator:this.state.Administrator})
  47.             .then(res => {
  48.             console.log(res);
  49.             if(res.data.success){
  50.                 const token = res.data.token;
  51.                 localStorage.setItem('jwtToken', token);
  52.                 auth.setAuthToken(token);
  53.                 auth.setIsAdmin(res.data.user.administrator);
  54.             }
  55.             else{
  56.                 console.log(res.data.msg)
  57.             }
  58.         });
  59.     },
  60.  
  61.     render() {
  62.       if(auth.loggedIn()){
  63.         if(auth.getIsAdmin() == 1){
  64.           return(
  65.             <Redirect push to="/AdminDashboard" />
  66.           );
  67.         }
  68.         else if(auth.getIsAdmin() == 0){
  69.           return(
  70.             <Redirect push to="/ClientDashboard" />
  71.           );
  72.         }
  73.       }
  74.       console.log(this.state.formStatus)
  75.         return (
  76.             <div>
  77.               <Button bsStyle="default" bsSize="sm" onClick={this.open}>
  78.                 Register
  79.               </Button>
  80.  
  81.               <Modal show={this.state.showModal} onHide={this.close}>
  82.                 <Modal.Header closeButton>
  83.                   <Modal.Title>Register</Modal.Title>
  84.                 </Modal.Header>
  85.                 <Modal.Body>
  86.                   <form>
  87.                     <FormGroup validationState={this.state.formStatus}>
  88.                       <ControlLabel>First Name</ControlLabel>
  89.                       <FormControl type="text" name="FirstName" onChange={this.handleChange} placeholder="Enter First Name" />
  90.                       <FormControl.Feedback/>
  91.                     </FormGroup>
  92.  
  93.                       <ControlLabel>Last Name</ControlLabel>
  94.                       <FormControl type="text" name="LastName"  onChange={this.handleChange} placeholder="Enter Last Name"/>
  95.  
  96.                       <ControlLabel>E-mail</ControlLabel>
  97.                       <FormControl type="email" name="EmailAddress" onChange={this.handleChange} placeholder="Enter E-mail"/>
  98.  
  99.                       <ControlLabel>Street Number</ControlLabel>
  100.                       <FormControl type="number" name="StreetNumber" onChange={this.handleChange} placeholder="Enter Street Number"/>
  101.  
  102.                       <ControlLabel>Street Name</ControlLabel>
  103.                       <FormControl type="text" name="streetName" onChange={this.handleChange} placeholder="Enter Street Name"/>
  104.  
  105.                       <ControlLabel>Apt:</ControlLabel>
  106.                       <FormControl type="text" name="apt" onChange={this.handleChange} placeholder="Enter Apt Number"/>
  107.  
  108.                       <ControlLabel>City</ControlLabel>
  109.                       <FormControl type="text" name="city" onChange={this.handleChange} placeholder="Enter City"/>
  110.  
  111.                       <ControlLabel>Postal Code</ControlLabel>
  112.                       <FormControl type="text" name="postalCode" onChange={this.handleChange} placeholder="Enter Postal Code"/>
  113.  
  114.                       <ControlLabel>Country</ControlLabel>
  115.                       <FormControl componentClass="select" name="country" onChange={this.handleChange}>
  116.                         <option disabled selected>Select Country</option>
  117.                         <option value="canada">Canada</option>
  118.                         <option value="usa">USA</option>
  119.                       </FormControl>
  120.  
  121.                       <ControlLabel>PhoneNumber</ControlLabel>
  122.                       <FormControl type="tel" name="PhoneNumber" onChange={this.handleChange} placeholder="Enter Phone Number" />
  123.  
  124.                       <ControlLabel>Username</ControlLabel>
  125.                       <FormControl type="text" name="Username" value={this.state.Username} onChange={this.handleChange} placeholder="Enter Username"/>
  126.  
  127.                       <ControlLabel>Password</ControlLabel>
  128.                       <FormControl type="password" name="Password" value={this.state.Password} onChange={this.handleChange} placeholder="Enter Password"/>
  129.  
  130.                       <ControlLabel>Confirm Password</ControlLabel>
  131.                       <FormControl type="password" name="Password" placeholder="Confirm Password"/>
  132.  
  133.                       <br/>
  134.                       <Button bsStyle="primary" onClick={this.register}>Submit</Button>
  135.                   </form>
  136.                 </Modal.Body>
  137.                 <Modal.Footer>
  138.                   <Button onClick={this.close}>Close</Button>
  139.                 </Modal.Footer>
  140.               </Modal>
  141.             </div>
  142.         );
  143.     }
  144.  
  145. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement