Skip to content
Snippets Groups Projects
DeleteApplicationModal.js 3.35 KiB
Newer Older
Orlando Piñero's avatar
Orlando Piñero committed
import React, { Component } from "react";
import Button from 'react-bootstrap/Button';
import Modal from 'react-bootstrap/Modal';
import { connect } from "react-redux";
import { bindActionCreators } from "redux";

import * as applicationmanagementActions from '../../actions/ApplicationManagementActions'

const mapStateToProps = state => {
    return {
        accessToken: state.AuthenticationReducer.accessToken,
        showDeleteApplicationModal: state.DegreeCourseApplicationReducer.showDeleteApplicationModal,
        deleteApplicationModalData: state.DegreeCourseApplicationReducer.deleteApplicationModalData
    };
}

class DeleteApplicationModal extends Component {

    constructor(props) {
        super(props);

        this.handleClose = this.handleClose.bind(this);
        this.handlePushDelete = this.handlePushDelete.bind(this);
    }

    handleClose() {
        const { hideDeleteApplicationModalAction } = this.props;
        hideDeleteApplicationModalAction();
    }

    handlePushDelete(e) {
        e.preventDefault();
        const { pushDeleteApplicationModalAction } = this.props;
        pushDeleteApplicationModalAction(this.props.deleteApplicationModalData.applicationID, this.props.accessToken)
    }

    render() {

        var showModal = this.props.showDeleteApplicationModal
        if (showModal === undefined) {
            showModal = false
        }
        let dialogID
        let applicationName
        let applicantName
        let universityName
        if (this.props.deleteApplicationModalData) {
            dialogID = this.props.deleteApplicationModalData.dialogID;
            applicationName = this.props.deleteApplicationModalData.name;
            applicantName = this.props.deleteApplicationModalData.user;
            universityName = this.props.deleteApplicationModalData.universityName;
        } else {
            dialogID = ""
            applicationName = ""
        }

        return (
            <div className="modal show" id="ApplicationManagementPageDeleteComponent" style={{ display: 'block', position: 'initial' }}>
                <Modal show={showModal} id={dialogID} onHide={this.handleClose}>
                    <Modal.Header closeButton>
                        <Modal.Title>Bewerbung von {applicantName} für {applicationName} löschen?</Modal.Title>
                    </Modal.Header>

                    <Modal.Body style={{ textAlign: 'left' }}>
                        <p>Soll die Bewerbung von {applicantName} für den Studiengang {applicationName} an der {universityName} gelöscht werden?</p>
                    </Modal.Body>

                    <Modal.Footer>
                        <Button variant="secondary" id="DeleteDialogCancelButton" onClick={this.handleClose}>Cancel</Button>
                        <Button variant="primary" id="DeleteDialogConfirmButton" onClick={this.handlePushDelete}>Delete</Button>
                    </Modal.Footer>
                </Modal>
            </div >
        )
    }
}


const mapDispatchToProps = dispatch => bindActionCreators({
    hideDeleteApplicationModalAction: applicationmanagementActions.getHideDeleteApplicationModalAction,
    pushDeleteApplicationModalAction: applicationmanagementActions.deleteApplicationWithID
}, dispatch)

const ConnectedDeleteApplicationModal = connect(mapStateToProps, mapDispatchToProps)(DeleteApplicationModal)
export default ConnectedDeleteApplicationModal