irongit

'edit populates'

huncholanehuncholaneauthored
parent 2e348d3commit 0427bd97133805e5e35d914296ca0e210be0468bBrowse files

4 files changed, +55 -5

+1-1Client/src/views/admin/meeting/View.js
@@ -294,7 +294,7 @@ const View = () => {
294294 )}
295295 {/* Delete model */}
296296 <CommonDeleteModel isOpen={deleteMany} onClose={() => setDeleteMany(false)} type="Meetings" handleDeleteData={handleDeleteMeeting} ids={params.id} />
297- <AddMeeting isOpen={edit} fetchData={fetchData} onClose={() => setEdit(false)} userAction={'edit'} id={params.id} />
297+ <AddMeeting isOpen={edit} fetchData={fetchData} onClose={() => setEdit(false)} userAction={'edit'} id={params.id} init={data} />
298298 </>
299299 );
300300 };
+37-2Client/src/views/admin/meeting/components/Addmeeting.js
@@ -10,6 +10,7 @@ import { LiaMousePointerSolid } from 'react-icons/lia';
1010 import { useSelector } from 'react-redux';
1111 import { toast } from 'react-toastify';
1212 import { MeetingSchema } from 'schema';
13+import { putApi } from 'services/api';
1314 import { getApi, postApi } from 'services/api';
1415
1516 const AddMeeting = (props) => {
@@ -41,12 +42,25 @@ const AddMeeting = (props) => {
4142 initialValues: initialValues,
4243 validationSchema: MeetingSchema,
4344 onSubmit: (values, { resetForm }) => {
44- AddData();
45+ console.log('saving');
46+ if (props.id) {
47+ editData();
48+ } else {
49+ AddData();
50+ }
4551 },
4652 });
4753
4854 const { errors, touched, values, handleBlur, handleChange, handleSubmit, setFieldValue } = formik;
4955
56+ useEffect(() => {
57+ values.agenda = props.init?.agenda || '';
58+ values.location = props.init?.location || '';
59+ values.dateTime = props.init?.dateTime || '';
60+ values.notes = props.init?.notes || '';
61+ values.related = props.init?.related;
62+ }, [props.init]);
63+
5064 const AddData = async () => {
5165 try {
5266 setIsLoding(true);
@@ -67,6 +81,27 @@ const AddMeeting = (props) => {
6781 }
6882 };
6983
84+ const editData = async () => {
85+ try {
86+ setIsLoding(true);
87+ let response = await putApi('api/meeting/edit', {
88+ ...values,
89+ _id: props.id,
90+ });
91+ if (response.status === 200) {
92+ props.onClose();
93+ formik.resetForm();
94+ props.setAction((pre) => !pre);
95+ toast.success(`Updated the meeting 😄`);
96+ }
97+ } catch (e) {
98+ console.log(e);
99+ toast.error('Failed to update meeting 😞');
100+ } finally {
101+ setIsLoding(false);
102+ }
103+ };
104+
70105 const fetchAllData = async () => {};
71106
72107 useEffect(() => {}, [props.id, values.related]);
@@ -85,7 +120,7 @@ const AddMeeting = (props) => {
85120 <Modal onClose={onClose} isOpen={isOpen} isCentered>
86121 <ModalOverlay />
87122 <ModalContent height={'580px'}>
88- <ModalHeader>Add Meeting </ModalHeader>
123+ <ModalHeader>{props.init ? 'Edit' : 'Add'} Meeting </ModalHeader>
89124 <ModalCloseButton />
90125 <ModalBody overflowY={'auto'} height={'400px'}>
91126 {/* Contact Model */}
+1-1server/controllers/meeting/_routes.js
@@ -8,7 +8,7 @@ router.get("/", auth, meeting.index);
88 router.post("/add", auth, meeting.add);
99 // router.post("/addMany", auth, meeting.addMany);
1010 router.get("/view/:id", auth, meeting.view);
11-// router.put("/edit/:id", auth, meeting.edit);
11+router.put("/edit/:id", auth, meeting.edit);
1212 // router.put("/changeStatus/:id", auth, meeting.changeStatus);
1313 router.delete("/delete/:id", auth, meeting.deleteData);
1414 router.post("/deleteMany", auth, meeting.deleteMany);
+16-1server/controllers/meeting/meeting.js
@@ -93,4 +93,19 @@ const deleteMany = async (req, res) => {
9393 }
9494 };
9595
96-module.exports = { add, index, view, deleteData, deleteMany };
96+const edit = async (req, res) => {
97+ try {
98+ let result = await MeetingHistory.findOneAndUpdate(
99+ { _id: req.params.id },
100+ { $set: req.body },
101+ { new: true }
102+ );
103+
104+ res.status(200).json(result);
105+ } catch (err) {
106+ console.error("Failed to create task:", err);
107+ res.status(400).json({ error: "Failed to create task : ", err });
108+ }
109+};
110+
111+module.exports = { add, index, view, deleteData, deleteMany, edit };