diff --git a/src/routes.js b/src/routes.js index 678ac7d..5e98b9e 100644 --- a/src/routes.js +++ b/src/routes.js @@ -15,6 +15,7 @@ import News from "./views/News/News" import ViewNews from "./views/News/ViewNews" //Events import Event from './views/Events/Event' +import AllRegisterUser from './views/Events/AllRegisterUser' import EditEvent from './views/Events/EditEvent' import AddEvent from './views/Events/AddEvent' import ViewEvent from './views/Events/ViewEvent' @@ -73,6 +74,8 @@ const routes = [ { path: '/news/edit/:id', name: 'EditNews', component: EditNews }, { path: '/news', name: 'news', component: News }, //Events route + + { path: '/event/registerUsers/view/:id', name: 'AllRegisterUser', component: AllRegisterUser }, { path: '/event/view/:id', name: 'ViewEvent', component: ViewEvent }, { path: '/addevent', name: 'AddEvent', component: AddEvent }, { path: '/event/edit/:id', name: 'EditEvent', component: EditEvent }, diff --git a/src/views/Events/AddEvent.js b/src/views/Events/AddEvent.js index eb16d91..e73b0d0 100644 --- a/src/views/Events/AddEvent.js +++ b/src/views/Events/AddEvent.js @@ -22,7 +22,7 @@ import { import CIcon from '@coreui/icons-react' import { cilPencil, cilSettings, cilLockLocked, cilUser, cilBell, cilLocationPin, cilAudioDescription } from '@coreui/icons' const AddEvent = () => { - const { token } = isAutheticated(); + const token = isAutheticated(); let history = useHistory(); const [image, setImage] = useState(""); const [title, setTitle] = useState(""); @@ -98,11 +98,12 @@ const AddEvent = () => { - setTitle(e.target.value)} value={title} - placeholder="Title" /> + placeholder="Title (maximum 50 characters)" /> + @@ -110,10 +111,11 @@ const AddEvent = () => { setDescription(e.target.value)} value={description} - placeholder="Description" /> + placeholder="Description (maximum 250 characters)" /> diff --git a/src/views/Events/AllRegisterUser.js b/src/views/Events/AllRegisterUser.js new file mode 100644 index 0000000..6286181 --- /dev/null +++ b/src/views/Events/AllRegisterUser.js @@ -0,0 +1,115 @@ + + +import axios from "axios"; +import React, { useEffect, useState, useCallback, useMemo } from "react"; +import swal from 'sweetalert'; +// import { API } from "../../data"; +import { Link, useParams } from "react-router-dom"; +import { isAutheticated } from "../../auth"; + +const AllRegisterUser = () => { + const { id } = useParams(); + const token = isAutheticated(); + const [registerUser, setRegisterUser] = useState([]) + const getRegisterUser = useCallback(async () => { + let res = await axios.get( + `/api/event/admin/registerUser/getAll/${id}`, + { + headers: { + Authorization: `Bearer ${token}`, + }, + } + ); + console.log(res.data) + setRegisterUser(res.data.user) + + + }, [token]); + + useEffect(() => { + getRegisterUser(); + }, [getRegisterUser]); + console.log(registerUser) + //change time formate + function formatAMPM(date) { + var hours = new Date(date).getHours(); + var minutes = new Date(date).getMinutes(); + var ampm = hours >= 12 ? 'PM' : 'AM'; + hours = hours % 12; + hours = hours ? hours : 12; // the hour '0' should be '12' + minutes = minutes < 10 ? '0' + minutes : minutes; + var strTime = hours + ':' + minutes + ' ' + ampm; + return strTime; + } + + + return ( + <>
+
+
+ {/* */} +
+
+
+

CMP-Event Register Users

