diff --git a/src/pages/api/get_users.js b/src/pages/api/get_users.js
index ef57233..6d44561 100644
--- a/src/pages/api/get_users.js
+++ b/src/pages/api/get_users.js
@@ -17,6 +17,7 @@ async function handler(req, res) {
{ "tenures.semester": { $in: [req.query.semester] } },
{ "tenures.year": { $in: [Number(req.query.year)] } },
+ req.query.role == "All" ? {} : { "tenures.role": { $in: [req.query.role] } },
req.query.department == "All" ? {} : { "tenures.department": { $in: [req.query.department] } },
],
},
@@ -42,7 +43,6 @@ async function handler(req, res) {
},
},
]);
-
res.status(200).json({ users });
}
diff --git a/src/screens/AdminDashboard/AdminDashboard.tsx b/src/screens/AdminDashboard/AdminDashboard.tsx
index 636afa4..20c9c6f 100644
--- a/src/screens/AdminDashboard/AdminDashboard.tsx
+++ b/src/screens/AdminDashboard/AdminDashboard.tsx
@@ -90,25 +90,32 @@ const StyledSelect = styled(Select)(() => ({
}));
function AdminDashboardPage({ url }) {
+ const [semester, setSemester] = useState("Fall 2023");
const [department, setDepartment] = useState("All");
- const [semesterFilter, setSemesterFilter] = useState("Spring 2023");
const [showUploadModal, setShowUploadModal] = useState(false);
const [fileBlob, setFileBlob] = useState(null);
const [filter, setFilter] = useState("");
const [isAddUser, setIsAddUser] = useState(false);
const [newMembers, setNewMembers] = useState(null);
+ const [role, setRole] = useState("All");
+
+ const semesters = fields.semesterOptions;
+ const roles = fields.roles;
const departments = fields.departments;
- const semesterFilters = fields.semesterYearOptions;
const changeSemesterHandler = (event) => {
- setSemesterFilter(event.target.value);
+ setSemester(event.target.value);
};
const changeDepartmentHandler = (event) => {
setDepartment(event.target.value);
};
+ const changeRoleHandler = (event) => {
+ setRole(event.target.value);
+ };
+
const bulkUpload = async () => {
const res = await sendRequest(urls.api.bulkUpload, "POST", fileBlob, { "Content-Type": "text/csv" }, false);
setNewMembers(res.members);
@@ -179,7 +186,7 @@ function AdminDashboardPage({ url }) {
UPLOAD CSV
- {Array.from(semesterFilters)
+ {Array.from(semesters)
.sort(sortTenures(false))
.map((semester) => {
return (
@@ -230,12 +237,38 @@ function AdminDashboardPage({ url }) {
);
})}
+
+ {Array.from(roles)
+ .sort()
+ .map((role) => {
+ return (
+
+ );
+ })}
+
signOut()} />
-
+
diff --git a/src/screens/AdminDashboard/UserTable/PaginationTable/EditMemberModal/EditMemberModal.tsx b/src/screens/AdminDashboard/UserTable/PaginationTable/EditMemberModal/EditMemberModal.tsx
index 632dc74..6cfd1c9 100644
--- a/src/screens/AdminDashboard/UserTable/PaginationTable/EditMemberModal/EditMemberModal.tsx
+++ b/src/screens/AdminDashboard/UserTable/PaginationTable/EditMemberModal/EditMemberModal.tsx
@@ -197,12 +197,6 @@ export default function EditMemberModal({ row, isVisible, closeModal, currentSem
});
}
setUserList(users);
-
- /*if (!semesters.has(semesterYear)) {
- const newSemesters = new Set(semesters);
- newSemesters.add(semesterYear);
- setSemesters(newSemesters);
- }*/
}
};
diff --git a/src/screens/AdminDashboard/UserTable/UserTable.tsx b/src/screens/AdminDashboard/UserTable/UserTable.tsx
index 2624135..71fb621 100644
--- a/src/screens/AdminDashboard/UserTable/UserTable.tsx
+++ b/src/screens/AdminDashboard/UserTable/UserTable.tsx
@@ -5,19 +5,20 @@ import TableContext from "../../../contexts/TableContext";
import { User } from "../types";
import sendRequest from "../../../server/utils/sendToBackend";
-function UserTable({ currentSemester, newMembers, departmentFilter }) {
+function UserTable({ currentSemester, newMembers, roleFilter, departmentFilter }) {
const [userList, setUserList] = useState([]);
useEffect(() => {
(async () => {
const response = await sendRequest(
- `/api/get_users?department=${departmentFilter}&semester=${currentSemester.split(" ")[0]}&year=${currentSemester.split(" ")[1]}`,
+ `/api/get_users?department=${departmentFilter}&role=${roleFilter}` +
+ `&semester=${currentSemester.split(" ")[0]}&year=${currentSemester.split(" ")[1]}`,
"GET",
);
const { users } = response;
setUserList(users);
})();
- }, [departmentFilter, currentSemester, newMembers]);
+ }, [roleFilter, currentSemester, newMembers, departmentFilter]);
if (!userList) {
return (
diff --git a/src/server/utils/fields.js b/src/server/utils/fields.js
index bef2651..f3d2c4b 100644
--- a/src/server/utils/fields.js
+++ b/src/server/utils/fields.js
@@ -6,9 +6,7 @@ const memberTypes = {
2: "Root Admin",
};
-const semesterOptions = ["Fall", "Spring", "Summer"];
-
-const semesterYearOptions = ["Fall 2022", "Spring 2023"];
+const semesterOptions = ["Spring 2020", "Fall 2020", "Spring 2021", "Fall 2021", "Spring 2022", "Fall 2022", "Spring 2023", "Fall 2023"];
const departments = [
"All",
@@ -24,6 +22,7 @@ const departments = [
];
const roles = [
+ "All",
"Developer",
"Senior Developer",
"Product Designer",
@@ -52,6 +51,7 @@ const roles = [
"Associate Executive Director",
"Executive Director",
"Alumni",
+ "Senior Dev",
];
const projects = [
@@ -82,7 +82,6 @@ const fields = {
preferences,
memberTypes,
semesterOptions,
- semesterYearOptions,
departments,
roles,
projects,