Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • kszk/devteam/kszkepzes/old/kszkepzes-frontend
  • kbgergely/kszkepzes-frontend
2 results
Show changes
Showing
with 1366 additions and 1037 deletions
import React, { Component } from 'react';
import { import {
Container,
Item,
Button, Button,
Comment, Comment,
Container,
Divider,
Form, Form,
Header, Header,
Table, Item,
Segment, Segment,
Divider, Table,
} from 'semantic-ui-react'; } from "semantic-ui-react";
import { connect } from 'react-redux'; import React, { Component } from "react";
import moment from 'moment'; import {
import { getEventById, getTrainees, visitorChange, submitVisitors } from '../../actions/statistics'; clearWrite,
import { getNotesByEvent, writeNote, clearWrite, postEventNote } from '../../actions/notes'; getNotesByEvent,
import TraineeTableRow from './EventDetailTableRow'; postEventNote,
writeNote,
} from "../../actions/notes";
import {
getEventById,
getTrainees,
submitVisitors,
visitorChange,
} from "../../actions/statistics";
import TraineeTableRow from "./EventDetailTableRow";
import { connect } from "react-redux";
import moment from "moment";
class EventDetail extends Component { class EventDetail extends Component {
constructor(props) { constructor(props) {
...@@ -31,21 +41,32 @@ class EventDetail extends Component { ...@@ -31,21 +41,32 @@ class EventDetail extends Component {
this.props.getNotesByEvent(this.props.match.params.id); this.props.getNotesByEvent(this.props.match.params.id);
} }
renderTrainees() { renderTrainees() {
const event = this.props.selectedEvent; const event = this.props.selectedEvent;
return this.props.trainees?.map((item) => { return this.props.trainees
const notes = this.props.eventNotes?.filter(note => note.profile === item.id); ?.sort(function (a, b) {
return ( var nameA = a.full_name.toLowerCase(),
<TraineeTableRow nameB = b.full_name.toLowerCase();
selectedEvent={event} if (nameA < nameB)
notes={notes} //sort string ascending
trainee={item} return -1;
edit={this.state.edit} if (nameA > nameB) return 1;
key={item.id} return 0; //default return value (no sorting)
/> })
); .map((item) => {
}); const notes = this.props.eventNotes?.filter(
(note) => note.profile === item.id
);
return item.role === "Student" ? (
<TraineeTableRow
selectedEvent={event}
notes={notes}
trainee={item}
edit={this.state.edit}
key={item.id}
/>
) : null;
});
} }
renderEvent() { renderEvent() {
...@@ -53,16 +74,16 @@ class EventDetail extends Component { ...@@ -53,16 +74,16 @@ class EventDetail extends Component {
return ( return (
<Segment> <Segment>
<Item> <Item>
<Divider style={{ fontSize: '2em'}} horizontal> <Divider style={{ fontSize: "2em" }} horizontal>
<Header as='h1'> <Header as="h1">
{name} {name}
<Item.Header style={{ fontSize: '0.6em'}}> <Item.Header style={{ fontSize: "0.6em" }}>
{moment(date).format('LL')} {moment(date).format("LL")}
</Item.Header> </Item.Header>
</Header> </Header>
</Divider> </Divider>
<Container textAlign='justified'> <Container textAlign="justified">
<Item.Header as='h3'>Leírás</Item.Header> <Item.Header as="h3">Leírás</Item.Header>
<Item.Content>{description}</Item.Content> <Item.Content>{description}</Item.Content>
</Container> </Container>
</Item> </Item>
...@@ -80,16 +101,15 @@ class EventDetail extends Component { ...@@ -80,16 +101,15 @@ class EventDetail extends Component {
<Comment.Content> <Comment.Content>
<Comment.Author>{note.created_by_name}</Comment.Author> <Comment.Author>{note.created_by_name}</Comment.Author>
<Comment.Metadata> <Comment.Metadata>
{moment(note.created_at).format('LL')} {moment(note.created_at).format("LL")}
</Comment.Metadata> </Comment.Metadata>
<Comment.Text> <Comment.Text>{note.note}</Comment.Text>
{note.note}
</Comment.Text>
</Comment.Content> </Comment.Content>
</Comment> </Comment>
</Segment>); </Segment>
);
} }
return ''; return "";
}); });
} }
...@@ -97,66 +117,57 @@ class EventDetail extends Component { ...@@ -97,66 +117,57 @@ class EventDetail extends Component {
const event = this.props.selectedEvent; const event = this.props.selectedEvent;
const note = this.props.actualNote; const note = this.props.actualNote;
return ( return (
<Container style={{paddingTop: '1em', paddingBottom: '7em'}}> <Container style={{ paddingTop: "1em", paddingBottom: "7em" }}>
<Container textAlign='center'> <Container textAlign="center">
{ this.props.selectedEvent && this.props.trainees ? {this.props.selectedEvent && this.props.trainees
this.renderEvent() ? this.renderEvent()
: : ""}
''
}
</Container> </Container>
{!this.state.edit ? (
<Button onClick={() => this.setState({ edit: true })}>
Módosítás
</Button>
) : (
<Button
onClick={() => {
this.setState({ edit: false });
}}
>
{" "}
Kész
</Button>
)}
<Table celled unstackable> <Table celled unstackable>
<Table.Header> <Table.Header>
<Table.Row textAlign='center'> <Table.Row textAlign="center">
<Table.HeaderCell>Név</Table.HeaderCell> <Table.HeaderCell>Név</Table.HeaderCell>
<Table.HeaderCell>Jelen volt</Table.HeaderCell> <Table.HeaderCell>Jelen volt</Table.HeaderCell>
<Table.HeaderCell>Megjegyzések</Table.HeaderCell> <Table.HeaderCell>Megjegyzések</Table.HeaderCell>
</Table.Row> </Table.Row>
</Table.Header> </Table.Header>
<Table.Body> <Table.Body>
{ this.props.selectedEvent ? {this.props.selectedEvent ? this.renderTrainees() : null}
this.renderTrainees()
:
null
}
</Table.Body> </Table.Body>
</Table> </Table>
{!this.state.edit ?
<Button onClick={() => this.setState({ edit: true })}>
Módosítás
</Button>
:
<Button onClick={() => {
this.setState({ edit: false });
this.props.submitVisitors(this.props.selectedEvent);
}}
> Kész
</Button>
}
<Comment.Group> <Comment.Group>
<Header dividing> <Header dividing>Megjegyzések</Header>
Megjegyzések {this.props.eventNotes ? this.renderComments() : ""}
</Header>
{this.props.eventNotes ?
this.renderComments()
:
''
}
<Form reply> <Form reply>
<Form.TextArea <Form.TextArea
value={note.note} value={note.note}
onChange={e => this.props.writeNote(e)} onChange={(e) => this.props.writeNote(e)}
/> />
<Button <Button
onClick={() => { onClick={() => {
this.props.postEventNote({ eventid: event.id, this.props.postEventNote({
note: note.note }); eventid: event.id,
this.props.clearWrite(); note: note.note,
} });
} this.props.clearWrite();
content='Megjegyzés hozzáadása' }}
labelPosition='left' content="Megjegyzés hozzáadása"
icon='edit' labelPosition="left"
icon="edit"
primary primary
/> />
</Form> </Form>
...@@ -169,8 +180,13 @@ class EventDetail extends Component { ...@@ -169,8 +180,13 @@ class EventDetail extends Component {
const mapStateToProps = ({ const mapStateToProps = ({
notes: { eventNotes, actualNote }, notes: { eventNotes, actualNote },
events: { selectedEvent }, events: { selectedEvent },
trainees: { trainees } trainees: { trainees },
}) => ({ eventNotes, selectedEvent, trainees, actualNote }); }) => ({
eventNotes,
selectedEvent,
trainees,
actualNote,
});
export default connect(mapStateToProps, { export default connect(mapStateToProps, {
getEventById, getEventById,
......
import { Button, Container, Table } from 'semantic-ui-react';
import React, { Component } from 'react'; import React, { Component } from 'react';
import moment from 'moment'; import { deleteEvent, getStaffEvents } from '../../actions/statistics';
import AddEventForm from '../forms/AddEventForm';
import { Link } from 'react-router-dom'; import { Link } from 'react-router-dom';
import { Container, Table, Button } from 'semantic-ui-react';
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import { getStaffEvents, deleteEvent } from '../../actions/statistics'; import moment from 'moment';
import AddEventForm from '../forms/AddEventForm';
class Events extends Component { class Events extends Component {
UNSAFE_componentWillMount() { UNSAFE_componentWillMount() {
...@@ -12,56 +13,62 @@ class Events extends Component { ...@@ -12,56 +13,62 @@ class Events extends Component {
} }
renderEvents() { renderEvents() {
return this.props.events.map((event) => { return this.props.events.map((event) => (
return ( <Table.Row key={event.id}>
<Table.Row key={event.id}> <Table.Cell textAlign="center">
<Table.Cell textAlign='center'> <Link to={`events/${event.id}`}>{event.name}</Link>
<Link to={`events/${event.id}`}> </Table.Cell>
{event.name} <Table.Cell textAlign="center">
</Link> {moment(event.date).format('LL')}
</Table.Cell> </Table.Cell>
<Table.Cell textAlign='center'> <Table.Cell textAlign="center">{event.visitor_number}</Table.Cell>
{moment(event.date).format('LL')} <Table.Cell textAlign="center">
</Table.Cell> <Button
<Table.Cell textAlign='center'> onClick={() => this.props.deleteEvent(event)}
{event.visitor_number} color="red"
</Table.Cell> compact
<Table.Cell textAlign='center'> size="small"
<Button >
onClick={() => this.props.deleteEvent(event)} Törlés
color='red' </Button>
compact </Table.Cell>
size='small' </Table.Row>
> ));
Törlés
</Button>
</Table.Cell>
</Table.Row>
);
});
} }
render() { render() {
return ( return (
<Container textAlign='center'> <Container textAlign="center">
<div style={{overflowX: 'scroll'}}> <div style={{ overflowX: 'scroll' }}>
<Table color='blue' unstackable celled selectable compact <Table
size='small'> color="blue"
unstackable
celled
selectable
compact
size="small"
>
<Table.Header> <Table.Header>
<Table.Row> <Table.Row>
<Table.HeaderCell textAlign='center'>Alkalom neve</Table.HeaderCell> <Table.HeaderCell textAlign="center">
<Table.HeaderCell textAlign='center'>Dátum</Table.HeaderCell> Alkalom neve
<Table.HeaderCell textAlign='center'>Jelen voltak</Table.HeaderCell> </Table.HeaderCell>
<Table.HeaderCell textAlign="center">Dátum</Table.HeaderCell>
<Table.HeaderCell textAlign="center">
Jelen voltak
</Table.HeaderCell>
<Table.HeaderCell /> <Table.HeaderCell />
</Table.Row> </Table.Row>
</Table.Header> </Table.Header>
<Table.Body> <Table.Body>
{this.props.events ? this.renderEvents() : 'Nincs még alkalom beírva'} {this.props.events
? this.renderEvents()
: 'Nincs még alkalom beírva'}
</Table.Body> </Table.Body>
</Table> </Table>
</div> </div>
<br /> <br />
<AddEventForm/> <AddEventForm />
</Container> </Container>
); );
} }
...@@ -69,4 +76,6 @@ class Events extends Component { ...@@ -69,4 +76,6 @@ class Events extends Component {
const mapStateToProps = ({ events: { events }, user }) => ({ events, user }); const mapStateToProps = ({ events: { events }, user }) => ({ events, user });
export default connect(mapStateToProps, { getStaffEvents, deleteEvent })(Events); export default connect(mapStateToProps, { getStaffEvents, deleteEvent })(
Events
);
This diff is collapsed.
...@@ -5,8 +5,33 @@ ...@@ -5,8 +5,33 @@
.car-text-kszk { .car-text-kszk {
position: absolute; position: absolute;
width: 100%; width: 100%;
top: 0px; top: 1vw;
text-shadow: black 0px 0px 10px, black 0px 0px 6px;
-webkit-text-fill-color: white; -webkit-text-fill-color: white;
-webkit-text-stroke-color: black; }
-webkit-text-stroke-width: 0.75px;
.quote {
position: relative;
margin-bottom: 0.5rem;
}
.quote:before {
content: '“';
position: absolute;
left: -0.45em;
}
.quote::after {
content: '”';
margin-right: -1rem;
}
.quote--container {
margin: 2rem auto 0;
padding-bottom: 0.7rem;
}
.quote--author {
text-align: right;
font-weight: 300;
} }
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
import { WRITE_NEWS, CLEAR_WRITE } from '../actions/types'; import { CLEAR_WRITE, WRITE_NEWS } from '../actions/types';
const INITIAL_STATE = { title: '', text: '' }; const INITIAL_STATE = { title: '', text: '' };
......