Skip to content
Snippets Groups Projects
Profile.js 11 KiB
Newer Older
  • Learn to ignore specific revisions
  • Rafael László's avatar
    Rafael László committed
    import { Container, Divider, Dropdown, Form, Segment } from 'semantic-ui-react';
    
    import React, { Component } from 'react';
    
    Rafael László's avatar
    Rafael László committed
    import { groupChange, submitRegistration, textChange } from '../../actions';
    
    import HiddenForm from '../forms/HiddenForm';
    
    import { connect } from 'react-redux';
    
    Rafael László's avatar
    Rafael László committed
    import { getDeadline } from '../../actions/auth';
    
    
    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() {
    
    Rafael László's avatar
    Rafael László committed
        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,
    
    Rafael László's avatar
    Rafael László committed
          messageAfter,
    
    Tamás Szabó's avatar
    Tamás Szabó committed
        } = this.props;
    
    Rafael László's avatar
    Rafael László committed
        const endDate = new Date(deadline);
        const canEdit = Date.now() < endDate;
    
    Barnabás Czémán's avatar
    Barnabás Czémán committed
          <Container
            style={{
    
              marginTop: '1em',
    
    Rafael László's avatar
    Rafael László committed
            {canEdit ? (
              <Segment inverted color="red" tertiary>
                <p
                  style={{ fontSize: '1.3em' }}
                  dangerouslySetInnerHTML={{ __html: messageBefore }}
                />
              </Segment>
            ) : (
              <Segment inverted color="red" tertiary>
                <p
                  style={{ fontSize: '1.3em' }}
                  dangerouslySetInnerHTML={{ __html: messageAfter }}
                />
              </Segment>
            )}
    
    Tamás Szabó's avatar
    Tamás Szabó committed
            <Form>
    
    Rafael László's avatar
    Rafael László committed
              {canEdit ? (
                <Form.Input
                  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>
    
    Rafael László's avatar
    Rafael László committed
              {canEdit ? (
                <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 />
    
    Rafael László's avatar
    Rafael László committed
              {canEdit ? (
                <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}
                />
              ) : (
                <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 />
    
    Rafael László's avatar
    Rafael László committed
              {canEdit ? (
                <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 kérdések alatti szövegdobozba várjuk.
                      </b>
                      <ul>
                        <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:{' '}
    
    Rafael László's avatar
    Rafael László committed
                          <a href="https://ujonc.kszk.bme.hu/mediafiles/public/zebra.html">
                            https://ujonc.kszk.bme.hu/mediafiles/public/zebra.html
    
    Rafael László's avatar
    Rafael László committed
                          </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>ujonc.kszk.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>
                      </ul>
                    </div>
                  }
                  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>
                      <ul>
                        <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="https://ujonc.kszk.bme.hu/zebra.html">
                            https://ujonc.kszk.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>ujonc.kszk.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>
                      </ul>
                    </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
    
    Rafael László's avatar
    Rafael László committed
                placeholder="DevTeam, ..."
    
    Tamás Szabó's avatar
    Tamás Szabó committed
                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
    
    Rafael László's avatar
    Rafael László committed
                name="signed"
                label="Szeretnék a képzés során emaileket kapni és jelentkezni a KSZKépzésre"
                onChange={(_, v) =>
                  this.props.textChange({
                    target: { name: v.name, value: v.checked },
                  })
                }
    
    Tamás Szabó's avatar
    Tamás Szabó committed
                checked={signed}
    
                readOnly={!canEdit}
    
    Rafael László's avatar
    Rafael László committed
                style={!canEdit ? { marginBottom: '5em' } : null}
    
    Tamás Szabó's avatar
    Tamás Szabó committed
              />
    
    Rafael László's avatar
    Rafael László committed
              {canEdit ? (
                <Form.Button
                  primary
                  style={{ marginBottom: '5em' }}
                  disabled={!signed}
                  onClick={() =>
                    this.props.submitRegistration({
    
    Rafael László's avatar
    Rafael László committed
                      nick,
                      motivationAbout,
                      motivationProfession,
                      motivationExercise,
                      signed,
                      groups,
                      id,
    
    Rafael László's avatar
    Rafael László committed
                    })
                  }
                >
                  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,
    
    Rafael László's avatar
    Rafael László committed
        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,
    
    Rafael László's avatar
    Rafael László committed
      messageAfter,
    
    Tamás Szabó's avatar
    Tamás Szabó committed
    });
    
    Rafael László's avatar
    Rafael László committed
    export default connect(mapStateToProps, {
    
    Rafael László's avatar
    Rafael László committed
      textChange,
      submitRegistration,
      groupChange,
      getDeadline,
    
    Rafael László's avatar
    Rafael László committed
    })(Profile);