Skip to content
Snippets Groups Projects
DegreeCourseItem.js 4.17 KiB
Newer Older
import React, { Component } from "react";
import Button from "react-bootstrap/esm/Button";
import Card from 'react-bootstrap/Card';
import ListGroup from 'react-bootstrap/ListGroup';

Orlando Piñero's avatar
Orlando Piñero committed
import { connect } from "react-redux";

const mapStateToProps = state => {
    return {
        isAdmin: state.AuthenticationReducer.isAdmin
    };
}

class DegreeCourseItem extends Component {
    render() {
        let degreeCourse = this.props.degreeCourse
        let editButtonID = "DegreeCourseItemEditButton" + degreeCourse.id
        let deleteButtonID = "DegreeCourseItemDeleteButton" + degreeCourse.id
        let itemID = "DegreeCourseItem" + degreeCourse.id
Orlando Piñero's avatar
Orlando Piñero committed
        let applicationID = "CreateDegreeCourseApplicationForDegreeCourse" + degreeCourse.id
        let dialogData = {
            dialogID: "DeleteDialogDegreeCourse" + degreeCourse.id,
            name: degreeCourse.name,
            degreeCourseID: degreeCourse.id
        let cardHeader
        if (degreeCourse.shortName) {
            cardHeader = <Card.Header>{degreeCourse.shortName}: {degreeCourse.name}</Card.Header>
        } else {
            cardHeader = <Card.Header>{degreeCourse.name}</Card.Header>
Orlando Piñero's avatar
Orlando Piñero committed

        let cardFooter
        if (this.props.isAdmin) {
            cardFooter =
                <>
                    <Button variant="primary" onClick={(e) => this.props.handleShowEditPage(e, degreeCourse)} id={editButtonID}  >
                        Edit
                    </Button>
                    <Button variant="primary" type="submit" onClick={(e) => this.props.handleShowDeleteModal(e, dialogData)} id={deleteButtonID} style={{ background: '#ffc800', color: 'black', border: 'none' }}>
                        Delete
                    </Button>
                    <Button variant="primary" onClick={(e) => this.props.handleShowCreateApplication(e, degreeCourse)} id={applicationID} style={{ background: '#05b361', border: 'none' }}>
                        Create Application
                    </Button>
                </>
        } else {
            cardFooter =
            <Button variant="primary" onClick={(e) => this.props.handleShowCreateApplication(e, degreeCourse)} id={applicationID} style={{ background: '#05b361', border: 'none' }}>
                Create Application
            </Button>
        }

        return (
            <div>
Orlando Piñero's avatar
Orlando Piñero committed
                    <Card style={{ width: "22rem", background: '#ebebeb' }} id={itemID}>
                        {cardHeader}
                        <ListGroup variant="flush">
Orlando Piñero's avatar
Orlando Piñero committed
                            <ListGroup.Item className="list-group-item">
                                <p id="UniversityName" style={{ display: 'flex', alignItems: 'right', margin: '0' }}>
                                    <span style={{ marginRight: '1.3rem' }}>Universität:</span>
                                    {degreeCourse.universityName}
                                </p>
                            </ListGroup.Item>
                            <ListGroup.Item className="list-group-item">
                                <p id="DepartmentName" style={{ display: 'flex', alignItems: 'right', margin: '0' }}>
                                    <span style={{ marginRight: '1.3rem' }}>Fachbereich:</span>
                                    {degreeCourse.departmentName}
                                </p>
                            </ListGroup.Item>
                            <ListGroup.Item className="list-group-item">
                                <p id="Name" style={{ display: 'flex', alignItems: 'right', margin: '0' }}>
                                    <span style={{ marginRight: '1.3rem' }}>Studiengang:</span>
                                    {degreeCourse.name}
                                </p>
                            </ListGroup.Item>
                        </ListGroup>
                        <Card.Footer style={{ display: 'flex', justifyContent: 'space-evenly' }}>
Orlando Piñero's avatar
Orlando Piñero committed
                            {cardFooter}
                        </Card.Footer>
                    </Card>
                </div>
Orlando Piñero's avatar
Orlando Piñero committed
const ConnectedDegreeCourseItem = connect(mapStateToProps)(DegreeCourseItem)
export default ConnectedDegreeCourseItem