client/src/components/Settings.js
author ymh <ymh.work@gmail.com>
Fri, 30 Nov 2018 10:53:15 +0100
changeset 183 f8f3af9e5c83
parent 170 7da1d5137b0b
child 191 3f71ad81a5a9
permissions -rw-r--r--
Change the settings to avoid using Session authentication for rest framework as it raise exceptions in case client and backend are on the same domain On the filter, adapt to take into account new version of django_filters
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
53
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     1
import React, { Component } from 'react';
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     2
import { connect } from 'react-redux';
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     3
import { bindActionCreators } from 'redux';
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     4
import '../App.css';
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     5
import Navbar from './Navbar';
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     6
import * as userActions from '../actions/userActions';
151
57d63a248f0d Update to Bootstrap 4
salimr <riwad.salim@yahoo.fr>
parents: 143
diff changeset
     7
import './Settings.css';
168
ea92f4fe783d - move SlateEditor and dependencies to its own folder
ymh <ymh.work@gmail.com>
parents: 151
diff changeset
     8
import { getCurrentUser } from '../selectors/authSelectors';
53
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     9
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    10
class Settings extends Component {
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    11
168
ea92f4fe783d - move SlateEditor and dependencies to its own folder
ymh <ymh.work@gmail.com>
parents: 151
diff changeset
    12
  updateSettings = (e) => {
ea92f4fe783d - move SlateEditor and dependencies to its own folder
ymh <ymh.work@gmail.com>
parents: 151
diff changeset
    13
    e.preventDefault();
53
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    14
    const username = this.props.currentUser.username;
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    15
    const firstname = this.firstname.value;
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    16
    const lastname = this.lastname.value;
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    17
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    18
    this.props.userActions.updateSettings(username, firstname, lastname);
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    19
  }
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    20
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    21
  render() {
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    22
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    23
    const firstname = this.props.currentUser ? this.props.currentUser.first_name : '';
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    24
    const lastname = this.props.currentUser ? this.props.currentUser.last_name : '';
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    25
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    26
    return (
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    27
      <div>
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    28
        <Navbar history={this.props.history} />
143
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    29
        <div className="container-fluid">
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    30
          <div className="row">
151
57d63a248f0d Update to Bootstrap 4
salimr <riwad.salim@yahoo.fr>
parents: 143
diff changeset
    31
            <div className="col-lg-6 offset-md-3">
53
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    32
              <form>
143
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    33
                <div className="form-group">
151
57d63a248f0d Update to Bootstrap 4
salimr <riwad.salim@yahoo.fr>
parents: 143
diff changeset
    34
                  <label className="col-form-label text-primary">Prénom</label>
170
7da1d5137b0b Upgrade dependencies and correct theme colors
ymh <ymh.work@gmail.com>
parents: 168
diff changeset
    35
                  <input className="form-control bg-irinotes-form text-muted"
53
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    36
                    name="firstname"
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    37
                    defaultValue={ firstname }
143
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    38
                    placeholder="Entrez un prénom"
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    39
                    ref={(firstname) => { this.firstname = firstname; }}
53
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    40
                  />
143
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    41
                </div>
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    42
                <div className="form-group">
151
57d63a248f0d Update to Bootstrap 4
salimr <riwad.salim@yahoo.fr>
parents: 143
diff changeset
    43
                  <label className="col-form-label text-primary">Nom</label>
170
7da1d5137b0b Upgrade dependencies and correct theme colors
ymh <ymh.work@gmail.com>
parents: 168
diff changeset
    44
                  <input className="form-control bg-irinotes-form text-muted"
53
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    45
                    name="lastname"
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    46
                    defaultValue={ lastname }
143
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    47
                    placeholder="Entrez un nom"
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    48
                    ref={(lastname) => { this.lastname = lastname; }}
53
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    49
                  />
143
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    50
                </div>
53
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    51
              </form>
151
57d63a248f0d Update to Bootstrap 4
salimr <riwad.salim@yahoo.fr>
parents: 143
diff changeset
    52
              <button type="submit" className="btn btn-primary btn-lg text-secondary" onClick={this.updateSettings}>Enregistrer</button>
143
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    53
            </div>
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    54
          </div>
cfcbf4bc66f1 Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents: 142
diff changeset
    55
        </div>
53
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    56
      </div>
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    57
    );
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    58
  }
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    59
}
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    60
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    61
function mapStateToProps(state, props) {
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    62
  return {
168
ea92f4fe783d - move SlateEditor and dependencies to its own folder
ymh <ymh.work@gmail.com>
parents: 151
diff changeset
    63
    currentUser: getCurrentUser(state),
53
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    64
  };
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    65
}
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    66
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    67
function mapDispatchToProps(dispatch) {
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    68
  return {
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    69
    userActions: bindActionCreators(userActions, dispatch)
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    70
  }
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    71
}
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    72
d8588379529e Add settings page.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    73
export default connect(mapStateToProps, mapDispatchToProps)(Settings);