Skip to content
Snippets Groups Projects
Profile.js 9.57 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 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 {
      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;
    
        const endDate = new Date(2020, 2, 14, 23, 59, 59)
        const endDateText = `február 14. 23:59-ig`
        let canEdit = Date.now()<endDate
    
    Barnabás Czémán's avatar
    Barnabás Czémán committed
          <Container
            style={{
              marginTop: '0.5em',
            }}
          >
    
    Barnabás Czémán's avatar
    Barnabás Czémán committed
            <Segment inverted color='red' tertiary>
              <p style={{ fontSize: '1.33em' }}>
    
                A profilod mentés után is módosítható a későbbiekben, egészen {endDateText}.
    
    Barnabás Czémán's avatar
    Barnabás Czémán committed
              </p>
            </Segment>
    
    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 />
    
    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!
    
                      </li>
                    </ol>
                  </div>
    
    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>
                      <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, 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>
                        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!
                        </li>
                      </ol>
                    </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
                name='signed'
    
    Barnabás Czémán's avatar
    Barnabás Czémán committed
                label='Szeretnék 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}
    
    Tamás Szabó's avatar
    Tamás Szabó committed
              />
              <Form.Button
                primary
    
                style={{ marginBottom: '10em' }}
    
    Tamás Szabó's avatar
    Tamás Szabó committed
                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);