diff --git a/client/keystone/src/App.jsx b/client/keystone/src/App.jsx index 22a1281..274d36f 100644 --- a/client/keystone/src/App.jsx +++ b/client/keystone/src/App.jsx @@ -3,6 +3,9 @@ import LoginPage from "./Pages/LoginPage/Login"; import Landing from "./Pages/LandingPage/Landing"; import { MantineProvider } from "@mantine/core"; import "@mantine/core/styles.css"; +// export const UserLink = " :5000"; +export const UserLink = " http://localhost:5000"; +// function App() { return ( diff --git a/client/keystone/src/Components/ActiveVenues.jsx b/client/keystone/src/Components/ActiveVenues.jsx index eea30dc..b4dac11 100644 --- a/client/keystone/src/Components/ActiveVenues.jsx +++ b/client/keystone/src/Components/ActiveVenues.jsx @@ -1,6 +1,6 @@ import { useEffect, useState } from "react"; import axios from "axios"; - +import { UserLink } from "../App"; function ActiveVenues() { const [venueData, setVenueData] = useState([]); const [currentPage, setCurrentPage] = useState(1); @@ -20,7 +20,7 @@ function ActiveVenues() { const fetchVenues = () => { axios - .get("http://localhost:5000/venues") + .get(`${UserLink}/venues`) .then((res) => { if (Array.isArray(res.data)) { setVenueData(res.data); @@ -33,7 +33,7 @@ function ActiveVenues() { const handleDelete = (venue_id) => { axios - .post(`http://localhost:5000/delete_venu/${venue_id}`) + .post(`${UserLink}/delete_venu/${venue_id}`) .then((res) => { console.log(res.data); fetchVenues(); // Re-fetch the venues after deleting diff --git a/client/keystone/src/Components/AdminList.jsx b/client/keystone/src/Components/AdminList.jsx index 667d229..20256bf 100644 --- a/client/keystone/src/Components/AdminList.jsx +++ b/client/keystone/src/Components/AdminList.jsx @@ -1,13 +1,26 @@ import { useEffect, useState } from "react"; -import { Link } from "react-router-dom"; +import { Avatar } from "@mantine/core"; import axios from "axios"; -import UserFormControllerAdmin from "../utils/UserFormControllerAdmin"; +import "../Transition.css"; +import { UserLink } from "../App"; +// import UserFormControllerAdmin from "../utils/UserFormControllerAdmin"; function AdminList() { const [isApproved, setIsApproved] = useState([]); - const [deleted, setDeleted] = useState(true); + const [currentPage, setCurrentPage] = useState(1); + const itemsPerPage = 5; + // Logic to slice data based on current page + const indexOfLastItem = currentPage * itemsPerPage; + const indexOfFirstItem = indexOfLastItem - itemsPerPage; + const currentItems = isApproved.slice(indexOfFirstItem, indexOfLastItem); + const user_picture_base_url = + "https://raw.githubusercontent.com/mantinedev/mantine/master/.demo/avatars/"; + // Function to handle page change + const handlePageChange = (pageNumber) => { + setCurrentPage(pageNumber); + }; useEffect(() => { axios - .get("http://localhost:5000/admin_users") + .get(`${UserLink}/admin_users`) .then((res) => { if (Array.isArray(res.data)) { setIsApproved(res.data); @@ -16,60 +29,201 @@ function AdminList() { } }) .catch((err) => console.log(err)); - }, [deleted]); + }, []); function handleDelete(user_id) { axios - .post(`http://localhost:5000/delete_user/${user_id}`) + .post(`${UserLink}/delete_user/${user_id}`) .then((res) => { console.log(res.data); // Toggle the 'deleted' state to trigger a re-fetch of the data - setDeleted((prevDeleted) => !prevDeleted); + // setDeleted((prevDeleted) => !prevDeleted); window.location.reload(); }) .catch((err) => console.log(err)); } - + // ; return ( -
-
-

Admin List

