diff --git a/routes/admin.routes.js b/routes/admin.routes.js index 6dc0677..799b461 100644 --- a/routes/admin.routes.js +++ b/routes/admin.routes.js @@ -34,6 +34,31 @@ router.get("/users", async (req, res, next) => { } }); +router.get("/archivedusers", async (req, res, next) => { + try { + const user = await prisma.user.findMany({ + where: { + approved: user_approval_type.Archived + }, + select: { + id: true, + fname: true, + mname: true, + lname: true, + addr: true, + cnum: true, + emailaddr: true, + bdate: true, + type: true, + login_username: true + } + }); + res.json(user); + } catch (err) { + res.status(500).json({ msg: err.message }); + } +}); + router.get("/feedbacks", async (req, res, next) => { try { const feedbacks = await prisma.feedback.findMany({ diff --git a/src-frontend-react/src/components/AdminTools/RegistrationForm/index.js b/src-frontend-react/src/components/AdminTools/UserManagementForm/index.js similarity index 88% rename from src-frontend-react/src/components/AdminTools/RegistrationForm/index.js rename to src-frontend-react/src/components/AdminTools/UserManagementForm/index.js index 2062fe0..65babb1 100644 --- a/src-frontend-react/src/components/AdminTools/RegistrationForm/index.js +++ b/src-frontend-react/src/components/AdminTools/UserManagementForm/index.js @@ -1,6 +1,6 @@ import moment from 'moment'; import { useEffect, useState } from 'react'; -import { Form, Button, Row, Col, Stack } from 'react-bootstrap'; +import { Form, Button, Row, Col, Stack, Accordion, ListGroupItem } from 'react-bootstrap'; import Select from 'react-select' import LoadingOverlay from 'react-loading-overlay-ts'; @@ -29,11 +29,13 @@ const DEFAULT_FORM_VALUES = { /// TODO Add placeholders to the form controls const DEFAULT_SELECT_VALUE = { value: { ...DEFAULT_FORM_VALUES }, label: "Create new user" } -function RegistrationForm() { +export const UserManagementForm = () => { const [usersList, setUsersList] = useState([]) const [userTypes, setUserTypes] = useState([]) + const [archivedUsersList, setArchivedUsersList] = useState([]) + const [usersListOptions, setUsersListOptions] = useState([]) const [selectedUser, setSelectedUser] = useState({ ...DEFAULT_SELECT_VALUE }) @@ -62,6 +64,15 @@ function RegistrationForm() { setUsersList(data) return data; }), + customFetch(`${global.server_backend_url}/backend/admin/archivedusers`) + .then((response) => { + if (response.ok) return response.json(); + else throw response; + }) + .then((data) => { + setArchivedUsersList(data) + return data; + }), customFetch(`${global.server_backend_url}/backend/admin/usertypes`) .then((response) => { if (response.ok) return response.json(); @@ -290,7 +301,7 @@ function RegistrationForm() { return ( - + {/* */} {/* { */} {/* setSelectedUser(e.target.value) */} @@ -434,8 +445,40 @@ function RegistrationForm() { + + + + Archived Users + + + + {archivedUsersList.map((user) => { + return ( + + + {`[${user.type}] ${user.lname}, ${user.fname} ${user.mname}`} + + + {/* */} + {/* */} + + {`Username: ${user.login_username}`} + {`Address: ${user.addr}`} + {`Contact Number: ${user.cnum}`} + {`Email Address: ${user.emailaddr}`} + {`Birthdate: ${moment(user.bdate).format('MMM DD, YYYY')}`} + + + ) + })} + + {archivedUsersList.length === 0 ? "Nothing to show." : ''} + + + + ); } -export default RegistrationForm; +export default UserManagementForm; diff --git a/src-frontend-react/src/components/AdminTools/index.js b/src-frontend-react/src/components/AdminTools/index.js index 5c0f009..eefd981 100644 --- a/src-frontend-react/src/components/AdminTools/index.js +++ b/src-frontend-react/src/components/AdminTools/index.js @@ -1,7 +1,7 @@ import { Button, Card, Col, Row } from "react-bootstrap"; import { Jumbotron } from "../Jumbotron"; import { AnnouncementsForm } from "./AnnouncementsForm"; -import RegistrationForm from "./RegistrationForm"; +import UserManagementForm from "./UserManagementForm"; import UserApprovalComponent from "./UserApproval"; import Cookies from "js-cookie"; import FeedbackAnalytics from "./FeedbackAnalytics"; @@ -31,7 +31,7 @@ export const AdminTools = ({ sidebarbtn_onClick }) => { Users Management - +
*/} + {/*
{`Username: ${user.login_username}`}
{`Address: ${user.addr}`}
{`Contact Number: ${user.cnum}`}
{`Email Address: ${user.emailaddr}`}
{`Birthdate: ${moment(user.bdate).format('MMM DD, YYYY')}`}