+ +
+
+
+ {/* */} + +
+
+
+
+
+ +
+
+ + + + + + + + + + + + + {registerUser && registerUser.map((item, index) => + + + + + + + + + + + )} + +
Name Profile ImageEmailPhoneregister At
{item.userId?.name} + {item.userId?.email}{item.userId?.phone} + {/* {item?.addedOn} */} + {new Date(`${item.userId?.createdAt}`).toDateString()} , {`${formatAMPM(item.userId?.createdAt)}`} + +
+
+ + + {/* */} +
+
+
+
+
+ {/* */} +
+
+ ); +} + +export default AllRegisterUser; diff --git a/src/views/Events/EditEvent.js b/src/views/Events/EditEvent.js index ba5cb76..5d1410b 100644 --- a/src/views/Events/EditEvent.js +++ b/src/views/Events/EditEvent.js @@ -25,7 +25,7 @@ import { cilPencil, cilSettings, cilLockLocked, cilUser, cilBell, cilLocationPin const EditEvent = () => { const { id } = useParams(); // console.log(id) - const { token } = isAutheticated(); + const token = isAutheticated(); let history = useHistory(); const [image, setImage] = useState(""); const [title, setTitle] = useState(""); @@ -115,20 +115,22 @@ const EditEvent = () => {
setTitle(e.target.value)} value={title} - placeholder="Title" /> + placeholder="Title (maximum 50 characters)" />
setDescription(e.target.value)} value={description} - placeholder="Description" /> + placeholder="Description (maximum 250 characters)" /> diff --git a/src/views/Events/Event.js b/src/views/Events/Event.js index cf7cab8..3787e62 100644 --- a/src/views/Events/Event.js +++ b/src/views/Events/Event.js @@ -3,13 +3,14 @@ import axios from "axios"; import React, { useEffect, useState, useCallback, useMemo } from "react"; import { Link } from "react-router-dom"; import swal from 'sweetalert'; +import RegisterUser from "./RegisterUser"; // import { API } from "../../data"; import { isAutheticated } from "../../auth"; function Event() { const [event, setEvent] = useState([]) - const { token } = isAutheticated(); + const token = isAutheticated(); const getEvent = useCallback(async () => { let res = await axios.get( @@ -99,52 +100,13 @@ function Event() { Image Location Added On + Attended By Action {event && event.map((item, index) => - - {item?.title} - - - {item?.location} - - {/* {item?.addedOn} */} - {new Date(`${item?.addedOn}`).toDateString()} , {`${formatAMPM(item?.addedOn)}`} - - - - - - - - - - - - - - - - + )} diff --git a/src/views/Events/RegisterUser.js b/src/views/Events/RegisterUser.js new file mode 100644 index 0000000..0073d4a --- /dev/null +++ b/src/views/Events/RegisterUser.js @@ -0,0 +1,90 @@ +import axios from "axios"; +import React, { useEffect, useState, useCallback, useMemo } from "react"; +import { Link } from "react-router-dom"; +import swal from 'sweetalert'; +// import { API } from "../../data"; +import { isAutheticated } from "../../auth"; + +const RegisterUser = ({ item, handleDelete, formatAMPM }) => { + const [totalRegisterUser, setTotalRegisterUser] = useState([]) + const token = isAutheticated(); + const getRegisterUser = useCallback(async () => { + let res = await axios.get( + `/api/event/admin/registerUser/getAll/${item._id}`, + { + headers: { + Authorization: `Bearer ${token}`, + }, + } + ); + console.log(res.data) + setTotalRegisterUser(res.data.totalUserRegister) + + + }, [token]); + + useEffect(() => { + getRegisterUser(); + }, [getRegisterUser, item]); + return ( + <> + + {item?.title} + + + {item?.location} + + {/* {item?.addedOn} */} + {new Date(`${item?.addedOn}`).toDateString()} , {`${formatAMPM(item?.addedOn)}`} + + + + + + + + + + + + + + + + + + + + + + + + + + + ) +} + +export default RegisterUser \ No newline at end of file diff --git a/src/views/Offers/AddOffer.js b/src/views/Offers/AddOffer.js index 0b61760..814e849 100644 --- a/src/views/Offers/AddOffer.js +++ b/src/views/Offers/AddOffer.js @@ -129,10 +129,11 @@ const AddOffer = () => { setTitle(e.target.value)} value={title} - placeholder="Title" /> + placeholder="Title (maximum 50 characters)" /> @@ -140,10 +141,11 @@ const AddOffer = () => { setDescription(e.target.value)} value={description} - placeholder="Description" /> + placeholder="Description (maximum 250 characters)" /> diff --git a/src/views/Offers/EditOffer.js b/src/views/Offers/EditOffer.js index abfc8bb..afc850a 100644 --- a/src/views/Offers/EditOffer.js +++ b/src/views/Offers/EditOffer.js @@ -138,10 +138,11 @@ const EditOffer = () => { setTitle(e.target.value)} value={title} - placeholder="Title" /> + placeholder="Title (maximum 50 characters)" /> @@ -149,10 +150,11 @@ const EditOffer = () => { setDescription(e.target.value)} value={description} - placeholder="Description" /> + placeholder="Description (maximum 250 characters)" /> diff --git a/src/views/Requirement/AddRequirement.js b/src/views/Requirement/AddRequirement.js index 45528ff..74c2bb3 100644 --- a/src/views/Requirement/AddRequirement.js +++ b/src/views/Requirement/AddRequirement.js @@ -117,10 +117,11 @@ const AddRequirement = () => { setTitle(e.target.value)} value={title} - placeholder="Title" /> + placeholder="Title (maximum 50 characters)" /> @@ -138,10 +139,11 @@ const AddRequirement = () => { setDescription(e.target.value)} value={description} - placeholder="Description" /> + placeholder="Description (maximum 250 characters)" /> diff --git a/src/views/Requirement/EditRequirement.js b/src/views/Requirement/EditRequirement.js index 5409780..1af9303 100644 --- a/src/views/Requirement/EditRequirement.js +++ b/src/views/Requirement/EditRequirement.js @@ -133,9 +133,10 @@ const EditRequirement = () => { setTitle(e.target.value)} value={title} - placeholder="Title" /> + placeholder="Title (maximum 50 characters)" /> @@ -153,10 +154,11 @@ const EditRequirement = () => { setDescription(e.target.value)} value={description} - placeholder="Description" /> + placeholder="Description (maximum 250 characters)" /> diff --git a/src/views/pages/login/Login.js b/src/views/pages/login/Login.js index 10f83ad..b23a93d 100644 --- a/src/views/pages/login/Login.js +++ b/src/views/pages/login/Login.js @@ -33,6 +33,10 @@ const Login = () => { }; const Login = async () => { + if (!(auth.email && auth.password)) { + alert("please filled both fields") + return + } setLoading({ loading: true }) try { const res = await axios.post("/api/v1/user/login/", auth);