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 1421 additions and 955 deletions
import React, { Component } from 'react';
import {
Container,
Item,
Button,
Comment,
Container,
Divider,
Form,
Header,
Table,
Item,
Segment,
Divider,
} from 'semantic-ui-react';
import { connect } from 'react-redux';
import moment from 'moment';
import { getEventById, getTrainees, visitorChange, submitVisitors } from '../../actions/statistics';
import { getNotesByEvent, writeNote, clearWrite, postEventNote } from '../../actions/notes';
import TraineeTableRow from './EventDetailTableRow';
Table,
} from "semantic-ui-react";
import React, { Component } from "react";
import {
clearWrite,
getNotesByEvent,
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 {
constructor(props) {
......@@ -31,21 +41,32 @@ class EventDetail extends Component {
this.props.getNotesByEvent(this.props.match.params.id);
}
renderTrainees() {
const event = this.props.selectedEvent;
return this.props.trainees?.map((item) => {
const notes = this.props.eventNotes?.filter(note => note.profile === item.id);
return (
<TraineeTableRow
selectedEvent={event}
notes={notes}
trainee={item}
edit={this.state.edit}
key={item.id}
/>
);
});
return this.props.trainees
?.sort(function (a, b) {
var nameA = a.full_name.toLowerCase(),
nameB = b.full_name.toLowerCase();
if (nameA < nameB)
//sort string ascending
return -1;
if (nameA > nameB) return 1;
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() {
......@@ -53,16 +74,16 @@ class EventDetail extends Component {
return (
<Segment>
<Item>
<Divider style={{ fontSize: '2em'}} horizontal>
<Header as='h1'>
<Divider style={{ fontSize: "2em" }} horizontal>
<Header as="h1">
{name}
<Item.Header style={{ fontSize: '0.6em'}}>
{moment(date).format('LL')}
<Item.Header style={{ fontSize: "0.6em" }}>
{moment(date).format("LL")}
</Item.Header>
</Header>
</Divider>
<Container textAlign='justified'>
<Item.Header as='h3'>Leírás</Item.Header>
<Container textAlign="justified">
<Item.Header as="h3">Leírás</Item.Header>
<Item.Content>{description}</Item.Content>
</Container>
</Item>
......@@ -80,16 +101,15 @@ class EventDetail extends Component {
<Comment.Content>
<Comment.Author>{note.created_by_name}</Comment.Author>
<Comment.Metadata>
{moment(note.created_at).format('LL')}
{moment(note.created_at).format("LL")}
</Comment.Metadata>
<Comment.Text>
{note.note}
</Comment.Text>
<Comment.Text>{note.note}</Comment.Text>
</Comment.Content>
</Comment>
</Segment>);
</Segment>
);
}
return '';
return "";
});
}
......@@ -97,66 +117,57 @@ class EventDetail extends Component {
const event = this.props.selectedEvent;
const note = this.props.actualNote;
return (
<Container style={{paddingTop: '1em', paddingBottom: '7em'}}>
<Container textAlign='center'>
{ this.props.selectedEvent && this.props.trainees ?
this.renderEvent()
:
''
}
<Container style={{ paddingTop: "1em", paddingBottom: "7em" }}>
<Container textAlign="center">
{this.props.selectedEvent && this.props.trainees
? this.renderEvent()
: ""}
</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.Header>
<Table.Row textAlign='center'>
<Table.Row textAlign="center">
<Table.HeaderCell>Név</Table.HeaderCell>
<Table.HeaderCell>Jelen volt</Table.HeaderCell>
<Table.HeaderCell>Megjegyzések</Table.HeaderCell>
</Table.Row>
</Table.Header>
<Table.Body>
{ this.props.selectedEvent ?
this.renderTrainees()
:
null
}
{this.props.selectedEvent ? this.renderTrainees() : null}
</Table.Body>
</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>
<Header dividing>
Megjegyzések
</Header>
{this.props.eventNotes ?
this.renderComments()
:
''
}
<Header dividing>Megjegyzések</Header>
{this.props.eventNotes ? this.renderComments() : ""}
<Form reply>
<Form.TextArea
value={note.note}
onChange={e => this.props.writeNote(e)}
onChange={(e) => this.props.writeNote(e)}
/>
<Button
onClick={() => {
this.props.postEventNote({ eventid: event.id,
note: note.note });
this.props.clearWrite();
}
}
content='Megjegyzés hozzáadása'
labelPosition='left'
icon='edit'
this.props.postEventNote({
eventid: event.id,
note: note.note,
});
this.props.clearWrite();
}}
content="Megjegyzés hozzáadása"
labelPosition="left"
icon="edit"
primary
/>
</Form>
......@@ -169,8 +180,13 @@ class EventDetail extends Component {
const mapStateToProps = ({
notes: { eventNotes, actualNote },
events: { selectedEvent },
trainees: { trainees }
}) => ({ eventNotes, selectedEvent, trainees, actualNote });
trainees: { trainees },
}) => ({
eventNotes,
selectedEvent,
trainees,
actualNote,
});
export default connect(mapStateToProps, {
getEventById,
......
import { Button, Container, Table } from 'semantic-ui-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 { Container, Table, Button } from 'semantic-ui-react';
import { connect } from 'react-redux';
import { getStaffEvents, deleteEvent } from '../../actions/statistics';
import AddEventForm from '../forms/AddEventForm';
import moment from 'moment';
class Events extends Component {
UNSAFE_componentWillMount() {
......@@ -12,56 +13,62 @@ class Events extends Component {
}
renderEvents() {
return this.props.events.map((event) => {
return (
<Table.Row >
<Table.Cell textAlign='center'>
<Link to={`events/${event.id}`}>
{event.name}
</Link>
</Table.Cell>
<Table.Cell textAlign='center'>
{moment(event.date).format('LL')}
</Table.Cell>
<Table.Cell textAlign='center'>
{event.visitor_number}
</Table.Cell>
<Table.Cell textAlign='center'>
<Button
onClick={() => this.props.deleteEvent(event)}
color='red'
compact
size='small'
>
Törlés
</Button>
</Table.Cell>
</Table.Row>
);
});
return this.props.events.map((event) => (
<Table.Row key={event.id}>
<Table.Cell textAlign="center">
<Link to={`events/${event.id}`}>{event.name}</Link>
</Table.Cell>
<Table.Cell textAlign="center">
{moment(event.date).format('LL')}
</Table.Cell>
<Table.Cell textAlign="center">{event.visitor_number}</Table.Cell>
<Table.Cell textAlign="center">
<Button
onClick={() => this.props.deleteEvent(event)}
color="red"
compact
size="small"
>
Törlés
</Button>
</Table.Cell>
</Table.Row>
));
}
render() {
return (
<Container textAlign='center'>
<div style={{overflowX: 'scroll'}}>
<Table color='blue' unstackable celled selectable compact
size='small'>
<Container textAlign="center">
<div style={{ overflowX: 'scroll' }}>
<Table
color="blue"
unstackable
celled
selectable
compact
size="small"
>
<Table.Header>
<Table.Row>
<Table.HeaderCell textAlign='center'>Alkalom neve</Table.HeaderCell>
<Table.HeaderCell textAlign='center'>Dátum</Table.HeaderCell>
<Table.HeaderCell textAlign='center'>Jelen voltak</Table.HeaderCell>
<Table.HeaderCell textAlign="center">
Alkalom neve
</Table.HeaderCell>
<Table.HeaderCell textAlign="center">Dátum</Table.HeaderCell>
<Table.HeaderCell textAlign="center">
Jelen voltak
</Table.HeaderCell>
<Table.HeaderCell />
</Table.Row>
</Table.Header>
<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>
</div>
<br />
<AddEventForm/>
<AddEventForm />
</Container>
);
}
......@@ -69,4 +76,6 @@ class Events extends Component {
const mapStateToProps = ({ events: { events }, user }) => ({ events, user });
export default connect(mapStateToProps, { getStaffEvents, deleteEvent })(Events);
export default connect(mapStateToProps, { getStaffEvents, deleteEvent })(
Events
);
import React, { Component } from 'react';
import { Container, Header, Segment, Divider } from 'semantic-ui-react';
import './Groups.css';
import GroupCard from '../extra/GroupCard'
import { Container, Header, Segment } from 'semantic-ui-react';
import React, { Component } from 'react';
import GroupCard from '../extra/GroupCard';
import { connect } from 'react-redux';
import { getGroups } from '../../actions/groups';
class Groups extends Component {
UNSAFE_componentWillMount() {
this.props.getGroups()
this.props.getGroups();
}
render() {
return (
<div>
<Segment inverted textAlign='center' vertical>
<Segment inverted textAlign="center" vertical>
<Container>
<Header
as='h1'
content='Köreink'
as="h1"
content="Köreink"
inverted
style={{
fontSize: '3em',
......@@ -30,12 +30,20 @@ class Groups extends Component {
/>
</Container>
</Segment>
<Segment style={{ padding: '1em 0em 5em' }} vertical>
<Container text>
{ this.props.groups.map(item => {
return <GroupCard key={item.id} label={item.name} value={item.description}/>
})}
{this.props.groups
// eslint-disable-next-line arrow-body-style
.map((item) => {
return (
<GroupCard
key={item.id}
label={item.name}
value={item.description}
/>
);
})}
</Container>
</Segment>
</div>
......@@ -46,4 +54,3 @@ class Groups extends Component {
const mapStateToProps = ({ groups }) => ({ groups });
export default connect(mapStateToProps, { getGroups })(Groups);
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.
This diff is collapsed.
This diff is collapsed.