import { Container, Divider, Dropdown, Form, Segment } from 'semantic-ui-react'; import React, { Component } from 'react'; import { groupChange, submitRegistration, textChange } from '../../actions'; import HiddenForm from '../forms/HiddenForm'; import { connect } from 'react-redux'; import { getDeadline } from '../../actions/auth'; 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 { UNSAFE_componentWillMount() { this.props.getDeadline(); if (!this.props.id) { this.props.history.push('/home'); } } render() { const { nick, groups, motivationAbout, motivationProfession, motivationExercise, signed, id, deadline, messageBefore, messageAfter, } = this.props; const endDate = new Date(deadline); const canEdit = Date.now() < endDate; return ( <Container style={{ marginTop: '1em', }} > {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> )} <Form> {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} /> )} <Divider horizontal>Motiváció</Divider> {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} /> )} <Divider horizontal /> {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} /> )} <Divider horizontal /> {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:{' '} <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> <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} /> )} <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} /> <br /> <Form.Checkbox 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 }, }) } checked={signed} readOnly={!canEdit} style={!canEdit ? { marginBottom: '5em' } : null} /> {canEdit ? ( <Form.Button primary style={{ marginBottom: '5em' }} disabled={!signed} onClick={() => this.props.submitRegistration({ nick, motivationAbout, motivationProfession, motivationExercise, signed, groups, id, }) } > Mentés </Form.Button> ) : ( '' )} </Form> </Container> ); } } const mapStateToProps = ({ user: { nick, groups, motivationAbout, motivationProfession, motivationExercise, signed, id, deadline, messageBefore, messageAfter, }, }) => ({ nick, groups, motivationAbout, motivationProfession, motivationExercise, signed, id, deadline, messageBefore, messageAfter, }); export default connect(mapStateToProps, { textChange, submitRegistration, groupChange, getDeadline, })(Profile);