Skip to content
Snippets Groups Projects
Profile.js 5.58 KiB
Newer Older
  • Learn to ignore specific revisions
  • import React, { Component } from 'react';
    
    Tamás Szabó's avatar
    Tamás Szabó committed
    import { Container, Form, Dropdown, Divider } from 'semantic-ui-react';
    
    import { connect } from 'react-redux';
    import { textChange, submitRegistration, groupChange } from '../../actions';
    
    const options = [
      { key: 'DT', text: 'DevTeam', value: 'DT' },
      { key: 'NET', text: 'NeTeam', value: 'NET' },
      { key: 'ST', text: 'SecurITeam', value: 'ST' },
      { key: 'SYS', text: 'SysAdmin', value: 'SYS' },
      { key: 'HAT', text: 'Hallgatói Tudásbázis', value: 'HAT' },
    ];
    
    class Profile extends Component {
      componentWillMount() {
        if (!this.props.id) {
          this.props.history.push('/home');
        }
      }
    
    Tamás Szabó's avatar
    Tamás Szabó committed
        const {
    
    Tamás Szabó's avatar
    Tamás Szabó committed
          nick, groups, motivationAbout, motivationProfession, motivationExercise, signed, id,
    
    Tamás Szabó's avatar
    Tamás Szabó committed
        } = this.props;
    
    Barnabás Czémán's avatar
    Barnabás Czémán committed
          <Container
            style={{
              marginBottom: '0.5em',
              marginTop: '0.5em',
            }}
          >
    
    Tamás Szabó's avatar
    Tamás Szabó committed
            <Form>
              <Form.Input
                fluid
                name='nick'
                label='Becenév'
                onChange={e => this.props.textChange(e)}
                placeholder='Becenév'
                value={nick}
              />
    
    Tamás Szabó's avatar
    Tamás Szabó committed
              <Divider horizontal>Motiváció</Divider>
              <Form.TextArea
                rows={10}
                name='motivationAbout'
                label='Mesélj nekünk egy kicsit magadról. Milyen szakmai vagy más eredményeket értél el, amikre büszke vagy?'
                onChange={e => this.props.textChange(e)}
                placeholder='Mesélj nekünk egy kicsit magadról. Milyen szakmai vagy más eredményeket értél el, amikre büszke vagy?'
                value={motivationAbout}
              />
    
    Tamás Szabó's avatar
    Tamás Szabó committed
              <Divider horizontal />
              <Form.TextArea
                rows={10}
                label='Mit vársz el a képzéstõl, miért szeretnél rá jelentkezni, szerinted mire tudod majd használni az itt megszerzett tudást? Mit szeretnél elérni a szakmádban?'
                name='motivationProfession'
                onChange={e => this.props.textChange(e)}
                placeholder='Mit vársz el a képzéstõl, miért szeretnél rá jelentkezni, szerinted mire tudod majd használni az itt megszerzett tudást? Mit szeretnél elérni a szakmádban?'
                value={motivationProfession}
              />
    
    Tamás Szabó's avatar
    Tamás Szabó committed
    
    
    Tamás Szabó's avatar
    Tamás Szabó committed
              <Divider horizontal />
              <Form.TextArea
                rows={10}
                name='motivationExercise'
                onChange={e => this.props.textChange(e)}
                placeholder=''
                label={
    
                  <div>
                    <b>Alább találsz néhány elgondolkodtató kérdést, megoldandó feladatot. A kérdések és feladatok elkészítése opcionális, nem titkolt célunk ezzel a lelkesedés felmérése. A válaszokat a lenti szövegdobozba várjuk a feladatszámok megjelölésével.</b>
                    <ol>
                      <li>
                      Szeretnéd kedvenc tantárgyad vik.wiki oldalát elérni, de szomorúan látod, hogy az oldal nem jön be. A Steam pedig hibátlanul megy a háttérben és az emailek is megérkeznek... Szobatársadnak pont megvan a vik.wiki szerverének IP-címe. Csodálkozva látod, hogy a böngésző címsorába írva eléred a kiszolgáló webszervert. Mi lehet a baj?
                      </li>
                      <br />
                      <li>
                      Két előadás közti szünetben úgy döntesz, hogy laptopoddal az index.hu tech cikkeit fogod görgetni. Ám az oldal nem válaszol. Sőt: a régebbi oldalak többsége sem. Ugyanakkor a Facebook, Gmail, de még az egyetemi oldalak többsége is működik. Van valami ötleted mi okozhatja a gondot?
                      </li>
                      <br />
                      <li>
                      Találsz egy értelmetlen szöveget egy honlapon (például: <a href='https://static.mbraptor.ml/zebra.html'>https://static.mbraptor.ml/zebra.html</a>), de feltűnik, hogy két egyenlőségjellel fejeződik be. Nyomozz, s a végeredményt (amit találtál) írd ide!
                      </li>
                      <br />
                      <li>
                      A <b>kszkepzes18.sch.bme.hu</b> címen elérhető gépen fut egy szolgáltatás az alapértelmezett <b>5432</b> porton (a belépés mindhárom paraméteréhez használd az előző feladat végeredményét). Belépés után keresd meg a feladat megoldását!
                      </li>
                    </ol>
                  </div>
    
    Tamás Szabó's avatar
    Tamás Szabó committed
                }
                value={motivationExercise}
              />
    
    Tamás Szabó's avatar
    Tamás Szabó committed
    
    
    Tamás Szabó's avatar
    Tamás Szabó committed
              <Divider horizontal>Érdekelődés</Divider>
              <Dropdown
                fluid
                multiple
                selection
                placeholder='DevTeam, ...'
                onChange={(_, v) => this.props.groupChange(v.value)}
                options={options}
                defaultValue={groups}
              />
              <br />
              <Form.Checkbox
                name='signed'
                label='Szeretnék jelentkezni a KSZK-ba'
                onChange={(_, v) =>
                  this.props.textChange({ target: { name: v.name, value: v.checked } })
                }
                checked={signed}
              />
              <Form.Button
                primary
                onClick={() => this.props.submitRegistration({
                  nick, motivationAbout, motivationProfession, motivationExercise, signed, groups, id,
                })}
              >
                Mentés
              </Form.Button>
            </Form>
    
    Barnabás Czémán's avatar
    Barnabás Czémán committed
          </Container>
    
    Tamás Szabó's avatar
    Tamás Szabó committed
    const mapStateToProps = ({
      user: {
    
    Tamás Szabó's avatar
    Tamás Szabó committed
        nick, groups, motivationAbout, motivationProfession, motivationExercise, signed, id,
    
    Tamás Szabó's avatar
    Tamás Szabó committed
      },
    }) => ({
      nick,
      groups,
    
    Tamás Szabó's avatar
    Tamás Szabó committed
      motivationAbout,
      motivationProfession,
      motivationExercise,
    
    Tamás Szabó's avatar
    Tamás Szabó committed
      signed,
      id,
    });
    
    
    export default connect(mapStateToProps, { textChange, submitRegistration, groupChange })(Profile);