diff --git a/frontend/src/components/apotheke/einstellungen/ApothekeEinstellungen.js b/frontend/src/components/apotheke/einstellungen/ApothekeEinstellungen.js index 0dd76c62534aea63763da547f411d7201668b0e7..85ba336820be789dba3a9ea0de6b3b9e00167999 100644 --- a/frontend/src/components/apotheke/einstellungen/ApothekeEinstellungen.js +++ b/frontend/src/components/apotheke/einstellungen/ApothekeEinstellungen.js @@ -74,13 +74,13 @@ function ApothekeEinstellungen(props) { const renderContent = () => { if (activeMenuItem === 'personal') { - return <PersonalTabelle {...props} />; + return <PersonalTabelle {...props} aktiveRolle={aktiveRolle} />; } else if (activeMenuItem === 'btm') { - return <BtmTabelle {...props} />; + return <BtmTabelle {...props} aktiveRolle={aktiveRolle} />; } else if (activeMenuItem === 'aerzte') { - return <ArztTabelle {...props} /> + return <ArztTabelle {...props} aktiveRolle={aktiveRolle} /> } else if (activeMenuItem === 'lieferanten') { - return <LieferantTabelle {...props} /> + return <LieferantTabelle {...props} aktiveRolle={aktiveRolle} /> } else if (activeMenuItem === 'empfaenger') { return <EmpfaengerTabelle {...props} aktiveRolle={aktiveRolle} /> } diff --git a/frontend/src/components/apotheke/einstellungen/tabellen/ArztTabelle.js b/frontend/src/components/apotheke/einstellungen/tabellen/ArztTabelle.js index 1c1815a63a06f9a5e5446cae162b9f4b5969a794..b7a2ec829354e5b9c39359ffdeef078c50d2e1d0 100644 --- a/frontend/src/components/apotheke/einstellungen/tabellen/ArztTabelle.js +++ b/frontend/src/components/apotheke/einstellungen/tabellen/ArztTabelle.js @@ -1,110 +1,110 @@ -import React, { Fragment, useState, useEffect } from 'react'; -import { useParams } from 'react-router-dom'; -import { AddBox, Edit, DeleteForever } from '@material-ui/icons'; -import { Table, Button } from 'react-bootstrap'; -import { useSnackbar } from 'notistack'; - -import ArztAddModal from '../../../../modals/ArztAddModal'; -import ArztEditModal from '../../../../modals/ArztEditModal'; -import DeleteModal from '../../../../modals/DeleteModal'; - -function ArztTabelle(props) { - const { apoId } = useParams(); - const [aerzte, setAerzte] = useState([]); - const { enqueueSnackbar } = useSnackbar(); - const [selectedArzt, setSelectedArzt] = useState(null); - const [showArztAddModal, setShowArztAddModal] = useState(false); - const [showArztEditModal, setShowArztEditModal] = useState(false); - const [showDeleteModal, setShowDeleteModal] = useState(false); - - const getArztData = () => { - fetch(`http://${process.env.REACT_APP_BACKEND_URL}/apotheke/${apoId}/arzt`, { - method: 'GET', - headers: { - 'Authorization': 'Bearer ' + window.sessionStorage.getItem("edbapo-jwt"), - } - }).then((res) => { - if (res.status === 200) { - return res.json() - } else if (res.status === 403) { - props.history.push('forbidden'); - } else if (res.status === 400) { - props.history.push('badrequest'); - } - }).then((data) => setAerzte(data)).catch((err) => { - //SHOW ERROR - return; - }); - } - - const deleteArzt = () => { - fetch(`http://${process.env.REACT_APP_BACKEND_URL}/apotheke/${apoId}/arzt/${selectedArzt.id}`, { - method: 'DELETE', - headers: { - 'Authorization': 'Bearer ' + window.sessionStorage.getItem("edbapo-jwt"), - }, - }).then((res) => { - if (res.status === 200) { - getArztData() - enqueueSnackbar('Arzt erfolgreich gelöscht', { variant: 'success', autoHideDuration: 3000 }); - } else { - //SHOW ERROR - console.log(res); - } - }).catch((err) => { - //SHOW ERROR - console.log(err); - }); - } - - const edit = arzt => { - setSelectedArzt(arzt); - setShowArztEditModal(true); - } - - const del = arzt => { - setSelectedArzt(arzt); - setShowDeleteModal(true); - } - - useEffect(() => { - getArztData(); - }, []) - - return ( - <Fragment> - <ArztAddModal {...props} show={showArztAddModal} onHide={() => setShowArztAddModal(false)} updateArztData={getArztData} /> - {selectedArzt ? <ArztEditModal {...props} arzt={selectedArzt} show={showArztEditModal} onHide={() => setShowArztEditModal(false)} updateArztData={getArztData} /> : null} - <DeleteModal {...props} headertext={'Arzt löschen'} - maintext={'Möchtest du diesen Arzt wirklich löschen?'} onSubmit={deleteArzt} subtext={'Dieser Vorgang kann nicht rückgängig gemacht werden'} - show={showDeleteModal} onHide={() => setShowDeleteModal(false)} /> - <Table striped bordered hover> - <thead> - <tr> - <th>Name</th> - <th>Strasse</th> - <th>Ort</th> - <th style={{ textAlign: 'center', verticalAlign: 'middle' }}> - <Button onClick={() => setShowArztAddModal(true)} >Hinzufügen <AddBox /></Button> - </th> - </tr> - </thead> - <tbody> - {aerzte.map(arzt => - <tr key={arzt.id}> - <td>{arzt.name}</td> - <td>{arzt.anschrift.strasse} {arzt.anschrift.nummer}</td> - <td>{arzt.anschrift.plz} {arzt.anschrift.ort}</td> - <td style={{ textAlign: 'center', verticalAlign: 'middle' }}> - <Button onClick={() => edit(arzt)}><Edit /></Button> - <Button onClick={() => del(arzt)}><DeleteForever /></Button> - </td> - </tr> - )} - </tbody> - </Table> - </Fragment> - ) -} - -export default ArztTabelle; +import React, { Fragment, useState, useEffect } from 'react'; +import { useParams } from 'react-router-dom'; +import { AddBox, Edit, DeleteForever } from '@material-ui/icons'; +import { Table, Button } from 'react-bootstrap'; +import { useSnackbar } from 'notistack'; + +import ArztAddModal from '../../../../modals/ArztAddModal'; +import ArztEditModal from '../../../../modals/ArztEditModal'; +import DeleteModal from '../../../../modals/DeleteModal'; + +function ArztTabelle(props) { + const { apoId } = useParams(); + const [aerzte, setAerzte] = useState([]); + const { enqueueSnackbar } = useSnackbar(); + const [selectedArzt, setSelectedArzt] = useState(null); + const [showArztAddModal, setShowArztAddModal] = useState(false); + const [showArztEditModal, setShowArztEditModal] = useState(false); + const [showDeleteModal, setShowDeleteModal] = useState(false); + + const getArztData = () => { + fetch(`http://${process.env.REACT_APP_BACKEND_URL}/apotheke/${apoId}/arzt`, { + method: 'GET', + headers: { + 'Authorization': 'Bearer ' + window.sessionStorage.getItem("edbapo-jwt"), + } + }).then((res) => { + if (res.status === 200) { + return res.json() + } else if (res.status === 403) { + props.history.push('forbidden'); + } else if (res.status === 400) { + props.history.push('badrequest'); + } + }).then((data) => setAerzte(data)).catch((err) => { + //SHOW ERROR + return; + }); + } + + const deleteArzt = () => { + fetch(`http://${process.env.REACT_APP_BACKEND_URL}/apotheke/${apoId}/arzt/${selectedArzt.id}`, { + method: 'DELETE', + headers: { + 'Authorization': 'Bearer ' + window.sessionStorage.getItem("edbapo-jwt"), + }, + }).then((res) => { + if (res.status === 200) { + getArztData() + enqueueSnackbar('Arzt erfolgreich gelöscht', { variant: 'success', autoHideDuration: 3000 }); + } else { + //SHOW ERROR + console.log(res); + } + }).catch((err) => { + //SHOW ERROR + console.log(err); + }); + } + + const edit = arzt => { + setSelectedArzt(arzt); + setShowArztEditModal(true); + } + + const del = arzt => { + setSelectedArzt(arzt); + setShowDeleteModal(true); + } + + useEffect(() => { + getArztData(); + }, []) + + return ( + <Fragment> + <ArztAddModal {...props} show={showArztAddModal} onHide={() => setShowArztAddModal(false)} updateArztData={getArztData} /> + {selectedArzt ? <ArztEditModal {...props} arzt={selectedArzt} show={showArztEditModal} onHide={() => setShowArztEditModal(false)} updateArztData={getArztData} /> : null} + <DeleteModal {...props} headertext={'Arzt löschen'} + maintext={'Möchtest du diesen Arzt wirklich löschen?'} onSubmit={deleteArzt} subtext={'Dieser Vorgang kann nicht rückgängig gemacht werden'} + show={showDeleteModal} onHide={() => setShowDeleteModal(false)} /> + <Table striped bordered hover> + <thead> + <tr> + <th>Name</th> + <th>Strasse</th> + <th>Ort</th> + <th style={{ textAlign: 'center', verticalAlign: 'middle' }}> + <Button onClick={() => setShowArztAddModal(true)} >Hinzufügen <AddBox /></Button> + </th> + </tr> + </thead> + <tbody> + {aerzte.map(arzt => + <tr key={arzt.id}> + <td>{arzt.name}</td> + <td>{arzt.anschrift.strasse} {arzt.anschrift.nummer}</td> + <td>{arzt.anschrift.plz} {arzt.anschrift.ort}</td> + <td style={{ textAlign: 'center', verticalAlign: 'middle' }}> + {props.aktiveRolle.toLowerCase() === 'admin' ? <Fragment><Button onClick={() => edit(arzt)}><Edit /></Button> + <Button onClick={() => del(arzt)}><DeleteForever /></Button></Fragment> : null} + </td> + </tr> + )} + </tbody> + </Table> + </Fragment> + ) +} + +export default ArztTabelle; diff --git a/frontend/src/components/apotheke/einstellungen/tabellen/BtmTabelle.js b/frontend/src/components/apotheke/einstellungen/tabellen/BtmTabelle.js index d6422837e03507cef065159ec5977058413da3a6..2075efdb1da88da7141020ab5047a41918a1a789 100644 --- a/frontend/src/components/apotheke/einstellungen/tabellen/BtmTabelle.js +++ b/frontend/src/components/apotheke/einstellungen/tabellen/BtmTabelle.js @@ -1,112 +1,112 @@ -import React, { Fragment, useState, useEffect } from 'react'; -import { useParams } from 'react-router-dom'; -import { AddBox, Edit, DeleteForever } from '@material-ui/icons'; -import { Table, Button } from 'react-bootstrap'; -import { useSnackbar } from 'notistack'; - -import BtmAddModal from '../../../../modals/BtmAddModal'; -import BtmEditModal from '../../../../modals/BtmEditModal'; -import DeleteModal from '../../../../modals/DeleteModal'; - -function BtmTabelle(props) { - const { apoId } = useParams(); - const [btmListe, setBtmListe] = useState([]); - const { enqueueSnackbar } = useSnackbar(); - const [selectedBtm, setSelectedBtm] = useState(null); - const [showBtmAddModal, setShowBtmAddModal] = useState(false); - const [showBtmEditModal, setShowBtmEditModal] = useState(false); - const [showDeleteModal, setShowDeleteModal] = useState(false); - - const getBtmData = () => { - fetch(`http://${process.env.REACT_APP_BACKEND_URL}/apotheke/${apoId}/btm`, { - method: 'GET', - headers: { - 'Authorization': 'Bearer ' + window.sessionStorage.getItem("edbapo-jwt"), - } - }).then((res) => { - if (res.status === 200) { - return res.json() - } else if (res.status === 403) { - props.history.push('forbidden'); - } else if (res.status === 400) { - props.history.push('badrequest'); - } - }).then((data) => setBtmListe(data)).catch((err) => { - //SHOW ERROR - return; - }); - } - - const deleteBtm = () => { - fetch(`http://${process.env.REACT_APP_BACKEND_URL}/apotheke/${apoId}/btm/${selectedBtm.id}`, { - method: 'DELETE', - headers: { - 'Authorization': 'Bearer ' + window.sessionStorage.getItem("edbapo-jwt"), - }, - }).then((res) => { - if (res.status === 200) { - getBtmData() - enqueueSnackbar('Btm erfolgreich gelöscht', { variant: 'success', autoHideDuration: 3000 }); - } else { - //SHOW ERROR - console.log(res); - } - }).catch((err) => { - //SHOW ERROR - console.log(err); - }); - } - - const edit = btm => { - setSelectedBtm(btm); - setShowBtmEditModal(true); - } - - const del = btm => { - setSelectedBtm(btm); - setShowDeleteModal(true); - } - - useEffect(() => { - getBtmData() - }, []) - - return ( - <Fragment> - <BtmAddModal {...props} show={showBtmAddModal} onHide={() => setShowBtmAddModal(false)} updateBtmData={getBtmData} /> - {selectedBtm ? <BtmEditModal {...props} btm={selectedBtm} show={showBtmEditModal} onHide={() => setShowBtmEditModal(false)} updateBtmData={getBtmData} /> : null} - <DeleteModal {...props} headertext={'Btm löschen'} - maintext={'Möchtest du diesen Btm wirklich löschen?'} onSubmit={deleteBtm} subtext={'Dieser Vorgang kann nicht rückgängig gemacht werden'} - show={showDeleteModal} onHide={() => setShowDeleteModal(false)} /> - <Table striped bordered hover> - <thead> - <tr> - <th>Name</th> - <th>Darreichungsform</th> - <th>Einheit</th> - <th>Menge</th> - <th style={{ textAlign: 'center', verticalAlign: 'middle' }}> - <Button onClick={() => setShowBtmAddModal(true)} >Hinzufügen <AddBox /></Button> - </th> - </tr> - </thead> - <tbody> - {btmListe.map(btm => - <tr key={btm.id}> - <td>{btm.name}</td> - <td>{btm.darreichungsform}</td> - <td>{btm.einheit}</td> - <td>{btm.menge}</td> - <td style={{ textAlign: 'center', verticalAlign: 'middle' }}> - <Button onClick={() => edit(btm)}><Edit /></Button> - <Button onClick={() => del(btm)}><DeleteForever /></Button> - </td> - </tr> - )} - </tbody> - </Table> - </Fragment> - ) -} - -export default BtmTabelle; +import React, { Fragment, useState, useEffect } from 'react'; +import { useParams } from 'react-router-dom'; +import { AddBox, Edit, DeleteForever } from '@material-ui/icons'; +import { Table, Button } from 'react-bootstrap'; +import { useSnackbar } from 'notistack'; + +import BtmAddModal from '../../../../modals/BtmAddModal'; +import BtmEditModal from '../../../../modals/BtmEditModal'; +import DeleteModal from '../../../../modals/DeleteModal'; + +function BtmTabelle(props) { + const { apoId } = useParams(); + const [btmListe, setBtmListe] = useState([]); + const { enqueueSnackbar } = useSnackbar(); + const [selectedBtm, setSelectedBtm] = useState(null); + const [showBtmAddModal, setShowBtmAddModal] = useState(false); + const [showBtmEditModal, setShowBtmEditModal] = useState(false); + const [showDeleteModal, setShowDeleteModal] = useState(false); + + const getBtmData = () => { + fetch(`http://${process.env.REACT_APP_BACKEND_URL}/apotheke/${apoId}/btm`, { + method: 'GET', + headers: { + 'Authorization': 'Bearer ' + window.sessionStorage.getItem("edbapo-jwt"), + } + }).then((res) => { + if (res.status === 200) { + return res.json() + } else if (res.status === 403) { + props.history.push('forbidden'); + } else if (res.status === 400) { + props.history.push('badrequest'); + } + }).then((data) => setBtmListe(data)).catch((err) => { + //SHOW ERROR + return; + }); + } + + const deleteBtm = () => { + fetch(`http://${process.env.REACT_APP_BACKEND_URL}/apotheke/${apoId}/btm/${selectedBtm.id}`, { + method: 'DELETE', + headers: { + 'Authorization': 'Bearer ' + window.sessionStorage.getItem("edbapo-jwt"), + }, + }).then((res) => { + if (res.status === 200) { + getBtmData() + enqueueSnackbar('Btm erfolgreich gelöscht', { variant: 'success', autoHideDuration: 3000 }); + } else { + //SHOW ERROR + console.log(res); + } + }).catch((err) => { + //SHOW ERROR + console.log(err); + }); + } + + const edit = btm => { + setSelectedBtm(btm); + setShowBtmEditModal(true); + } + + const del = btm => { + setSelectedBtm(btm); + setShowDeleteModal(true); + } + + useEffect(() => { + getBtmData() + }, []) + + return ( + <Fragment> + <BtmAddModal {...props} show={showBtmAddModal} onHide={() => setShowBtmAddModal(false)} updateBtmData={getBtmData} /> + {selectedBtm ? <BtmEditModal {...props} btm={selectedBtm} show={showBtmEditModal} onHide={() => setShowBtmEditModal(false)} updateBtmData={getBtmData} /> : null} + <DeleteModal {...props} headertext={'Btm löschen'} + maintext={'Möchtest du diesen Btm wirklich löschen?'} onSubmit={deleteBtm} subtext={'Dieser Vorgang kann nicht rückgängig gemacht werden'} + show={showDeleteModal} onHide={() => setShowDeleteModal(false)} /> + <Table striped bordered hover> + <thead> + <tr> + <th>Name</th> + <th>Darreichungsform</th> + <th>Einheit</th> + <th>Menge</th> + <th style={{ textAlign: 'center', verticalAlign: 'middle' }}> + <Button onClick={() => setShowBtmAddModal(true)} >Hinzufügen <AddBox /></Button> + </th> + </tr> + </thead> + <tbody> + {btmListe.map(btm => + <tr key={btm.id}> + <td>{btm.name}</td> + <td>{btm.darreichungsform}</td> + <td>{btm.einheit}</td> + <td>{btm.menge}</td> + <td style={{ textAlign: 'center', verticalAlign: 'middle' }}> + {props.aktiveRolle.toLowerCase() === 'admin' ? <Fragment><Button onClick={() => edit(btm)}><Edit /></Button> + <Button onClick={() => del(btm)}><DeleteForever /></Button></Fragment> : null} + </td> + </tr> + )} + </tbody> + </Table> + </Fragment> + ) +} + +export default BtmTabelle; diff --git a/frontend/src/components/apotheke/einstellungen/tabellen/LieferantTabelle.js b/frontend/src/components/apotheke/einstellungen/tabellen/LieferantTabelle.js index fc60b938545f624bbaf2ef115f27339b164e1cfc..549bfbe4e0b6f97ae154eabd129ff9e37555d641 100644 --- a/frontend/src/components/apotheke/einstellungen/tabellen/LieferantTabelle.js +++ b/frontend/src/components/apotheke/einstellungen/tabellen/LieferantTabelle.js @@ -1,110 +1,110 @@ -import React, { Fragment, useState, useEffect } from 'react'; -import { useParams } from 'react-router-dom'; -import { AddBox, Edit, DeleteForever } from '@material-ui/icons'; -import { Table, Button } from 'react-bootstrap'; -import { useSnackbar } from 'notistack'; - -import LieferantAddModal from '../../../../modals/LieferantAddModal'; -import LieferantEditModal from '../../../../modals/LieferantEditModal'; -import DeleteModal from '../../../../modals/DeleteModal'; - -function LieferantTabelle(props) { - const { apoId } = useParams(); - const [lieferanten, setLieferanten] = useState([]); - const { enqueueSnackbar } = useSnackbar(); - const [selectedLieferant, setSelectedLieferant] = useState(null); - const [showLieferantAddModal, setShowLieferantAddModal] = useState(false); - const [showLieferantEditModal, setShowLieferantEditModal] = useState(false); - const [showDeleteModal, setShowDeleteModal] = useState(false); - - const getLieferantData = () => { - fetch(`http://${process.env.REACT_APP_BACKEND_URL}/apotheke/${apoId}/lieferant`, { - method: 'GET', - headers: { - 'Authorization': 'Bearer ' + window.sessionStorage.getItem("edbapo-jwt"), - } - }).then((res) => { - if (res.status === 200) { - return res.json() - } else if (res.status === 403) { - props.history.push('forbidden'); - } else if (res.status === 400) { - props.history.push('badrequest'); - } - }).then((data) => setLieferanten(data)).catch((err) => { - //SHOW ERROR - return; - }); - } - - const deleteLieferant = () => { - fetch(`http://${process.env.REACT_APP_BACKEND_URL}/apotheke/${apoId}/lieferant/${selectedLieferant.id}`, { - method: 'DELETE', - headers: { - 'Authorization': 'Bearer ' + window.sessionStorage.getItem("edbapo-jwt"), - }, - }).then((res) => { - if (res.status === 200) { - getLieferantData() - enqueueSnackbar('Lieferant erfolgreich gelöscht', { variant: 'success', autoHideDuration: 3000 }); - } else { - //SHOW ERROR - console.log(res); - } - }).catch((err) => { - //SHOW ERROR - console.log(err); - }); - } - - const edit = lieferant => { - setSelectedLieferant(lieferant); - setShowLieferantEditModal(true); - } - - const del = lieferant => { - setSelectedLieferant(lieferant); - setShowDeleteModal(true); - } - - useEffect(() => { - getLieferantData() - }, []) - - return ( - <Fragment> - <LieferantAddModal {...props} show={showLieferantAddModal} onHide={() => setShowLieferantAddModal(false)} updateLieferantData={getLieferantData} /> - {selectedLieferant ? <LieferantEditModal {...props} lieferant={selectedLieferant} show={showLieferantEditModal} onHide={() => setShowLieferantEditModal(false)} updateLieferantData={getLieferantData} /> : null} - <DeleteModal {...props} headertext={'Lieferant löschen'} - maintext={'Möchtest du diesen Lieferant wirklich löschen?'} onSubmit={deleteLieferant} subtext={'Dieser Vorgang kann nicht rückgängig gemacht werden'} - show={showDeleteModal} onHide={() => setShowDeleteModal(false)} /> - <Table striped bordered hover> - <thead> - <tr> - <th>Name</th> - <th>Strasse</th> - <th>Ort</th> - <th style={{ textAlign: 'center', verticalAlign: 'middle' }}> - <Button onClick={() => setShowLieferantAddModal(true)} >Hinzufügen <AddBox /></Button> - </th> - </tr> - </thead> - <tbody> - {lieferanten.map(lieferant => - <tr key={lieferant.id}> - <td>{lieferant.name}</td> - <td>{lieferant.anschrift.strasse} {lieferant.anschrift.nummer}</td> - <td>{lieferant.anschrift.plz} {lieferant.anschrift.ort}</td> - <td style={{ textAlign: 'center', verticalAlign: 'middle' }}> - <Button onClick={() => edit(lieferant)}><Edit /></Button> - <Button onClick={() => del(lieferant)}><DeleteForever /></Button> - </td> - </tr> - )} - </tbody> - </Table> - </Fragment> - ) -} - -export default LieferantTabelle; +import React, { Fragment, useState, useEffect } from 'react'; +import { useParams } from 'react-router-dom'; +import { AddBox, Edit, DeleteForever } from '@material-ui/icons'; +import { Table, Button } from 'react-bootstrap'; +import { useSnackbar } from 'notistack'; + +import LieferantAddModal from '../../../../modals/LieferantAddModal'; +import LieferantEditModal from '../../../../modals/LieferantEditModal'; +import DeleteModal from '../../../../modals/DeleteModal'; + +function LieferantTabelle(props) { + const { apoId } = useParams(); + const [lieferanten, setLieferanten] = useState([]); + const { enqueueSnackbar } = useSnackbar(); + const [selectedLieferant, setSelectedLieferant] = useState(null); + const [showLieferantAddModal, setShowLieferantAddModal] = useState(false); + const [showLieferantEditModal, setShowLieferantEditModal] = useState(false); + const [showDeleteModal, setShowDeleteModal] = useState(false); + + const getLieferantData = () => { + fetch(`http://${process.env.REACT_APP_BACKEND_URL}/apotheke/${apoId}/lieferant`, { + method: 'GET', + headers: { + 'Authorization': 'Bearer ' + window.sessionStorage.getItem("edbapo-jwt"), + } + }).then((res) => { + if (res.status === 200) { + return res.json() + } else if (res.status === 403) { + props.history.push('forbidden'); + } else if (res.status === 400) { + props.history.push('badrequest'); + } + }).then((data) => setLieferanten(data)).catch((err) => { + //SHOW ERROR + return; + }); + } + + const deleteLieferant = () => { + fetch(`http://${process.env.REACT_APP_BACKEND_URL}/apotheke/${apoId}/lieferant/${selectedLieferant.id}`, { + method: 'DELETE', + headers: { + 'Authorization': 'Bearer ' + window.sessionStorage.getItem("edbapo-jwt"), + }, + }).then((res) => { + if (res.status === 200) { + getLieferantData() + enqueueSnackbar('Lieferant erfolgreich gelöscht', { variant: 'success', autoHideDuration: 3000 }); + } else { + //SHOW ERROR + console.log(res); + } + }).catch((err) => { + //SHOW ERROR + console.log(err); + }); + } + + const edit = lieferant => { + setSelectedLieferant(lieferant); + setShowLieferantEditModal(true); + } + + const del = lieferant => { + setSelectedLieferant(lieferant); + setShowDeleteModal(true); + } + + useEffect(() => { + getLieferantData() + }, []) + + return ( + <Fragment> + <LieferantAddModal {...props} show={showLieferantAddModal} onHide={() => setShowLieferantAddModal(false)} updateLieferantData={getLieferantData} /> + {selectedLieferant ? <LieferantEditModal {...props} lieferant={selectedLieferant} show={showLieferantEditModal} onHide={() => setShowLieferantEditModal(false)} updateLieferantData={getLieferantData} /> : null} + <DeleteModal {...props} headertext={'Lieferant löschen'} + maintext={'Möchtest du diesen Lieferant wirklich löschen?'} onSubmit={deleteLieferant} subtext={'Dieser Vorgang kann nicht rückgängig gemacht werden'} + show={showDeleteModal} onHide={() => setShowDeleteModal(false)} /> + <Table striped bordered hover> + <thead> + <tr> + <th>Name</th> + <th>Strasse</th> + <th>Ort</th> + <th style={{ textAlign: 'center', verticalAlign: 'middle' }}> + <Button onClick={() => setShowLieferantAddModal(true)} >Hinzufügen <AddBox /></Button> + </th> + </tr> + </thead> + <tbody> + {lieferanten.map(lieferant => + <tr key={lieferant.id}> + <td>{lieferant.name}</td> + <td>{lieferant.anschrift.strasse} {lieferant.anschrift.nummer}</td> + <td>{lieferant.anschrift.plz} {lieferant.anschrift.ort}</td> + <td style={{ textAlign: 'center', verticalAlign: 'middle' }}> + {props.aktiveRolle.toLowerCase() === 'admin' ? <Fragment><Button onClick={() => edit(lieferant)}><Edit /></Button> + <Button onClick={() => del(lieferant)}><DeleteForever /></Button></Fragment> : null} + </td> + </tr> + )} + </tbody> + </Table> + </Fragment> + ) +} + +export default LieferantTabelle; diff --git a/frontend/src/components/apotheke/einstellungen/tabellen/PersonalTabelle.js b/frontend/src/components/apotheke/einstellungen/tabellen/PersonalTabelle.js index 00fff5fcda5104fee18669a08fe683ea8a6f5660..5cccc9ca250797186000cb54ba04b08d938c1e29 100644 --- a/frontend/src/components/apotheke/einstellungen/tabellen/PersonalTabelle.js +++ b/frontend/src/components/apotheke/einstellungen/tabellen/PersonalTabelle.js @@ -1,115 +1,115 @@ -import React, { Fragment, useState, useEffect } from 'react'; -import { useParams } from 'react-router-dom'; -import { AddBox, Edit, DeleteForever } from '@material-ui/icons'; -import { Table, Button } from 'react-bootstrap'; - -import PersonalAddModal from '../../../../modals/PersonalAddModal'; -import PersonalEditModal from '../../../../modals/PersonalEditModal'; -import DeleteModal from '../../../../modals/DeleteModal'; -import { useSnackbar } from 'notistack'; - -function PersonalTabelle(props) { - const { apoId } = useParams(); - const [personal, setPersonal] = useState([]); - const { enqueueSnackbar } = useSnackbar(); - const [selectedUser, setSelectedUser] = useState(null); - const [showPersonalAddModal, setShowPersonalAddModal] = useState(false); - const [showPersonalEditModal, setShowPersonalEditModal] = useState(false); - const [showDeleteModal, setShowDeleteModal] = useState(false); - - - - const getPersonalData = () => { - fetch(`http://${process.env.REACT_APP_BACKEND_URL}/apotheke/${apoId}/benutzer`, { - method: 'GET', - headers: { - 'Authorization': 'Bearer ' + window.sessionStorage.getItem("edbapo-jwt"), - } - }).then((res) => { - if (res.status === 200) { - return res.json() - } else if (res.status === 403) { - props.history.push('forbidden'); - } else if (res.status === 400) { - props.history.push('badrequest'); - } - }).then((data) => setPersonal(data)).catch((err) => { - //SHOW ERROR - return; - }); - } - - const deleteUser = () => { - fetch(`http://${process.env.REACT_APP_BACKEND_URL}/apotheke/${apoId}/benutzer/${selectedUser.id}`, { - method: 'DELETE', - headers: { - 'Authorization': 'Bearer ' + window.sessionStorage.getItem("edbapo-jwt"), - }, - }).then((res) => { - if (res && res.status === 200) { - getPersonalData(); - enqueueSnackbar('Benutzer erfolgreich gelöscht', { variant: 'success', autoHideDuration: 3000 }); - } else { - //SHOW ERROR - console.log(res); - } - }).catch((err) => { - //SHOW ERROR - console.log(err); - }); - } - - const del = user => { - setSelectedUser(user); - setShowDeleteModal(true); - } - const edit = user => { - setSelectedUser(user); - setShowPersonalEditModal(true); - } - - useEffect(() => { - getPersonalData() - }, []) - - return ( - <Fragment> - <PersonalAddModal {...props} show={showPersonalAddModal} onHide={() => setShowPersonalAddModal(false)} updatePersonalData={getPersonalData}/> - {selectedUser ? <PersonalEditModal {...props} user={selectedUser} show={showPersonalEditModal} onHide={() => setShowPersonalEditModal(false)} updatePersonalData={getPersonalData}/> : null} - <DeleteModal {...props} headertext={'Benutzer löschen'} - maintext={'Möchtest du diesen Benutzer wirklich löschen?'} onSubmit={deleteUser} subtext={'Dieser Vorgang kann nicht rückgängig gemacht werden'} - show={showDeleteModal} onHide={() => setShowDeleteModal(false)} /> - <Table striped bordered hover> - <thead> - <tr> - <th>Nutzername</th> - <th>Nachname</th> - <th>Vorname</th> - <th>Aktiv</th> - <th>Rolle</th> - <th style={{ textAlign: 'center', verticalAlign: 'middle' }}> - <Button onClick={() => setShowPersonalAddModal(true)} >Hinzufügen <AddBox /></Button> - </th> - </tr> - </thead> - <tbody> - {personal.map(user => - <tr key={user.id}> - <td>{user.nutzername}</td> - <td>{user.name}</td> - <td>{user.vorname}</td> - <td>{user.aktiv ? 'ja' : 'nein'}</td> - <td>{user.rolle}</td> - <td style={{ textAlign: 'center', verticalAlign: 'middle' }}> - <Button onClick={() => edit(user)}><Edit /></Button> - <Button onClick={() => del(user)}><DeleteForever /></Button> - </td> - </tr> - )} - </tbody> - </Table> - </Fragment> - ) -} - -export default PersonalTabelle; +import React, { Fragment, useState, useEffect } from 'react'; +import { useParams } from 'react-router-dom'; +import { AddBox, Edit, DeleteForever } from '@material-ui/icons'; +import { Table, Button } from 'react-bootstrap'; + +import PersonalAddModal from '../../../../modals/PersonalAddModal'; +import PersonalEditModal from '../../../../modals/PersonalEditModal'; +import DeleteModal from '../../../../modals/DeleteModal'; +import { useSnackbar } from 'notistack'; + +function PersonalTabelle(props) { + const { apoId } = useParams(); + const [personal, setPersonal] = useState([]); + const { enqueueSnackbar } = useSnackbar(); + const [selectedUser, setSelectedUser] = useState(null); + const [showPersonalAddModal, setShowPersonalAddModal] = useState(false); + const [showPersonalEditModal, setShowPersonalEditModal] = useState(false); + const [showDeleteModal, setShowDeleteModal] = useState(false); + + + + const getPersonalData = () => { + fetch(`http://${process.env.REACT_APP_BACKEND_URL}/apotheke/${apoId}/benutzer`, { + method: 'GET', + headers: { + 'Authorization': 'Bearer ' + window.sessionStorage.getItem("edbapo-jwt"), + } + }).then((res) => { + if (res.status === 200) { + return res.json() + } else if (res.status === 403) { + props.history.push('forbidden'); + } else if (res.status === 400) { + props.history.push('badrequest'); + } + }).then((data) => setPersonal(data)).catch((err) => { + //SHOW ERROR + return; + }); + } + + const deleteUser = () => { + fetch(`http://${process.env.REACT_APP_BACKEND_URL}/apotheke/${apoId}/benutzer/${selectedUser.id}`, { + method: 'DELETE', + headers: { + 'Authorization': 'Bearer ' + window.sessionStorage.getItem("edbapo-jwt"), + }, + }).then((res) => { + if (res && res.status === 200) { + getPersonalData(); + enqueueSnackbar('Benutzer erfolgreich gelöscht', { variant: 'success', autoHideDuration: 3000 }); + } else { + //SHOW ERROR + console.log(res); + } + }).catch((err) => { + //SHOW ERROR + console.log(err); + }); + } + + const del = user => { + setSelectedUser(user); + setShowDeleteModal(true); + } + const edit = user => { + setSelectedUser(user); + setShowPersonalEditModal(true); + } + + useEffect(() => { + getPersonalData() + }, []) + + return ( + <Fragment> + <PersonalAddModal {...props} show={showPersonalAddModal} onHide={() => setShowPersonalAddModal(false)} updatePersonalData={getPersonalData} /> + {selectedUser ? <PersonalEditModal {...props} user={selectedUser} show={showPersonalEditModal} onHide={() => setShowPersonalEditModal(false)} updatePersonalData={getPersonalData} /> : null} + <DeleteModal {...props} headertext={'Benutzer löschen'} + maintext={'Möchtest du diesen Benutzer wirklich löschen?'} onSubmit={deleteUser} subtext={'Dieser Vorgang kann nicht rückgängig gemacht werden'} + show={showDeleteModal} onHide={() => setShowDeleteModal(false)} /> + <Table striped bordered hover> + <thead> + <tr> + <th>Nutzername</th> + <th>Nachname</th> + <th>Vorname</th> + <th>Aktiv</th> + <th>Rolle</th> + {props.aktiveRolle.toLowerCase() === 'admin' ? <th style={{ textAlign: 'center', verticalAlign: 'middle' }}> + <Button onClick={() => setShowPersonalAddModal(true)} >Hinzufügen <AddBox /></Button> + </th> : null} + </tr> + </thead> + <tbody> + {personal.map(user => + <tr key={user.id}> + <td>{user.nutzername}</td> + <td>{user.name}</td> + <td>{user.vorname}</td> + <td>{user.aktiv ? 'ja' : 'nein'}</td> + <td>{user.rolle}</td> + {props.aktiveRolle.toLowerCase() === 'admin' ? <td style={{ textAlign: 'center', verticalAlign: 'middle' }}> + <Button onClick={() => edit(user)}><Edit /></Button> + <Button onClick={() => del(user)}><DeleteForever /></Button> + </td> : null} + </tr> + )} + </tbody> + </Table> + </Fragment> + ) +} + +export default PersonalTabelle;