Skip to content
Snippets Groups Projects
Profile.js 9.95 KiB
Newer Older
  • Learn to ignore specific revisions
  • import React, { Component } from 'react';
    
    Barnabás Czémán's avatar
    Barnabás Czémán committed
    import { Container, Form, Dropdown, Divider, Segment } from 'semantic-ui-react';
    
    import { connect } from 'react-redux';
    import { textChange, submitRegistration, groupChange } from '../../actions';
    
    import { getDeadline } from '../../actions/auth'
    
    import HiddenForm from '../forms/HiddenForm'
    
    
    const options = [
      { key: 'DT', text: 'DevTeam', value: 'DT' },
    
    Barnabás Czémán's avatar
    Barnabás Czémán committed
      { 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 {
    
      UNSAFE_componentWillMount() {
    
        this.props.getDeadline()
    
        if (!this.props.id) {
          this.props.history.push('/home');
        }
      }
    
    Tamás Szabó's avatar
    Tamás Szabó committed
        const {
    
    Rafael László's avatar
    Rafael László committed
          nick, groups, motivationAbout, motivationProfession, 
          motivationExercise, signed, id, deadline, messageBefore, 
          messageAfter
    
    Tamás Szabó's avatar
    Tamás Szabó committed
        } = this.props;
    
        const endDate = new Date(deadline)
    
        let canEdit = Date.now()<endDate
    
    Barnabás Czémán's avatar
    Barnabás Czémán committed
          <Container
            style={{
    
              marginTop: '1em',
    
    Barnabás Czémán's avatar
    Barnabás Czémán committed
            <Segment inverted color='red' tertiary>
    
    Rafael László's avatar
    Rafael László committed
              <p style={{ fontSize: '1.3em' }} dangerouslySetInnerHTML={{__html: messageBefore}} />
    
    Barnabás Czémán's avatar
    Barnabás Czémán committed
            </Segment>
    
            :
            <Segment inverted color='red' tertiary>
    
    Rafael László's avatar
    Rafael László committed
              <p style={{ fontSize: '1.3em' }} dangerouslySetInnerHTML={{__html: messageAfter}} />
    
    Tamás Szabó's avatar
    Tamás Szabó committed
            <Form>
    
              {canEdit ? 
                <Form.Input
    
    Tamás Szabó's avatar
    Tamás Szabó committed
                fluid
                name='nick'
                label='Becenév'
                onChange={e => this.props.textChange(e)}
                placeholder='Becenév'
                value={nick}
    
                /> :
                <HiddenForm fontWeight='bold' label='Becenév' value={nick} />
              }
    
    Tamás Szabó's avatar
    Tamás Szabó committed
              <Divider horizontal>Motiváció</Divider>
    
    Tamás Szabó's avatar
    Tamás Szabó committed
              <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}
    
              /> :
                <HiddenForm 
                  fontWeight='bold'
                  label='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 />
    
    Tamás Szabó's avatar
    Tamás Szabó committed
              <Form.TextArea
                rows={10}
    
    Barnabás Czémán's avatar
    Barnabás Czémán committed
                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?'
    
    Tamás Szabó's avatar
    Tamás Szabó committed
                name='motivationProfession'
                onChange={e => this.props.textChange(e)}
    
    Barnabás Czémán's avatar
    Barnabás Czémán committed
                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?'
    
    Tamás Szabó's avatar
    Tamás Szabó committed
                value={motivationProfession}
    
              /> :
                <HiddenForm
                  fontWeight='bold'
                  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?' 
                  value={motivationProfession} />
              }
    
    Tamás Szabó's avatar
    Tamás Szabó committed
    
    
    Tamás Szabó's avatar
    Tamás Szabó committed
              <Divider horizontal />
    
              {canEdit ?
    
    Tamás Szabó's avatar
    Tamás Szabó committed
              <Form.TextArea
                rows={10}
                name='motivationExercise'
                onChange={e => this.props.textChange(e)}
                placeholder=''
                label={
    
                    <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 kérdések alatti szövegdobozba várjuk.
                    </b>
    
                      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, a hiba okát megpróbálod kideríteni.
                      Ekkor veszed észre, hogy az alábbiakat sem éred el:
                      sze.hu, 444.hu, corvinus.hu, startlap.hu.
                      Ugyanakkor a Facebook, a Gmail, a YouTube, de még az egyetemi
                      oldalak többsége is működik. Szerinted mi lehet a hiba oka?
    
                      </li>
                      <br />
                      <li>
    
    Barnabás Czémán's avatar
    Barnabás Czémán committed
                      Találsz egy értelmetlen szöveget egy honlapon (például: <a href='http://kszkepzes18.sch.bme.hu/zebra.html'>http://kszkepzes18.sch.bme.hu/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
                      (használd az előző feladatban kapott adatokat).
                      Belépés után keresd meg a feladat megoldását!
    
    Tamás Szabó's avatar
    Tamás Szabó committed
                }
                value={motivationExercise}
    
                <HiddenForm
    
                  fontWeight='normal'
                  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 kérdések alatti szövegdobozba várjuk.
                      </b>
    
                        <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>
                        <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, a hiba okát megpróbálod kideríteni.
                        Ekkor veszed észre, hogy az alábbiakat sem éred el:
                        sze.hu, 444.hu, corvinus.hu, startlap.hu.
                        Ugyanakkor a Facebook, a Gmail, a YouTube, de még az egyetemi
                        oldalak többsége is működik. Szerinted mi lehet a hiba oka?
                        </li>
                        <li>
                        Találsz egy értelmetlen szöveget egy honlapon (például: <a href='http://kszkepzes18.sch.bme.hu/zebra.html'>http://kszkepzes18.sch.bme.hu/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>
                        <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
                        (használd az előző feladatban kapott adatokat).
                        Belépés után keresd meg a feladat megoldását!
                        </li>
    
                    </div>
                  }
                  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}
    
                disabled={!canEdit}
    
    Tamás Szabó's avatar
    Tamás Szabó committed
              />
              <br />
    
              <Form.Checkbox required
    
    Tamás Szabó's avatar
    Tamás Szabó committed
                name='signed'
    
                label='Szeretnék a képzés során emaileket kapni és jelentkezni a KSZKépzésre'
    
    Tamás Szabó's avatar
    Tamás Szabó committed
                onChange={(_, v) =>
                  this.props.textChange({ target: { name: v.name, value: v.checked } })
                }
                checked={signed}
    
                readOnly={!canEdit}
    
                style={ !canEdit ? { marginBottom: '5em' } : null}
    
    Tamás Szabó's avatar
    Tamás Szabó committed
              />
    
              {canEdit ? 
    
    Tamás Szabó's avatar
    Tamás Szabó committed
              <Form.Button
                primary
    
                style={{ marginBottom: '5em' }} disabled={!signed}
    
    Tamás Szabó's avatar
    Tamás Szabó committed
                onClick={() => this.props.submitRegistration({
                  nick, motivationAbout, motivationProfession, motivationExercise, signed, groups, id,
                })}
              >
                Mentés
              </Form.Button>
    
    Tamás Szabó's avatar
    Tamás Szabó committed
            </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: {
    
    Rafael László's avatar
    Rafael László committed
        nick, groups, motivationAbout, motivationProfession, 
        motivationExercise, signed, id, deadline, messageBefore, 
        messageAfter
    
    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,
    
    Rafael László's avatar
    Rafael László committed
      messageBefore,
      messageAfter
    
    Tamás Szabó's avatar
    Tamás Szabó committed
    });
    
    export default connect(mapStateToProps, { textChange, submitRegistration, groupChange, getDeadline })(Profile);