Skip to content
Snippets Groups Projects
Select Git revision
  • 658d2f6b858246e720f08047946871b87baf6ea5
  • master default protected
  • 1.3.1
  • 1.3.0
  • 1.2.0
  • 1.1.5
  • 1.1.4
  • 1.1.3
  • 1.1.2
  • 1.1.1
  • 1.1.0
  • 1.0.19
  • 1.0.18
  • 1.0.17
  • 1.0.16
  • 1.0.15
  • 1.0.14
  • 1.0.13
  • 1.0.12
  • 1.0.10
  • 1.0.9
  • 1.0.8
22 results

Trainees.js

Blame
  • Trainees.js 1.94 KiB
    import React, { Component } from 'react';
    import { Container, Table, Icon } from 'semantic-ui-react';
    import { connect } from 'react-redux';
    import { getTrainees, getStaffEvents } from '../../actions/statistics';
    
    class Trainees extends Component {
      componentWillMount() {
        this.props.getTrainees();
        this.props.getStaffEvents();
      }
    
      renderVisitedStatus(trainee) {
        return (this.props.events.map((event) => {
          if (event.visitors.includes(trainee.id)) {
            return (
              <Table.Cell textAlign='center'>
                <Icon color='green' name='checkmark' />
              </Table.Cell>);
          }
          return (
            <Table.Cell textAlign='center'>
              { event.absent.includes(trainee.id) ?
                <Icon color='orange' name='minus' />
                :
                <Icon color='red' name='cancel' />
              }
            </Table.Cell>);
        }));
      }
    
      renderTrainees() {
        return this.props.trainees.map((trainee) =>
        { return (
          <Table.Row>
            <Table.Cell>
              {trainee.full_name}
            </Table.Cell>
            {this.renderVisitedStatus(trainee)}
          </Table.Row>
        );
        });
      }
    
      renderTableHeader() {
        return (this.props.events.map(event => (
          <Table.HeaderCell>
            {event.name}
          </Table.HeaderCell>)));
      }
    
      render() {
        return (
          <Container textAlign='center'>
            <Table color='blue' celled selectable compact>
              <Table.Header>
                <Table.Row>
                  <Table.HeaderCell>Képződők</Table.HeaderCell>
                  { this.renderTableHeader() }
                </Table.Row>
              </Table.Header>
    
              <Table.Body>
                {this.props.trainees ? this.renderTrainees() : 'Nincsenek képződők'}
              </Table.Body>
            </Table>
          </Container>
        );
      }
    }
    
    const mapStateToProps = ({ trainees: { trainees }, events: { events }, user }) => ({ trainees, events, user });
    
    export default connect(mapStateToProps, { getTrainees, getStaffEvents })(Trainees);