client/src/components/CreateSession.js
author salimr <riwad.salim@yahoo.fr>
Mon, 03 Sep 2018 20:02:14 +0200
changeset 154 a28361bda28c
parent 152 4e9e755cef51
child 155 e55ae84508bf
permissions -rw-r--r--
Adapt all css classes with Bootstrap 4 Utilities
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
152
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
     1
import React, { Component } from 'react';
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
     2
import { connect } from 'react-redux';
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
     3
import { bindActionCreators } from 'redux';
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
     4
import Modal from 'react-modal';
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
     5
import uuidV1 from 'uuid/v1';
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
     6
import '../App.css';
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
     7
import * as sessionsActions from '../actions/sessionsActions';
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
     8
import * as authActions from '../actions/authActions';
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
     9
// import _ from 'lodash';
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    10
import './CreateSession.css';
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    11
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    12
class CreateSession extends Component {
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    13
    state = {
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    14
      createGroup: false,
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    15
      protocolOpen: false,
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    16
      // protocol:null
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    17
    }
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    18
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    19
  componentWillMount() {
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    20
    Modal.setAppElement('body');
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    21
  }
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    22
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    23
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    24
  openSessionModal = () => {
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    25
    this.setState({modalIsOpen: true});
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    26
    let groupName = null;
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    27
    // let protocol = null;
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    28
    if(this.props.currentGroup) {
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    29
      groupName = this.props.currentGroup.get('name');
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    30
      // protocol = this.props.currentGroup.get('protocol');
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    31
    }
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    32
    if(groupName === null) {
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    33
      groupName = (this.props.currentUser)?this.props.currentUser.get('default_group'):null;
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    34
      if(groupName != null) {
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    35
        const group = this.props.groups.find((g) => g.name === groupName);
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    36
        if(group) {
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    37
          return(
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    38
          this.setState({
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    39
          protocol: group.get('protocol')
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    40
          }))
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    41
        }
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    42
      }
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    43
    }
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    44
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    45
  }
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    46
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    47
  createSession = () => {
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    48
    const sessionId = uuidV1();
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    49
    let groupName = null;
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    50
    let protocol = null;
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    51
    if(this.props.currentGroup) {
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    52
      groupName = this.props.currentGroup.get('name');
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    53
      protocol = this.props.currentGroup.get('protocol');
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    54
    }
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    55
    if(groupName === null) {
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    56
      groupName = (this.props.currentUser)?this.props.currentUser.get('default_group'):null;
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    57
      if(groupName != null) {
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    58
        const group = this.props.groups.find((g) => g.name === groupName);
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    59
        if(group) {
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    60
          protocol = group.get('protocol');
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    61
        }
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    62
      }
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    63
    }
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    64
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    65
    this.props.sessionsActions.createSession(sessionId, groupName, protocol);
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    66
    this.props.history.push('/sessions/' + sessionId);
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    67
  }
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    68
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    69
  getGroupProtocol = () => {
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    70
    let groupName = null;
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    71
    let protocol = null;
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    72
    if(this.props.currentGroup) {
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    73
      groupName = this.props.currentGroup.get('name');
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    74
      protocol = this.props.currentGroup.get('protocol');
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    75
    }
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    76
    if(groupName === null) {
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    77
      groupName = (this.props.currentUser)?this.props.currentUser.get('default_group'):null;
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    78
      if(groupName != null) {
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    79
        const group = this.props.groups.find((g) => g.name === groupName);
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    80
        if(group) {
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    81
          protocol = group.get('protocol');
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    82
          return(
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    83
            protocol
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    84
          );
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    85
        }
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    86
      }
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    87
    }
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    88
  }
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    89
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    90
  // onChange = (e) => {
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    91
  //   const { name, value } = e.target;
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    92
  //   const changes = { [name]: value }
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    93
  //   this.onChangeThrottle(changes);
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    94
  // }
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    95
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    96
  // onChangeThrottle = _.debounce((changes) => {
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    97
  //   this.props.sessionsActions.updateSession(this.props.currentSession, changes);
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    98
  // }, 750)
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
    99
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   100
  onGroupChange = (e) => {
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   101
    const groupName = e.target.value;
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   102
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   103
    const group = this.props.groups.find((g) => g.get('name') === groupName);
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   104
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   105
    this.props.sessionsActions.updateSession(this.props.currentSession, { group: groupName, protocol: group?group.get('protocol'):'' });
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   106
  }
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   107
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   108
  componentWillUpdate = (nextProps, nextState) => {
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   109
    if (nextState.createGroup && nextProps.createGroup.get('success')) {
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   110
      this.setState({ createGroup: false })
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   111
    }
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   112
  }
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   113
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   114
  toggleProtocol = () => {
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   115
    this.setState({
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   116
      protocolOpen: !this.state.protocolOpen,
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   117
      show: false
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   118
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   119
    });
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   120
  }
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   121
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   122
  closeModal = () => {
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   123
    this.setState({modalIsOpen: false});
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   124
  }
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   125
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   126
  handleModalCloseRequest = (e) => {
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   127
    // opportunity to validate something and keep the modal open even if it
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   128
    // requested to be closed
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   129
    e.preventDefault();
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   130
    this.setState({modalIsOpen: false});
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   131
  }
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   132
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   133
  render() {
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   134
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   135
    // if (!this.props.currentSession) {
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   136
    //   return (
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   137
    //     <form></form>
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   138
    //   )
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   139
    // }
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   140
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   141
    return (
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   142
      <div>
154
a28361bda28c Adapt all css classes with Bootstrap 4 Utilities
salimr <riwad.salim@yahoo.fr>
parents: 152
diff changeset
   143
      <a id="session-button" className="text-center" onClick={this.openSessionModal}>Créer une nouvelle session</a>
152
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   144
      <Modal
154
a28361bda28c Adapt all css classes with Bootstrap 4 Utilities
salimr <riwad.salim@yahoo.fr>
parents: 152
diff changeset
   145
      className="Modal__Bootstrap modal-dialog"
152
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   146
      // closeTimeoutMS={150}
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   147
      isOpen={this.state.modalIsOpen}
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   148
      onRequestClose={this.handleModalCloseRequest}
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   149
      >
154
a28361bda28c Adapt all css classes with Bootstrap 4 Utilities
salimr <riwad.salim@yahoo.fr>
parents: 152
diff changeset
   150
        <div className="modal-content bg-primary w-75">
a28361bda28c Adapt all css classes with Bootstrap 4 Utilities
salimr <riwad.salim@yahoo.fr>
parents: 152
diff changeset
   151
          <div className="modal-body">
152
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   152
            <form onSubmit={ e => { e.preventDefault() } }>
154
a28361bda28c Adapt all css classes with Bootstrap 4 Utilities
salimr <riwad.salim@yahoo.fr>
parents: 152
diff changeset
   153
            <div className="form-group ml-5 pl-5">
a28361bda28c Adapt all css classes with Bootstrap 4 Utilities
salimr <riwad.salim@yahoo.fr>
parents: 152
diff changeset
   154
                <label className="col-form-label text-secondary">Groupe</label>
152
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   155
                {/* <p>{this.props.currentSession.group}</p> */}
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   156
              </div>
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   157
              <div className="form-group">
154
a28361bda28c Adapt all css classes with Bootstrap 4 Utilities
salimr <riwad.salim@yahoo.fr>
parents: 152
diff changeset
   158
                <label className="col-form-label text-secondary font-weight-bold pt-3">Titre</label>
a28361bda28c Adapt all css classes with Bootstrap 4 Utilities
salimr <riwad.salim@yahoo.fr>
parents: 152
diff changeset
   159
                <input className="form-control text-primary w-100"
152
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   160
                  name="title"
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   161
                  // defaultValue={ this.props.currentSession.title }
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   162
                  onChange={ this.onChange }
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   163
                  type="text"
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   164
                  placeholder="Entrez un titre"
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   165
                />
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   166
              </div>
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   167
              <div className="form-group">
154
a28361bda28c Adapt all css classes with Bootstrap 4 Utilities
salimr <riwad.salim@yahoo.fr>
parents: 152
diff changeset
   168
                <label className="col-form-label text-secondary font-weight-bold pt-3 mt-3">Description</label>
a28361bda28c Adapt all css classes with Bootstrap 4 Utilities
salimr <riwad.salim@yahoo.fr>
parents: 152
diff changeset
   169
                <textarea className="form-control text-primary w-100"
152
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   170
                  type="textarea"
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   171
                  name="description"
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   172
                  // defaultValue={ this.props.currentSession.description }
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   173
                  onChange={ this.onChange }
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   174
                  placeholder="Entrez une description"
154
a28361bda28c Adapt all css classes with Bootstrap 4 Utilities
salimr <riwad.salim@yahoo.fr>
parents: 152
diff changeset
   175
                  row="3"></textarea>
152
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   176
              </div>
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   177
              <div className="form-group">
154
a28361bda28c Adapt all css classes with Bootstrap 4 Utilities
salimr <riwad.salim@yahoo.fr>
parents: 152
diff changeset
   178
                <label className="col-form-label text-secondary font-weight-bold mt-5 ml-5" onClick={this.toggleProtocol}>Protocole de la prise de note {this.state.protocolOpen?<span className="material-icons protocol-toggle">&#xE313;</span>:<span className="material-icons protocol-toggle">&#xE315;</span>}</label>
152
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   179
                <div className={ `collapse ${this.state.protocolOpen?'in':''}`} >
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   180
                  {/* <pre>{JSON.stringify(this.props.currentSession.protocol, null, 2)}</pre> */}
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   181
                  <pre>{JSON.stringify(this.getGroupProtocol(), null, 2)}</pre>
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   182
                </div>
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   183
              </div>
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   184
              <div className="text-center">
154
a28361bda28c Adapt all css classes with Bootstrap 4 Utilities
salimr <riwad.salim@yahoo.fr>
parents: 152
diff changeset
   185
              <button id="create-button" type="submit" className="btn btn-secondary btn-lg text-primary font-weight-bold m-3" onClick={this.createSession}>Commencer</button>
152
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   186
              </div>
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   187
            </form>
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   188
          </div>
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   189
        </div>
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   190
      </Modal>
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   191
      </div>
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   192
    );
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   193
  }
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   194
}
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   195
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   196
function mapStateToProps(state, props) {
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   197
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   198
  let group;
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   199
  if (props.session && props.session.get('group')) {
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   200
    group = state.get('groups').find(group => props.session.get('group') === group.get('name'))
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   201
  }
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   202
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   203
  return {
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   204
    currentSession: props.session,
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   205
    createGroup: state.get('createGroup'),
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   206
    groups: state.get('groups'),
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   207
    group
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   208
  };
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   209
}
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   210
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   211
function mapDispatchToProps(dispatch) {
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   212
  return {
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   213
    sessionsActions: bindActionCreators(sessionsActions, dispatch),
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   214
    authActions: bindActionCreators(authActions, dispatch),
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   215
  }
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   216
}
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   217
4e9e755cef51 Add CreateSession component
salimr <riwad.salim@yahoo.fr>
parents:
diff changeset
   218
export default connect(mapStateToProps, mapDispatchToProps)(CreateSession);