- -
-
- {" "} - {isApproved.map((admin) => ( - -
- {admin.user_id} -
-
- {admin.email} -
-
- {admin.password} -
-
- {admin.username} -
-
- {admin.club} -
- {/* - - */} +
+ {" "} +
+
+ {/* MAIN WRAPPER TO DESGIN */} +

- Read - Edit - + alignContent: "center", + height: "60px", + width: "70%", + // position: "absolute", + // opacity: "20%", + }} + > + Admin Users +

+
+
+ {/*
Headers
*/} +
+
+
+ UserID +
+
+ Profile +
+
+ UserName +
+
+ Email +
+
+ College +
+
+ Club +
+
+
+
+ {/* + */} +
+
- - ))} + {/*
+
User
+
wew
+
wew
+
wew
+
wew
+
wew
+
*/} + {currentItems.map((venue, index) => ( +
+

+ +

+
+
+
+
+ Password: +
+
{venue.password}
+
+
+
+ Position: +
+
{venue.position}
+
+
+
+ Account Type: +
+
{venue.account_type}
+
+ +
+ {" "} + +
+
+ {" "} + {/* handleDelete(venue.booking_id)} + size={22} + className="me-3" + /> + */} +
+
+
+
+ ))} +
+
+ {/* Pagination */} +
+ +
); diff --git a/client/keystone/src/Components/ArchivedVenues.jsx b/client/keystone/src/Components/ArchivedVenues.jsx index e7bfb96..ad7bef8 100644 --- a/client/keystone/src/Components/ArchivedVenues.jsx +++ b/client/keystone/src/Components/ArchivedVenues.jsx @@ -1,6 +1,6 @@ import { useEffect, useState } from "react"; import axios from "axios"; - +import { UserLink } from "../App"; function ArchivedVenues() { const [archivedVenue, setArchivedVenue] = useState([]); const [currentPage, setCurrentPage] = useState(1); @@ -25,7 +25,7 @@ function ArchivedVenues() { const fetchVenues = () => { // ARCHIVED VENUES axios - .get("http://localhost:5000/booking_archived") + .get(`${UserLink}/booking_archived`) .then((res) => { if (Array.isArray(res.data)) { setArchivedVenue(res.data); @@ -37,7 +37,7 @@ function ArchivedVenues() { }; const handleRestore = (venue_id) => { axios - .post(`http://localhost:5000/restore_venue/${venue_id}`) + .post(`${UserLink}/restore_venue/${venue_id}`) .then((res) => { console.log(res.data); fetchVenues(); // Re-fetch the venues after deleting diff --git a/client/keystone/src/Components/Archives/Admins.jsx b/client/keystone/src/Components/Archives/Admins.jsx index 8b88ea8..6bc6942 100644 --- a/client/keystone/src/Components/Archives/Admins.jsx +++ b/client/keystone/src/Components/Archives/Admins.jsx @@ -1,14 +1,15 @@ import { useEffect, useState } from "react"; // import { Link } from "react-router-dom"; import axios from "axios"; - +import { UserLink } from "../../App"; function Admins() { const [isPending, setIsPending] = useState([]); const [restore, setRestored] = useState(true); const [dropped, setDropped] = useState([]); + useEffect(() => { axios - .get("http://localhost:5000/deleted_admins") + .get(`${UserLink}/deleted_admins`) .then((res) => { if (Array.isArray(res.data)) { setIsPending(res.data); @@ -20,7 +21,7 @@ function Admins() { }, [restore, dropped]); function handleRestore(user_id) { axios - .post(`http://localhost:5000/restore_user/${user_id}`) + .post(`${UserLink}/restore_user/${user_id}`) .then((res) => { console.log(res.data); // Toggle the 'deleted' state to trigger a re-fetch of the data @@ -31,7 +32,7 @@ function Admins() { } function handleDrop(user_id) { axios - .post(`http://localhost:5000/drop_users/${user_id}`) + .post(`${UserLink}/drop_users/${user_id}`) .then((res) => { console.log(res.data); setDropped((prevDropped) => !prevDropped); diff --git a/client/keystone/src/Components/Archives/Bookings.jsx b/client/keystone/src/Components/Archives/Bookings.jsx index bffb434..203667c 100644 --- a/client/keystone/src/Components/Archives/Bookings.jsx +++ b/client/keystone/src/Components/Archives/Bookings.jsx @@ -1,14 +1,14 @@ import { useEffect, useState } from "react"; // import { Link } from "react-router-dom"; import axios from "axios"; - +import { UserLink } from "../../App"; function Bookings() { const [isPending, setIsPending] = useState([]); const [restore, setRestored] = useState([]); useEffect(() => { axios - .get("http://localhost:5000/deleted_bookings") + .get(`${UserLink}/deleted_bookings`) .then((res) => { if (Array.isArray(res.data)) { setIsPending(res.data); @@ -20,7 +20,7 @@ function Bookings() { }, [restore]); function handleRestore(user_id) { axios - .post(`http://localhost:5000/restore_user/${user_id}`) + .post(`${UserLink}/restore_user/${user_id}`) .then((res) => { console.log(res.data); // Toggle the 'deleted' state to trigger a re-fetch of the data diff --git a/client/keystone/src/Components/Archives/Officers.jsx b/client/keystone/src/Components/Archives/Officers.jsx index b96660b..21a034d 100644 --- a/client/keystone/src/Components/Archives/Officers.jsx +++ b/client/keystone/src/Components/Archives/Officers.jsx @@ -1,13 +1,14 @@ import { useEffect, useState } from "react"; // import { Link } from "react-router-dom"; import axios from "axios"; - +import { UserLink } from "../../App"; function Officers() { const [isPending, setIsPending] = useState([]); const [restore, setRestored] = useState(true); + useEffect(() => { axios - .get("http://localhost:5000/deleted_admins") + .get(`${UserLink}/deleted_admins`) .then((res) => { if (Array.isArray(res.data)) { setIsPending(res.data); @@ -19,7 +20,7 @@ function Officers() { }, [restore]); function handleRestore(user_id) { axios - .post(`http://localhost:5000/restore_user/${user_id}`) + .post(`${UserLink}/restore_user/${user_id}`) .then((res) => { console.log(res.data); // Toggle the 'deleted' state to trigger a re-fetch of the data diff --git a/client/keystone/src/Components/Archives/Venues.jsx b/client/keystone/src/Components/Archives/Venues.jsx index 63b547a..a092788 100644 --- a/client/keystone/src/Components/Archives/Venues.jsx +++ b/client/keystone/src/Components/Archives/Venues.jsx @@ -1,14 +1,14 @@ import { useEffect, useState } from "react"; // import { Link } from "react-router-dom"; import axios from "axios"; - +import { UserLink } from "../../App"; function Venues() { const [isPending, setIsPending] = useState([]); const [restore, setRestored] = useState(true); const [dropped, setDropped] = useState([]); useEffect(() => { axios - .get("http://localhost:5000/deleted_venues") + .get(`${UserLink}/deleted_venues`) .then((res) => { if (Array.isArray(res.data)) { setIsPending(res.data); @@ -20,7 +20,7 @@ function Venues() { }, [restore, dropped]); function handleRestore(venue_id) { axios - .post(`http://localhost:5000/restore_venues/${venue_id}`) + .post(`${UserLink}/restore_venues/${venue_id}`) .then((res) => { console.log(res.data); // Toggle the 'deleted' state to trigger a re-fetch of the data @@ -31,7 +31,7 @@ function Venues() { } function handleDrop(venue_id) { axios - .post(`http://localhost:5000/drop_venues/${venue_id}`) + .post(`${UserLink}/drop_venues/${venue_id}`) .then((res) => { console.log(res.data); setDropped((prevDropped) => !prevDropped); diff --git a/client/keystone/src/Components/BookingsAll.jsx b/client/keystone/src/Components/BookingsAll.jsx index 350844b..61c527e 100644 --- a/client/keystone/src/Components/BookingsAll.jsx +++ b/client/keystone/src/Components/BookingsAll.jsx @@ -4,6 +4,7 @@ import { Avatar } from "@mantine/core"; import { useEffect } from "react"; import axios from "axios"; import "../../src/Transition.css"; +import { UserLink } from "../App"; // export function BookingsAll() { const [data, setData] = useState([]); @@ -15,7 +16,7 @@ export function BookingsAll() { useEffect(() => { axios - .get("http://localhost:5000/venue_bookings") + .get(`${UserLink}/venue_bookings`) .then((res) => { if (Array.isArray(res.data)) { setData(res.data); @@ -58,12 +59,12 @@ export function BookingsAll() { function handleDelete(booking_id) { axios - .post(`http://localhost:5000/delete_booking/${booking_id}`) + .post(`${UserLink}delete_booking/${booking_id}`) .then((res) => { console.log(res.data); // Refresh the data by fetching it again axios - .get("http://localhost:5000/venue_bookings") + .get(`${UserLink}/venue_bookings`) .then((res) => { if (Array.isArray(res.data)) { setData(res.data); @@ -105,7 +106,6 @@ export function BookingsAll() { className="bg-dark-subtle rounded p-3 d-flex flex-column" style={{ height: "85vh" }} > - gg {/*

Bookings All Component

*/}
{ axios - .get("http://localhost:5000/booking_approved") + .get(`${UserLink}/booking_approved`) .then((res) => { if (Array.isArray(res.data)) { setIsPending(res.data); @@ -56,7 +57,7 @@ function BookingsApproved() { }; function handleDelete(booking_id) { axios - .post(`http://localhost:5000/delete_booking/${booking_id}`) + .post(`${UserLink}/delete_booking/${booking_id}`) .then((res) => { console.log(res.data); // Toggle the 'deleted' state to trigger a re-fetch of the data @@ -67,7 +68,7 @@ function BookingsApproved() { } function handlePending(booking_id) { axios - .post(`http://localhost:5000/pending_booking/${booking_id}`) + .post(`${UserLink}/pending_booking/${booking_id}`) .then((res) => { console.log(res.data); fetchApproved(); @@ -76,7 +77,7 @@ function BookingsApproved() { } function handleDeny(booking_id) { axios - .post(`http://localhost:5000/booking_denied/${booking_id}`) + .post(`${UserLink}/booking_denied/${booking_id}`) .then((res) => { console.log(res.data); fetchApproved(); diff --git a/client/keystone/src/Components/BookingsDenied.jsx b/client/keystone/src/Components/BookingsDenied.jsx index e2d7b87..f4bec19 100644 --- a/client/keystone/src/Components/BookingsDenied.jsx +++ b/client/keystone/src/Components/BookingsDenied.jsx @@ -2,6 +2,7 @@ import { useEffect, useState } from "react"; import axios from "axios"; import { IconTrash, IconEdit } from "@tabler/icons-react"; import "../../src/Transition.css"; +import { UserLink } from "../App"; function BookingsPending() { const [isPending, setIsPending] = useState([]); const [currentPage, setCurrentPage] = useState(1); @@ -46,7 +47,7 @@ function BookingsPending() { }, []); const fetchDenied = () => { axios - .get("http://localhost:5000/booking_denied") + .get(`${UserLink}/booking_denied`) .then((res) => { if (Array.isArray(res.data)) { setIsPending(res.data); @@ -58,7 +59,7 @@ function BookingsPending() { }; function handleDelete(booking_id) { axios - .post(`http://localhost:5000/delete_booking/${booking_id}`) + .post(`${UserLink}/delete_booking/${booking_id}`) .then((res) => { console.log(res.data); fetchDenied(); @@ -70,16 +71,17 @@ function BookingsPending() { } function handleApprove(booking_id) { axios - .post(`http://localhost:5000/approve_booking/${booking_id}`) + .post(`${UserLink}/approve_booking/${booking_id}`) .then((res) => { console.log(res.data); fetchDenied(); }) .catch((err) => console.log(err)); } + function handlePending(booking_id) { axios - .post(`http://localhost:5000/pending_booking/${booking_id}`) + .post(`${UserLink}/pending_booking/${booking_id}`) .then((res) => { console.log(res.data); fetchDenied(); diff --git a/client/keystone/src/Components/BookingsPending.jsx b/client/keystone/src/Components/BookingsPending.jsx index b485f60..adeff27 100644 --- a/client/keystone/src/Components/BookingsPending.jsx +++ b/client/keystone/src/Components/BookingsPending.jsx @@ -2,6 +2,7 @@ import { useEffect, useState } from "react"; import axios from "axios"; import { IconTrash, IconEdit } from "@tabler/icons-react"; import "../../src/Transition.css"; +import { UserLink } from "../App"; function BookingsPending() { const [isPending, setIsPending] = useState([]); const [currentPage, setCurrentPage] = useState(1); @@ -46,7 +47,7 @@ function BookingsPending() { }, []); const fetchPending = () => { axios - .get("http://localhost:5000/booking_pending") + .get(`${UserLink}/booking_pending`) .then((res) => { if (Array.isArray(res.data)) { setIsPending(res.data); @@ -59,7 +60,7 @@ function BookingsPending() { function handleDelete(booking_id) { axios - .post(`http://localhost:5000/delete_booking/${booking_id}`) + .post(`${UserLink}/delete_booking/${booking_id}`) .then((res) => { console.log(res.data); fetchPending(); @@ -69,7 +70,7 @@ function BookingsPending() { function handleDeny(booking_id) { axios - .post(`http://localhost:5000/booking_denied/${booking_id}`) + .post(`${UserLink}/booking_denied/${booking_id}`) .then((res) => { console.log(res.data); fetchPending(); @@ -78,7 +79,7 @@ function BookingsPending() { } function handleApprove(booking_id) { axios - .post(`http://localhost:5000/approve_booking/${booking_id}`) + .post(`${UserLink}/approve_booking/${booking_id}`) .then((res) => { console.log(res.data); fetchPending(); diff --git a/client/keystone/src/Components/CreateBookings.jsx b/client/keystone/src/Components/CreateBookings.jsx index 455fbc1..c0eae0a 100644 --- a/client/keystone/src/Components/CreateBookings.jsx +++ b/client/keystone/src/Components/CreateBookings.jsx @@ -1,7 +1,7 @@ import { useState, useEffect } from "react"; import axios from "axios"; import { Avatar } from "@mantine/core"; - +import { UserLink } from "../App"; function CreateBookings() { const [venueData, setVenueData] = useState([]); const [isApproved, setIsApproved] = useState([]); @@ -12,7 +12,7 @@ function CreateBookings() { useEffect(() => { axios - .get("http://localhost:5000/admin_users") + .get(`${UserLink}/admin_users`) .then((res) => { if (Array.isArray(res.data)) { setIsApproved(res.data); @@ -22,7 +22,7 @@ function CreateBookings() { }) .catch((err) => console.log(err)); axios - .get("http://localhost:5000/registered_user") + .get(`${UserLink}/registered_user`) .then((res) => { if (Array.isArray(res.data)) { setisOfficer(res.data); @@ -37,9 +37,9 @@ function CreateBookings() { booker_id: "", eventname: "", event_purpose: "", - event_date: "", - starting_time: "", - ending_time: "", + event_date: "--:--:----", + starting_time: "-----", + ending_time: "-----", event_facility: "", username: "", email: "", @@ -54,7 +54,7 @@ function CreateBookings() { e.preventDefault(); axios - .post("http://localhost:5000/create_booking", values) + .post(`${UserLink}/create_booking`, values) .then((res) => { console.log(res); if ( @@ -75,7 +75,7 @@ function CreateBookings() { useEffect(() => { // ACTIVE VENUES axios - .get("http://localhost:5000/venues") + .get(`${UserLink}/venues`) .then((res) => { if (Array.isArray(res.data)) { setVenueData(res.data); @@ -93,11 +93,35 @@ function CreateBookings() { const hour12 = hourInt % 12 || 12; // Convert to 12-hour format and handle midnight (0) case return `${hour12}:${minute} ${period}`; } - - function formatTimeRange(startTime, endTime) { + function formatDate(dateString) { + const date = new Date(dateString); + if (dateString === "--:--:----") { + return dateString; + } + return date.toLocaleDateString("en-US", { + year: "numeric", + month: "long", + day: "numeric", + }); + } + // function formatTimeRange(startTime, endTime) { + // const start = convertTime24to12(startTime); + // const end = convertTime24to12(endTime); + // return `${start} - ${end}`; + // } CONCATENATED + function formatStartingTime(startTime) { + if (startTime === "-----" || startTime === "--:--") { + return startTime; // Return the default value as is + } const start = convertTime24to12(startTime); + return `${start}`; + } + function formatEndingTime(endTime) { + if (endTime === "-----" || endTime === "--:--") { + return endTime; // Return the default value as is + } const end = convertTime24to12(endTime); - return `${start} - ${end}`; + return `${end}`; } return ( @@ -105,7 +129,8 @@ function CreateBookings() { // const date = new Date(dateString); // return date.toLocaleDateString("en-US", { // year: "numeric", - // month: "long", + // month: "long" + // day: "numeric", // }); // } @@ -344,8 +369,8 @@ function CreateBookings() {
{values.username}
@@ -370,6 +395,10 @@ function CreateBookings() {
{values.eventname}
{/* END EVENT NAME AREA */} +
+
Date of Event:
+
{formatDate(values.event_date)}
+
{/* START OF EVENT PURPOSE */}
Event Description:
@@ -380,39 +409,31 @@ function CreateBookings() {
Starting Time:
-
+
{" "} - {formatTimeRange( - values.ending_time, - values.starting_time - )} + {formatStartingTime(values.starting_time)}
Ending Time:
-
- {formatTimeRange( - values.ending_time, - values.starting_time - )} -
+
{formatEndingTime(values.ending_time)}
{/* END OF TIME AREA */} {/* START OF VENUE */} -
+
Event Venue:
{values.event_facility}
{/* END OF VENUE */} +
{/* GROW GREEN WHEN ITS NOT EMPTY OR DEFAULT */} {/*
{values.event_facility}
*/} {/*
{values.username}
*/} -
diff --git a/client/keystone/src/Components/ReactBigCalendar.jsx b/client/keystone/src/Components/ReactBigCalendar.jsx index ee8338f..a984acd 100644 --- a/client/keystone/src/Components/ReactBigCalendar.jsx +++ b/client/keystone/src/Components/ReactBigCalendar.jsx @@ -3,7 +3,7 @@ import { Calendar, momentLocalizer } from "react-big-calendar"; import moment from "moment"; import { useEffect, useState } from "react"; import axios from "axios"; - +import { UserLink } from "../App"; function ReactBigCalendar() { const localizer = momentLocalizer(moment); const [events, setEvents] = useState([]); @@ -18,7 +18,7 @@ function ReactBigCalendar() { useEffect(() => { axios - .get("http://localhost:5000/venues") + .get(`${UserLink}/venues`) .then((res) => { if (Array.isArray(res.data)) { setVenueData(res.data); @@ -32,7 +32,7 @@ function ReactBigCalendar() { useEffect(() => { if (selectedVenue) { axios - .get(`http://localhost:5000/event_venues_booked?venue=${selectedVenue}`) + .get(`${UserLink}/event_venues_booked?venue=${selectedVenue}`) .then((res) => { if (Array.isArray(res.data)) { const mappedEvents = res.data.map((venue) => ({ diff --git a/client/keystone/src/Components/RegisteredClubs.jsx b/client/keystone/src/Components/RegisteredClubs.jsx index 3ae0189..41e5af5 100644 --- a/client/keystone/src/Components/RegisteredClubs.jsx +++ b/client/keystone/src/Components/RegisteredClubs.jsx @@ -1,11 +1,11 @@ import { useEffect, useState } from "react"; import axios from "axios"; - +import { UserLink } from "../App"; function RegisteredClubs() { const [isApproved, setIsApproved] = useState([]); useEffect(() => { axios - .get("http://localhost:5000/all_clubs") + .get(`${UserLink}/all_clubs`) .then((res) => { if (Array.isArray(res.data)) { setIsApproved(res.data); @@ -16,13 +16,16 @@ function RegisteredClubs() { .catch((err) => console.log(err)); }, []); return ( -
-

Registered Clubs

-
+
+

Registered Clubs

+
{" "} {isApproved.map((club) => (
-
+
{club.club}
diff --git a/client/keystone/src/Components/RegisteredUsers.jsx b/client/keystone/src/Components/RegisteredUsers.jsx index 042ccec..7c59c06 100644 --- a/client/keystone/src/Components/RegisteredUsers.jsx +++ b/client/keystone/src/Components/RegisteredUsers.jsx @@ -1,13 +1,27 @@ import { useEffect, useState } from "react"; -import { Link } from "react-router-dom"; +// import { Link } from "react-router-dom"; import axios from "axios"; -import UserFormController from "../utils/UserFormController"; +// import UserFormController from "../utils/UserFormController"; +import { Avatar } from "@mantine/core"; +import { UserLink } from "../App"; function RegisteredUsers() { const [isApproved, setIsApproved] = useState([]); - const [deleted, setDeleted] = useState(true); + const [currentPage, setCurrentPage] = useState(1); + const itemsPerPage = 5; + + // Logic to slice data based on current page + const indexOfLastItem = currentPage * itemsPerPage; + const indexOfFirstItem = indexOfLastItem - itemsPerPage; + const currentItems = isApproved.slice(indexOfFirstItem, indexOfLastItem); + const user_picture_base_url = + "https://raw.githubusercontent.com/mantinedev/mantine/master/.demo/avatars/"; + // Function to handle page change + const handlePageChange = (pageNumber) => { + setCurrentPage(pageNumber); + }; useEffect(() => { axios - .get("http://localhost:5000/registered_user") + .get(`${UserLink}/registered_user`) .then((res) => { if (Array.isArray(res.data)) { setIsApproved(res.data); @@ -16,59 +30,201 @@ function RegisteredUsers() { } }) .catch((err) => console.log(err)); - }, [deleted]); + }, []); function handleDelete(user_id) { axios - .post(`http://localhost:5000/delete_user/${user_id}`) + .post(`${UserLink}/delete_user/${user_id}`) .then((res) => { console.log(res.data); // Toggle the 'deleted' state to trigger a re-fetch of the data - setDeleted((prevDeleted) => !prevDeleted); - // window.location.reload(); + // setDeleted((prevDeleted) => !prevDeleted); + window.location.reload(); }) .catch((err) => console.log(err)); } return ( -
-
-

Users List

- -
-
- {" "} - {isApproved.map((user) => ( - -
- {user.user_id} -
-
- {user.position} -
-
- {user.club} -
-
- {user.username} -
-
- {user.email} -
-
- Read - Edit - +
+ {" "} +
+
+ {/* MAIN WRAPPER TO DESGIN */} +

+ Officer Users +

+
+
+ {/*
Headers
*/} +
+
+
+ UserID +
+
+ Profile +
+
+ UserName +
+
+ Email +
+
+ College +
+
+ Club +
+
+
+
+ {/* + */} +
+
- - ))} - {/* - position - club - username - email */} + {/*
+
User
+
wew
+
wew
+
wew
+
wew
+
wew
+
*/} + {currentItems.map((venue, index) => ( +
+

+ +

+
+
+
+
+ Password: +
+
{venue.password}
+
+
+
+ Position: +
+
{venue.position}
+
+
+
+ Account Type: +
+
{venue.account_type}
+
+ +
+ {" "} + +
+
+ {" "} + {/* handleDelete(venue.booking_id)} + size={22} + className="me-3" + /> + */} +
+
+
+
+ ))} +
+
+ {/* Pagination */} +
+ +
); diff --git a/client/keystone/src/Components/UserAnalytics.jsx b/client/keystone/src/Components/UserAnalytics.jsx index c1a0f2c..fdf0773 100644 --- a/client/keystone/src/Components/UserAnalytics.jsx +++ b/client/keystone/src/Components/UserAnalytics.jsx @@ -18,19 +18,37 @@ function UserAnalytics() { return (
-

User Analytics

+ {/*

User Analytics

*/}
-
registered admins
-
{adminCount}
-
-
registered users
-
-
registered clubs
-
-
total users
+
+
+ {" "} +
Registered Admin
+
{adminCount}
+
+
Registered Officers
+
+
Registered Clubs
+
+
Total Users
+
+
+
6
+
{adminCount}
+
+
12
+
+
18
+
+
36
+
+
); diff --git a/client/keystone/src/Components/UserPageComponents/UserDetails.jsx b/client/keystone/src/Components/UserPageComponents/UserDetails.jsx index 4958f38..2aba75b 100644 --- a/client/keystone/src/Components/UserPageComponents/UserDetails.jsx +++ b/client/keystone/src/Components/UserPageComponents/UserDetails.jsx @@ -1,51 +1,51 @@ -import { useEffect, useState } from "react"; -import axios from "axios"; +// import { useEffect, useState } from "react"; +// import axios from "axios"; function UserDetails() { - const [userDetails, setUserDetails] = useState([]); - const userEmail = localStorage.getItem("userEmail"); + // const [userDetails, setUserDetails] = useState([]); + // const userEmail = localStorage.getItem("userEmail"); - useEffect(() => { - // Fetch user data based on userEmail - axios - .get(`http://localhost:5000/user_fetchall?email=${userEmail}`) - .then((res) => { - if (Array.isArray(res.data)) { - setUserDetails(res.data); - } else { - console.error("Expected an array but received:", res.data); - } - }) - .catch((err) => console.log(err)); - }, [userEmail]); + // useEffect(() => { + // // Fetch user data based on userEmail + // axios + // .get(`http://localhost:5000/user_fetchallEmail?email=${userEmail}`) + // .then((res) => { + // if (Array.isArray(res.data)) { + // setUserDetails(res.data); + // } else { + // console.error("Expected an array but received:", res.data); + // } + // }) + // .catch((err) => console.log(err)); + // }, [userEmail]); return (
- {userDetails.map((User) => ( -
-
-
-
- {" "} -
Email
-
-
{User.email}
-
-
-
-
User ID
-
{User.user_id}
-
-
-
- Password -
-
{User.password}
-
-
-
+ {/* {userDetails.map((User) => ( */} + {/*
*/} +
+
+
+ {" "} +
Email
+ {/*
{User.email}
*/}
- ))} +
+
+
User ID
+ {/*
{User.user_id}
*/} +
+
+
+ Password +
+ {/*
{User.password}
*/} +
+
+
+
+ {/*
*/} + {/* ))} */}
); } diff --git a/client/keystone/src/Components/UserPageComponents/UserLog.jsx b/client/keystone/src/Components/UserPageComponents/UserLog.jsx index 984e865..027ef3c 100644 --- a/client/keystone/src/Components/UserPageComponents/UserLog.jsx +++ b/client/keystone/src/Components/UserPageComponents/UserLog.jsx @@ -2,7 +2,7 @@ import { useEffect, useState } from "react"; import axios from "axios"; // import { IconTrash, IconEdit } from "@tabler/icons-react"; import "../../Transition.css"; - +import { UserLink } from "../../App"; function UserLog() { const [isPending, setIsPending] = useState([]); const [currentPage, setCurrentPage] = useState(1); @@ -42,7 +42,7 @@ function UserLog() { useEffect(() => { // Fetch user data based on userEmail axios - .get(`http://localhost:5000/user_bookingsall?email=${userEmail}`) + .get(`${UserLink}/user_bookingsall?email=${userEmail}`) .then((res) => { if (Array.isArray(res.data)) { setIsPending(res.data); diff --git a/client/keystone/src/Components/UserPageComponents/UserPendingBookings.jsx b/client/keystone/src/Components/UserPageComponents/UserPendingBookings.jsx index a5f39d6..29f18dd 100644 --- a/client/keystone/src/Components/UserPageComponents/UserPendingBookings.jsx +++ b/client/keystone/src/Components/UserPageComponents/UserPendingBookings.jsx @@ -2,6 +2,7 @@ import { useEffect, useState } from "react"; import axios from "axios"; // import { IconTrash, IconEdit } from "@tabler/icons-react"; import "../../Transition.css"; +import { UserLink } from "../../App"; function UserPendingBookings() { const [isPending, setIsPending] = useState([]); const [currentPage, setCurrentPage] = useState(1); @@ -43,7 +44,7 @@ function UserPendingBookings() { useEffect(() => { // Fetch user data based on userEmail axios - .get(`http://localhost:5000/user_bookingsall?email=${userEmail}`) + .get(`${UserLink}/user_bookingsall?email=${userEmail}`) .then((res) => { if (Array.isArray(res.data)) { setIsPending(res.data); diff --git a/client/keystone/src/Components/UserPageComponents/UserProfile.jsx b/client/keystone/src/Components/UserPageComponents/UserProfile.jsx index 17b4eea..03cd8d5 100644 --- a/client/keystone/src/Components/UserPageComponents/UserProfile.jsx +++ b/client/keystone/src/Components/UserPageComponents/UserProfile.jsx @@ -3,6 +3,7 @@ import { useEffect, useState } from "react"; import axios from "axios"; import { Avatar } from "@mantine/core"; import "../../Transition.css"; +import { UserLink } from "../../App"; function UserProfile() { const [userDetails, setUserDetails] = useState([]); const userEmail = localStorage.getItem("userEmail"); @@ -12,7 +13,7 @@ function UserProfile() { useEffect(() => { // Fetch user data based on userEmail axios - .get(`http://localhost:5000/user_fetchall?email=${userEmail}`) + .get(`${UserLink}/user_fetchall?email=${userEmail}`) .then((res) => { if (Array.isArray(res.data)) { setUserDetails(res.data); diff --git a/client/keystone/src/Pages/LoginPage/Login.jsx b/client/keystone/src/Pages/LoginPage/Login.jsx index f35413c..dcc4ac9 100644 --- a/client/keystone/src/Pages/LoginPage/Login.jsx +++ b/client/keystone/src/Pages/LoginPage/Login.jsx @@ -1,12 +1,11 @@ -// import loginpic from "/loginpic.svg"; import "../../../node_modules/bootstrap/dist/css/bootstrap.min.css"; -// import loginpic from "../../assets/loginpic.svg"; import "./login.css"; import { useState } from "react"; import axios from "axios"; import { useNavigate } from "react-router-dom"; -import { Box, Title, Text, Button } from "@mantine/core"; - +import Background from "../../assets/Encode _Officers/login_bg.svg"; // Make sure the path is correct +import Logo from "../../assets/dark-logo.png"; +import { UserLink } from "../../App"; function LoginPage() { const [email, setEmail] = useState(""); const [password, setPassword] = useState(""); @@ -16,7 +15,7 @@ function LoginPage() { const handleSubmit = async (e) => { e.preventDefault(); try { - const response = await axios.post("http://localhost:5000/check_user", { + const response = await axios.post(`${UserLink}/check_user`, { email, password, }); @@ -34,106 +33,76 @@ function LoginPage() { setErrorMessage("An error occurred. Please try again."); } }; + return ( - <> -
-
-
- {/* */} - - Nice Title - Hellow world - - +
+
+
+
+
-
-
-
- wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww +
+ {/* Email input */} +
+ setEmail(e.target.value)} + /> +
+ {/* Password input */} +
+ setPassword(e.target.value)} + /> +
+
+ {/* Checkbox */} +
+ +
- - {/* */} - CONVERT TO CENTER UI WITH LOGO BLACK BG -
- setEmail(e.target.value)} - /> -
- {/* */} -
- setPassword(e.target.value)} - /> -
-
- {/* */} - {/* TO BE CONFIGURED */} -
- - -
- Forgot password? -
- {/* */} - - {errorMessage &&

{errorMessage}

} - {/* Boundary */} -
-

OR

-
- - + Forgot password?
-
+ {/* Submit button */} + + {errorMessage &&

{errorMessage}

} +
- +
); } diff --git a/client/keystone/src/Pages/Sidebar/Sidebar.jsx b/client/keystone/src/Pages/Sidebar/Sidebar.jsx index 56a32c0..df4ce52 100644 --- a/client/keystone/src/Pages/Sidebar/Sidebar.jsx +++ b/client/keystone/src/Pages/Sidebar/Sidebar.jsx @@ -19,6 +19,7 @@ import AllBookings from "../SidebarPages/AllBookings"; import Calendar from "../SidebarPages/Calendar"; import Archive from "../SidebarPages/Archive"; import BigCalendar from "../SidebarPages/BigCalendar"; +import UserSelect from "../SidebarPages/UserSelect"; import "./customschollbar.css"; const Sidebar = () => { const [activePage, setActivePage] = useToggle("usermanagement"); @@ -91,6 +92,14 @@ const Sidebar = () => { User Profile + {/* setActivePage("userselect")} + > + + User Select + + */} { Manage Venues - setActivePage("archive")} > Archive - + */} {/* setActivePage("")} @@ -182,6 +191,7 @@ const Sidebar = () => { {activePage === "calendar" && } {activePage === "archive" && } {activePage === "calendar2" && } + {activePage === "userselect" && }
{/* Content End */}
diff --git a/client/keystone/src/Pages/SidebarPages/UserProfiles.jsx b/client/keystone/src/Pages/SidebarPages/UserProfiles.jsx index 8d5bea5..92e225c 100644 --- a/client/keystone/src/Pages/SidebarPages/UserProfiles.jsx +++ b/client/keystone/src/Pages/SidebarPages/UserProfiles.jsx @@ -1,16 +1,55 @@ -/*{ LEFT SIDE }*/ +import { useEffect, useState } from "react"; +import axios from "axios"; +/* LEFT SIDE COMPONENTS */ import UserProfile from "../../Components/UserPageComponents/UserProfile"; import UserDetails from "../../Components/UserPageComponents/UserDetails"; import UserNotes from "../../Components/UserPageComponents/UserNotes"; -/*{ RIGHT SIDE }*/ +/* RIGHT SIDE COMPONENTS */ import UserLog from "../../Components/UserPageComponents/UserLog"; import UserPendingBookings from "../../Components/UserPageComponents/UserPendingBookings"; +import { UserLink } from "../../App"; function UserProfiles() { + const [data, setData] = useState([]); + const [email, setEmail] = useState(localStorage.getItem("userEmail") || ""); // Initialize with localStorage value + localStorage.setItem("userEmail", email); + + const fetchUser = () => { + axios + .get(`${UserLink}/user_fetchall`) + .then((res) => { + if (Array.isArray(res.data)) { + setData(res.data); + } else { + console.error("Expected an array but received:", res.data); + } + }) + .catch((err) => console.log(err)); + }; + + useEffect(() => { + fetchUser(); + }, []); + return (
-
+
+ {/* LEFT SIDE */}
-
+ +
Email: {email}
+
@@ -20,8 +59,10 @@ function UserProfiles() {
-
-
+ + {/* RIGHT SIDE */} +
+
diff --git a/client/keystone/src/Pages/SidebarPages/UserSelect.jsx b/client/keystone/src/Pages/SidebarPages/UserSelect.jsx new file mode 100644 index 0000000..fac90b6 --- /dev/null +++ b/client/keystone/src/Pages/SidebarPages/UserSelect.jsx @@ -0,0 +1,9 @@ +function UserSelect() { + return ( +
+

User Select Find

+
+ ); +} + +export default UserSelect; diff --git a/client/keystone/src/Pages/SidebarPages/Venues.jsx b/client/keystone/src/Pages/SidebarPages/Venues.jsx index d33a55a..bcfc04d 100644 --- a/client/keystone/src/Pages/SidebarPages/Venues.jsx +++ b/client/keystone/src/Pages/SidebarPages/Venues.jsx @@ -2,6 +2,7 @@ import { useState } from "react"; import axios from "axios"; import ArchivedVenues from "../../Components/ArchivedVenues"; import ActiveVenues from "../../Components/ActiveVenues"; +import { UserLink } from "../../App"; function Venues() { // const [values, setValues] = useState({ @@ -12,7 +13,7 @@ function Venues() { console.log(values); axios - .post("http://localhost:5000/add_venue", values) + .post(`${UserLink}/add_venue`, values) .then((res) => { console.log(res); }) diff --git a/client/keystone/src/Transition.css b/client/keystone/src/Transition.css index 68a4f9d..ccc8986 100644 --- a/client/keystone/src/Transition.css +++ b/client/keystone/src/Transition.css @@ -1,5 +1,5 @@ .accordion-collapse { - transition: height 0.3s ease-in-out; + transition: height 0.2s ease-in-out; } th { padding: auto; diff --git a/client/keystone/src/assets/Encode _Officers/login_bg.svg b/client/keystone/src/assets/Encode _Officers/login_bg.svg new file mode 100644 index 0000000..0c4afc9 --- /dev/null +++ b/client/keystone/src/assets/Encode _Officers/login_bg.svg @@ -0,0 +1,317 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/keystone/src/assets/dark-logo.png b/client/keystone/src/assets/dark-logo.png new file mode 100644 index 0000000..d91db19 Binary files /dev/null and b/client/keystone/src/assets/dark-logo.png differ diff --git a/client/keystone/src/reference.txt b/client/keystone/src/reference.txt index 07026b2..aa6b896 100644 --- a/client/keystone/src/reference.txt +++ b/client/keystone/src/reference.txt @@ -35,12 +35,14 @@ ADD TOAST FOR IMPORTANT THINGS user_id -email -password -username user_profile_pic -college_affiliation +username +email club +college_affiliation + + +password position account_type deleted @@ -68,12 +70,13 @@ email deleted -Red #FF8F8F +Red #FF8F8F -Green #9ADE7B +Green #9ADE7B Yellow #EEF296 +Blue #31375A SECRET TO CENTER HORIZONTALLY d-flex bg-danger text-center align-items-center justify-content-center @@ -149,5 +152,6 @@ https://raw.githubusercontent.com/mantinedev/mantine/master/.demo/avatars/avatar .text-dark .text-muted .text-white +//hello - +TEST FOR GITHUB \ No newline at end of file diff --git a/server/routes/Archives/deletedAdmins.js b/server/routes/Archives/deletedAdmins.js index dc39f25..14133b0 100644 --- a/server/routes/Archives/deletedAdmins.js +++ b/server/routes/Archives/deletedAdmins.js @@ -1,11 +1,11 @@ const express = require("express"); const router = express.Router(); - +const { BackendUserLink } = require("../../server"); // Import the database connection const db = require("../../db"); // Adjust the path as necessary // Fetch approved bookings -router.get("/deleted_admins", (req, res) => { +router.get(`${BackendUserLink}/deleted_admins`, (req, res) => { const sql = "SELECT * FROM user_login WHERE `deleted`='Deleted' AND `account_type`='Admin'"; db.query(sql, (err, result) => { diff --git a/server/routes/Archives/deletedBookings.js b/server/routes/Archives/deletedBookings.js index 2f70c03..9d5a3ac 100644 --- a/server/routes/Archives/deletedBookings.js +++ b/server/routes/Archives/deletedBookings.js @@ -1,11 +1,11 @@ const express = require("express"); const router = express.Router(); - +const { BackendUserLink } = require("../../server"); // Import the database connection const db = require("../../db"); // Adjust the path as necessary // Fetch approved bookings -router.get("/deleted_bookings", (req, res) => { +router.get(`${BackendUserLink}/deleted_bookings`, (req, res) => { const sql = "SELECT * FROM venue_bookings WHERE `deleted`='Deleted'"; db.query(sql, (err, result) => { if (err) res.json({ message: "Server error" }); diff --git a/server/routes/Archives/deletedOfficers.js b/server/routes/Archives/deletedOfficers.js index fcd0a6f..6b6d43d 100644 --- a/server/routes/Archives/deletedOfficers.js +++ b/server/routes/Archives/deletedOfficers.js @@ -1,11 +1,11 @@ const express = require("express"); const router = express.Router(); - +const { BackendUserLink } = require("../../server"); // Import the database connection const db = require("../../db"); // Adjust the path as necessary // Fetch approved bookings -router.get("/deleted_officers", (req, res) => { +router.get(`${BackendUserLink}/deleted_officers`, (req, res) => { const sql = "SELECT * FROM user_login WHERE `deleted`='Deleted' AND `account_type`='Officer'"; db.query(sql, (err, result) => { diff --git a/server/routes/Archives/deletedVenues.js b/server/routes/Archives/deletedVenues.js index 1723ca7..03c737e 100644 --- a/server/routes/Archives/deletedVenues.js +++ b/server/routes/Archives/deletedVenues.js @@ -1,12 +1,12 @@ const express = require("express"); const router = express.Router(); - +const { BackendUserLink } = require("../../server"); // Import the database connection const db = require("../../db"); //const db = require("../../db"); // Adjust the path as necessary // Fetch approved bookings -router.get("/deleted_venues", (req, res) => { +router.get(`${BackendUserLink}/deleted_venues`, (req, res) => { const sql = "SELECT * FROM event_venues WHERE `deleted`='Deleted'"; db.query(sql, (err, result) => { if (err) res.json({ message: "Server error" }); diff --git a/server/routes/Archives/dropUsers.js b/server/routes/Archives/dropUsers.js index 8107492..ff2cb3c 100644 --- a/server/routes/Archives/dropUsers.js +++ b/server/routes/Archives/dropUsers.js @@ -1,9 +1,9 @@ const express = require("express"); const router = express.Router(); const db = require("../../db"); // Adjust the path as necessary - +const { BackendUserLink } = require("../../server"); // DELETE VENUE -router.post("/drop_users/:user_id", (req, res) => { +router.post(`${BackendUserLink}/drop_users/:user_id`, (req, res) => { const user_id = req.params.user_id; const sql = "DELETE FROM user_login WHERE user_id=?"; db.query(sql, [user_id], (err, result) => { diff --git a/server/routes/Archives/dropVenues.js b/server/routes/Archives/dropVenues.js index 2a10a37..bcdf307 100644 --- a/server/routes/Archives/dropVenues.js +++ b/server/routes/Archives/dropVenues.js @@ -1,9 +1,9 @@ const express = require("express"); const router = express.Router(); const db = require("../../db"); // Adjust the path as necessary - +const { BackendUserLink } = require("../../server"); // DELETE VENUE -router.post("/drop_venues/:venue_id", (req, res) => { +router.post(`${BackendUserLink}/drop_venues/:venue_id`, (req, res) => { const venue_id = req.params.venue_id; const sql = "DELETE FROM event_venues WHERE venue_id=?"; db.query(sql, [venue_id], (err, result) => { diff --git a/server/routes/Archives/restoreBookings.js b/server/routes/Archives/restoreBookings.js index a821265..9b4b8ec 100644 --- a/server/routes/Archives/restoreBookings.js +++ b/server/routes/Archives/restoreBookings.js @@ -1,11 +1,11 @@ const express = require("express"); const router = express.Router(); - +// const { BackendUserLink } = require("../../server"); // Import the database connection const db = require("../../db"); // Adjust the path as necessary // DELETE VENUE -router.post("/restore_booking/:booking_id", (req, res) => { +router.post(`/restore_booking/:booking_id`, (req, res) => { const booking_id = req.params.booking_id; const sql = "UPDATE venue_bookings SET `deleted`='Active' WHERE booking_id=?"; db.query(sql, [booking_id], (err, result) => { diff --git a/server/routes/Archives/restoreUser.js b/server/routes/Archives/restoreUser.js index 154d008..4772545 100644 --- a/server/routes/Archives/restoreUser.js +++ b/server/routes/Archives/restoreUser.js @@ -1,11 +1,11 @@ const express = require("express"); const router = express.Router(); - +// const { BackendUserLink } = require("../../server"); // Import the database connection const db = require("../../db"); // Adjust the path as necessary // DELETE VENUE -router.post("/restore_user/:user_id", (req, res) => { +router.post(`/restore_user/:user_id`, (req, res) => { const user_id = req.params.user_id; const sql = "UPDATE user_login SET `deleted`='Active' WHERE user_id=?"; db.query(sql, [user_id], (err, result) => { diff --git a/server/routes/Archives/restoreVenues.js b/server/routes/Archives/restoreVenues.js index a67de4b..a344ef6 100644 --- a/server/routes/Archives/restoreVenues.js +++ b/server/routes/Archives/restoreVenues.js @@ -1,11 +1,10 @@ const express = require("express"); const router = express.Router(); - -// Import the database connection +// const { BackendUserLink } = require("../../server"); const db = require("../../db"); // Adjust the path as necessary // DELETE VENUE -router.post("/restore_venues/:venue_id", (req, res) => { +router.post(`/restore_venues/:venue_id`, (req, res) => { const venue_id = req.params.venue_id; const sql = "UPDATE event_venues SET `deleted`='Active' WHERE venue_id=?"; db.query(sql, [venue_id], (err, result) => { diff --git a/server/routes/UserProfiles/userBookingsAll.js b/server/routes/UserProfiles/userBookingsAll.js index 38f63ad..f3d9c13 100644 --- a/server/routes/UserProfiles/userBookingsAll.js +++ b/server/routes/UserProfiles/userBookingsAll.js @@ -2,7 +2,7 @@ const express = require("express"); const router = express.Router(); const db = require("../../db"); -router.get("/user_bookingsall", (req, res) => { +router.get(`/user_bookingsall`, (req, res) => { const userEmail = req.query.email; // Get userEmail from query parameters const sql = "SELECT * FROM venue_bookings WHERE email = ? AND deleted = 'Active'"; diff --git a/server/routes/UserProfiles/userFetchAll.js b/server/routes/UserProfiles/userFetchAll.js index 731b80d..43aabbf 100644 --- a/server/routes/UserProfiles/userFetchAll.js +++ b/server/routes/UserProfiles/userFetchAll.js @@ -1,12 +1,13 @@ const express = require("express"); const router = express.Router(); const db = require("../../db"); +// const { BackendUserLink } = require("../../server"); +router.get(`/user_fetchall`, (req, res) => { + // const userEmail = req.query.email; // Get userEmail from query parameters + const sql = + "SELECT * FROM user_login WHERE deleted = 'Active' AND `account_type` = 'Admin'"; -router.get("/user_fetchall", (req, res) => { - const userEmail = req.query.email; // Get userEmail from query parameters - const sql = "SELECT * FROM user_login WHERE email = ? AND deleted = 'Active'"; - - db.query(sql, [userEmail], (err, result) => { + db.query(sql, (err, result) => { if (err) { console.error("Error fetching user data:", err); return res.status(500).json({ message: "Server error" }); diff --git a/server/routes/UserProfiles/userFetchAllEmail.js b/server/routes/UserProfiles/userFetchAllEmail.js new file mode 100644 index 0000000..c01cb2b --- /dev/null +++ b/server/routes/UserProfiles/userFetchAllEmail.js @@ -0,0 +1,18 @@ +const express = require("express"); +const router = express.Router(); +const db = require("../../db"); +// const { BackendUserLink } = require("../../server"); +router.get(`/user_fetchallEmail`, (req, res) => { + const userEmail = req.query.email; // Get userEmail from query parameters + const sql = "SELECT * FROM user_login WHERE email = ? AND deleted = 'Active'"; + + db.query(sql, [userEmail], (err, result) => { + if (err) { + console.error("Error fetching user data:", err); + return res.status(500).json({ message: "Server error" }); + } + return res.json(result); + }); +}); + +module.exports = router; diff --git a/server/routes/activeVenues.js b/server/routes/activeVenues.js index df84c06..b5d8c81 100644 --- a/server/routes/activeVenues.js +++ b/server/routes/activeVenues.js @@ -1,11 +1,11 @@ const express = require("express"); const router = express.Router(); - +// const { BackendUserLink } = require("../server"); // Import the database connection const db = require("../db"); // Adjust the path as necessary // Fetch active venues -router.get("/venues", (req, res) => { +router.get(`/venues`, (req, res) => { const sql = "SELECT * FROM event_venues WHERE `deleted`='Active'"; db.query(sql, (err, result) => { if (err) { diff --git a/server/routes/addVenue.js b/server/routes/addVenue.js index 3273a51..ea46eee 100644 --- a/server/routes/addVenue.js +++ b/server/routes/addVenue.js @@ -1,11 +1,11 @@ const express = require("express"); const router = express.Router(); - +// const { BackendUserLink } = require("../server"); // Import the database connection const db = require("../db"); // ADD EVENT VENUES -router.post("/add_venue", (req, res) => { +router.post(`/add_venue`, (req, res) => { const sql = "INSERT INTO event_venues (`venue_name`) VALUES (?)"; const values = [req.body.venue_name]; console.log(req.body); diff --git a/server/routes/adminUsers.js b/server/routes/adminUsers.js index 2e2ced0..4b02585 100644 --- a/server/routes/adminUsers.js +++ b/server/routes/adminUsers.js @@ -1,11 +1,11 @@ const express = require("express"); const router = express.Router(); - +// const { BackendUserLink } = require("../server"); // Import the database connection const db = require("../db"); // Adjust the path as necessary // ADMIN USERS -router.get("/admin_users", (req, res) => { +router.get(`/admin_users`, (req, res) => { const sql = "SELECT * FROM user_login WHERE `account_type`='Admin' AND `deleted`='Active'"; diff --git a/server/routes/allUsers.js b/server/routes/allUsers.js new file mode 100644 index 0000000..eb82073 --- /dev/null +++ b/server/routes/allUsers.js @@ -0,0 +1,20 @@ +const express = require("express"); +const router = express.Router(); +// const { BackendUserLink } = require("../server"); +// Import the database connection +const db = require("../db"); // Adjust the path as necessary + +// ADMIN USERS +router.get(`/all_users`, (req, res) => { + const sql = "SELECT * FROM user_login WHERE `deleted`='Active'"; + + db.query(sql, (err, result) => { + if (err) { + console.error("Error fetching venue data:", err); + return res.status(500).json({ message: "Server error" }); // Sending 500 status for internal server errors + } + return res.json(result); + }); +}); + +module.exports = router; diff --git a/server/routes/allclubs.js b/server/routes/allclubs.js index 70d84e5..23b9252 100644 --- a/server/routes/allclubs.js +++ b/server/routes/allclubs.js @@ -1,11 +1,11 @@ const express = require("express"); const router = express.Router(); - +// const { BackendUserLink } = require("../server"); // Import the database connection const db = require("../db"); // Adjust the path as necessary // Fetch active venues -router.get("/all_clubs", (req, res) => { +router.get(`/all_clubs`, (req, res) => { const sql = "SELECT DISTINCT `club` FROM user_login "; db.query(sql, (err, result) => { if (err) { diff --git a/server/routes/archivedVenues.js b/server/routes/archivedVenues.js index 3bd1de7..66e9177 100644 --- a/server/routes/archivedVenues.js +++ b/server/routes/archivedVenues.js @@ -1,11 +1,11 @@ const express = require("express"); const router = express.Router(); - +// const { BackendUserLink } = require("../server"); // Import the database connection const db = require("../db"); // Adjust the path as necessary // Fetch active venues -router.get("/booking_archived", (req, res) => { +router.get(`/booking_archived`, (req, res) => { const sql = "SELECT * FROM event_venues WHERE `deleted`='Deleted'"; db.query(sql, (err, result) => { if (err) { diff --git a/server/routes/bookingAll.js b/server/routes/bookingAll.js index dca6380..e23b29a 100644 --- a/server/routes/bookingAll.js +++ b/server/routes/bookingAll.js @@ -1,10 +1,10 @@ const express = require("express"); const router = express.Router(); - +// const { BackendUserLink } = require("../server"); // Import the database connection const db = require("../db"); // Adjust the path as necessary -router.get("/venue_bookings", (req, res) => { +router.get(`/venue_bookings`, (req, res) => { const sql = "SELECT * FROM venue_bookings WHERE `deleted`='Active'"; db.query(sql, (err, result) => { if (err) res.json({ message: "Server error" }); diff --git a/server/routes/bookingAllCalendar.js b/server/routes/bookingAllCalendar.js index 682b335..531240c 100644 --- a/server/routes/bookingAllCalendar.js +++ b/server/routes/bookingAllCalendar.js @@ -2,12 +2,12 @@ const express = require("express"); const bodyParser = require("body-parser"); // Required for parsing JSON bodies const router = express.Router(); const db = require("../db"); // Adjust the path as necessary - +// const { BackendUserLink } = require("../server"); // Middleware to parse JSON bodies router.use(bodyParser.json()); // Route to fetch venue bookings -router.get("/api/venue_bookings_calendar/:event_facility", (req, res) => { +router.get(`/api/venue_bookings_calendar/:event_facility`, (req, res) => { const eventFacility = req.params.event_facility; const sql = "SELECT * FROM venue_bookings WHERE deleted='Active' AND event_facility=?"; diff --git a/server/routes/bookingApproved.js b/server/routes/bookingApproved.js index 6ba6110..0d82201 100644 --- a/server/routes/bookingApproved.js +++ b/server/routes/bookingApproved.js @@ -1,11 +1,11 @@ const express = require("express"); const router = express.Router(); - +// const { BackendUserLink } = require("../server"); // Import the database connection const db = require("../db"); // Adjust the path as necessary // Fetch approved bookings -router.get("/booking_approved", (req, res) => { +router.get(`/booking_approved`, (req, res) => { const sql = "SELECT * FROM venue_bookings WHERE `deleted`='Active' AND `status`='Approved'"; db.query(sql, (err, result) => { diff --git a/server/routes/bookingDelete.js b/server/routes/bookingDelete.js index b12fa23..b403621 100644 --- a/server/routes/bookingDelete.js +++ b/server/routes/bookingDelete.js @@ -1,11 +1,11 @@ const express = require("express"); const router = express.Router(); - +// const { BackendUserLink } = require("../server"); // Import the database connection const db = require("../db"); // Adjust the path as necessary // DELETE VENUE -router.post("/delete_booking/:booking_id", (req, res) => { +router.post(`/delete_booking/:booking_id`, (req, res) => { const booking_id = req.params.booking_id; const sql = "UPDATE venue_bookings SET `deleted`='Deleted' WHERE booking_id=?"; diff --git a/server/routes/bookingPending.js b/server/routes/bookingPending.js index 9b29fb9..a8701ab 100644 --- a/server/routes/bookingPending.js +++ b/server/routes/bookingPending.js @@ -1,11 +1,11 @@ const express = require("express"); const router = express.Router(); - +// const { BackendUserLink } = require("../server"); // Import the database connection const db = require("../db"); // Adjust the path as necessary // Fetch approved bookings -router.get("/booking_pending", (req, res) => { +router.get(`/booking_pending`, (req, res) => { const sql = "SELECT * FROM venue_bookings WHERE `deleted`='Active' AND `status`='Pending'"; db.query(sql, (err, result) => { diff --git a/server/routes/booking_status/approveBooking.js b/server/routes/booking_status/approveBooking.js index 0e3151a..844ba65 100644 --- a/server/routes/booking_status/approveBooking.js +++ b/server/routes/booking_status/approveBooking.js @@ -1,11 +1,11 @@ const express = require("express"); const router = express.Router(); - +// const { BackendUserLink } = require("../../server"); // Import the database connection const db = require("../../db"); // Adjust the path as necessary // DELETE VENUE -router.post("/approve_booking/:booking_id", (req, res) => { +router.post(`/approve_booking/:booking_id`, (req, res) => { const booking_id = req.params.booking_id; const sql = "UPDATE venue_bookings SET `status`='Approved' WHERE booking_id=?"; diff --git a/server/routes/booking_status/denyBooking.js b/server/routes/booking_status/denyBooking.js index 2777012..e840eaf 100644 --- a/server/routes/booking_status/denyBooking.js +++ b/server/routes/booking_status/denyBooking.js @@ -1,11 +1,11 @@ const express = require("express"); const router = express.Router(); - +// const { BackendUserLink } = require("../../server"); // Import the database connection const db = require("../../db"); // Adjust the path as necessary // DELETE VENUE -router.post("/booking_denied/:booking_id", (req, res) => { +router.post(`/booking_denied/:booking_id`, (req, res) => { const booking_id = req.params.booking_id; const sql = "UPDATE venue_bookings SET `status`='Denied' WHERE booking_id=?"; db.query(sql, [booking_id], (err, result) => { diff --git a/server/routes/booking_status/pendingBooking.js b/server/routes/booking_status/pendingBooking.js index 6317149..02c1086 100644 --- a/server/routes/booking_status/pendingBooking.js +++ b/server/routes/booking_status/pendingBooking.js @@ -1,11 +1,11 @@ const express = require("express"); const router = express.Router(); - +// const { BackendUserLink } = require("../../server"); // Import the database connection const db = require("../../db"); // Adjust the path as necessary // DELETE VENUE -router.post("/pending_booking/:booking_id", (req, res) => { +router.post(`/pending_booking/:booking_id`, (req, res) => { const booking_id = req.params.booking_id; const sql = "UPDATE venue_bookings SET `status`='Pending' WHERE booking_id=?"; db.query(sql, [booking_id], (err, result) => { diff --git a/server/routes/booklingDenied.js b/server/routes/booklingDenied.js index 5906e97..edb1d42 100644 --- a/server/routes/booklingDenied.js +++ b/server/routes/booklingDenied.js @@ -1,11 +1,11 @@ const express = require("express"); const router = express.Router(); - +// const { BackendUserLink } = require("../server"); // Import the database connection const db = require("../db"); // Adjust the path as necessary // Fetch approved bookings -router.get("/booking_denied", (req, res) => { +router.get(`/booking_denied`, (req, res) => { const sql = "SELECT * FROM venue_bookings WHERE `deleted`='Active' AND `status`='Denied'"; db.query(sql, (err, result) => { diff --git a/server/routes/deleteUser.js b/server/routes/deleteUser.js index 50eb5b9..d6bed5c 100644 --- a/server/routes/deleteUser.js +++ b/server/routes/deleteUser.js @@ -1,11 +1,11 @@ const express = require("express"); const router = express.Router(); - +// const { BackendUserLink } = require("../server"); // Import the database connection const db = require("../db"); // Adjust the path as necessary // DELETE VENUE -router.post("/delete_user/:user_id", (req, res) => { +router.post(`/delete_user/:user_id`, (req, res) => { const user_id = req.params.user_id; const sql = "UPDATE user_login SET `deleted`='Deleted' WHERE user_id=?"; db.query(sql, [user_id], (err, result) => { diff --git a/server/routes/deleteVenues.js b/server/routes/deleteVenues.js index 41d3f91..512e48e 100644 --- a/server/routes/deleteVenues.js +++ b/server/routes/deleteVenues.js @@ -1,11 +1,11 @@ const express = require("express"); const router = express.Router(); - +// const { BackendUserLink } = require("../server"); // Import the database connection const db = require("../db"); // Adjust the path as necessary // DELETE VENUE -router.post("/delete_venu/:venue_id", (req, res) => { +router.post(`/delete_venu/:venue_id`, (req, res) => { const venue_id = req.params.venue_id; const sql = "UPDATE event_venues SET `deleted`='Deleted' WHERE venue_id=?"; db.query(sql, [venue_id], (err, result) => { diff --git a/server/routes/registeredUsers.js b/server/routes/registeredUsers.js index 616de0c..8a83090 100644 --- a/server/routes/registeredUsers.js +++ b/server/routes/registeredUsers.js @@ -1,11 +1,11 @@ const express = require("express"); const router = express.Router(); - +// const { BackendUserLink } = require("../server"); // Import the database connection const db = require("../db"); // Adjust the path as necessary // ADMIN USERS -router.get("/registered_user", (req, res) => { +router.get(`/registered_user`, (req, res) => { const sql = "SELECT * FROM user_login WHERE `account_type`='Officer' AND `deleted`='Active'"; diff --git a/server/routes/restoreVenues.js b/server/routes/restoreVenues.js index 70f5f14..6195070 100644 --- a/server/routes/restoreVenues.js +++ b/server/routes/restoreVenues.js @@ -1,11 +1,11 @@ const express = require("express"); const router = express.Router(); - +// const { BackendUserLink } = require("../server"); // Import the database connection const db = require("../db"); // Adjust the path as necessary // RESTORE VENUE -router.post("/restore_venue/:venue_id", (req, res) => { +router.post(`/restore_venue/:venue_id`, (req, res) => { const venue_id = req.params.venue_id; const sql = "UPDATE event_venues SET `deleted`='Active' WHERE venue_id=?"; db.query(sql, [venue_id], (err, result) => { diff --git a/server/server.js b/server/server.js index d8621fa..9406c2f 100644 --- a/server/server.js +++ b/server/server.js @@ -3,10 +3,11 @@ const cors = require("cors"); const path = require("path"); const app = express(); const jwt = require("jsonwebtoken"); +const BackendUserLink = "http://localhost:5000"; // Note the correction of URL +module.exports = { BackendUserLink }; // database connection const db = require("./db"); - // route handlers /*{ VENUE PAGE}*/ const archiveVenueRoutes = require("./routes/archivedVenues"); @@ -26,31 +27,34 @@ const deleteUsersRoutes = require("./routes/deleteUser"); const adminUserRoutes = require("./routes/adminUsers"); const allClubsRoutes = require("./routes/allclubs"); /*{ ARCHIVE } */ -const deletedAdminsRoutes = require("./routes/Archives/deletedAdmins"); + const deletedBookingRoutes = require("./routes/Archives/deletedBookings"); const deletedOfficerRoutes = require("./routes/Archives/deletedOfficers"); +const restoreBookingRoutes = require("./routes/Archives/restoreBookings"); const deletedVenuesRoutes = require("./routes/Archives/deletedVenues"); -const restoreUserRoutes = require("./routes/Archives/restoreUser"); const restoreVenuesRoutes = require("./routes/Archives/restoreVenues"); -const restoreBookingRoutes = require("./routes/Archives/restoreBookings"); +const deletedAdminsRoutes = require("./routes/Archives/deletedAdmins"); +const restoreUserRoutes = require("./routes/Archives/restoreUser"); const dropVenuesRoutes = require("./routes/Archives/dropVenues"); const dropUserRoutes = require("./routes/Archives/dropUsers"); /*{ PROFILE PAGE }*/ -const userFetchAllRoutes = require("./routes/UserProfiles/userFetchAll"); const userBookingsRoutes = require("./routes/UserProfiles/userBookingsAll"); +const fetchAllUsersRoutes = require("./routes/UserProfiles/userFetchAll"); +const userFetchAllRoutes = require("./routes/UserProfiles/userFetchAll"); +const fetchAllUserEmalRoutes = require("./routes/UserProfiles/userFetchAllEmail"); /*{ CALENDAR PAGE } */ const userBookingsAllFilterRoutes = require("./routes/bookingAllCalendar"); /*{ CHAGNGE BOOKING STATUS } */ +const updatetoApprovedRoutes = require("./routes/booking_status/approveBooking"); const updatetoPendingRoutes = require("./routes/booking_status/pendingBooking"); const updatetoDeniedRoutes = require("./routes/booking_status/denyBooking"); -const updatetoApprovedRoutes = require("./routes/booking_status/approveBooking"); // const { verify } = require("crypto"); // // // handle middleware app.use(express.static(path.join(__dirname, "public"))); -app.use(cors()); +app.use(cors({ origin: "*" })); app.use(express.json()); // Use the route handlers /*{ VENUE PAGE}*/ @@ -86,6 +90,8 @@ app.use("/", dropUserRoutes); /*{ PROFILE PAGE }*/ app.use("/", userFetchAllRoutes); app.use("/", userBookingsRoutes); +app.use("/", fetchAllUsersRoutes); +app.use("/", fetchAllUserEmalRoutes); // /*{ CALENDAR PAGE } */ app.use("/api", userBookingsAllFilterRoutes); @@ -241,9 +247,9 @@ app.post("/add_newuser", (req, res) => { // }); // // // CONNECT TO PORT NUMBER -app.listen(port, () => { - console.log("listening"); -}); +// app.listen(port, "0.0.0.0", () => { +// console.log("listening"); +// }); // // // @@ -417,3 +423,7 @@ app.get("/users", (req, res) => { return res.json(result); }); }); + +app.listen(port, "0.0.0.0", () => { + console.log("listening"); +});