From 43c951b14084585bd833e25755c479b44aee70e7 Mon Sep 17 00:00:00 2001 From: paritshivani Date: Tue, 8 Oct 2024 12:27:03 +0530 Subject: [PATCH 01/17] submission list --- packages/nulp_elite/src/App.js | 11 +- .../pages/learnathon/LernSubmissionTable.js | 157 ++++++++++++++++++ .../src/pages/learnathon/lernCreatorList.js | 0 .../src/pages/learnathon/lernSubmission.json | 142 ++++++++++++++++ 4 files changed, 305 insertions(+), 5 deletions(-) create mode 100644 packages/nulp_elite/src/pages/learnathon/LernSubmissionTable.js delete mode 100644 packages/nulp_elite/src/pages/learnathon/lernCreatorList.js create mode 100644 packages/nulp_elite/src/pages/learnathon/lernSubmission.json diff --git a/packages/nulp_elite/src/App.js b/packages/nulp_elite/src/App.js index 9293955b..160fcb17 100644 --- a/packages/nulp_elite/src/App.js +++ b/packages/nulp_elite/src/App.js @@ -41,6 +41,7 @@ import PopupForm from "pages/profileData"; import axios from "axios"; import ReactGA from "react-ga4"; import LernModal from "components/learnathon/LernModal"; +import LernSubmissionTable from "pages/learnathon/LernSubmissionTable"; function App() { // const [t] = useTranslation(); @@ -111,11 +112,11 @@ function App() { path: routeConfig.ROUTES.JOIN_COURSE_PAGE.JOIN_COURSE, component: JoinCourse, }, - // { - // moduleName: "nulp_elite", - // path: "/joinCourse/:contentId", - // component: JoinCourse, - // }, + { + moduleName: "nulp_elite", + path: "/webapp/mylernsubmissions", + component: LernSubmissionTable, + }, { moduleName: "nulp_elite", diff --git a/packages/nulp_elite/src/pages/learnathon/LernSubmissionTable.js b/packages/nulp_elite/src/pages/learnathon/LernSubmissionTable.js new file mode 100644 index 00000000..0f9db709 --- /dev/null +++ b/packages/nulp_elite/src/pages/learnathon/LernSubmissionTable.js @@ -0,0 +1,157 @@ +import React, { useState, useEffect } from "react"; +import { + Table, + TableBody, + TableCell, + TableContainer, + TableHead, + TableRow, + TablePagination, + Paper, + TextField, + Button, + IconButton, + Typography, + Box, +} from "@mui/material"; +import { Edit, Visibility, Delete } from "@mui/icons-material"; +import SearchIcon from "@mui/icons-material/Search"; +import submissions from "./lernSubmission.json"; + +const LernSubmissionTable = () => { + const [data, setData] = useState([]); + const [page, setPage] = useState(0); + const [rowsPerPage, setRowsPerPage] = useState(5); + const [totalRows, setTotalRows] = useState(0); + const [search, setSearch] = useState(""); + + useEffect(() => { + fetchData(); + }, [page, rowsPerPage, search]); + + const fetchData = async () => { + // Example API endpoint with limit, offset, and search params + // const apiUrl = `https://api.example.com/submissions?limit=${rowsPerPage}&offset=${ + // page * rowsPerPage + // }&search=${search}`; + // const response = await fetch(apiUrl); + + // const result = await response.json(); + console.log(submissions); + setData(submissions.result.data); + setTotalRows(result.totalCount); + }; + + const handleSearchChange = (e) => { + setSearch(e.target.value); + setPage(0); // Reset to first page on search + }; + + const handlePageChange = (event, newPage) => { + setPage(newPage); + }; + + const handleRowsPerPageChange = (event) => { + setRowsPerPage(parseInt(event.target.value, 10)); + setPage(0); + }; + + return ( + + + Learnathon Submissions List + + + + + , + }} + size="small" + /> + + + + + + + Name + Last Updated + Status + Actions + + + + {data.map((row) => ( + + {row.title_of_submission} + + {new Date(row.updated_on).toLocaleDateString()} + + + {row.status} + + + alert(`Edit ${row.name}`)} + > + + + alert(`View ${row.name}`)} + > + + + alert(`Delete ${row.name}`)} + > + + + + + ))} + +
+
+ + +
+ ); +}; + +export default LernSubmissionTable; diff --git a/packages/nulp_elite/src/pages/learnathon/lernCreatorList.js b/packages/nulp_elite/src/pages/learnathon/lernCreatorList.js deleted file mode 100644 index e69de29b..00000000 diff --git a/packages/nulp_elite/src/pages/learnathon/lernSubmission.json b/packages/nulp_elite/src/pages/learnathon/lernSubmission.json new file mode 100644 index 00000000..5fe3451e --- /dev/null +++ b/packages/nulp_elite/src/pages/learnathon/lernSubmission.json @@ -0,0 +1,142 @@ +{ + "ts": "2024-10-07T12:29:26.592Z", + "params": { + "resmsgid": "caa3ec00-84a7-11ef-b085-3f76106a933c", + "msgid": "caa3ec01-84a7-11ef-b085-3f76106a933c", + "status": "Learnathon contents fetched successfully", + "err": null, + "errmsg": null + }, + "responseCode": "OK", + "result": { + "totalCount": 6, + "data": [ + { + "id": 11, + "learnathon_content_id": "do_1728275652639455299", + "user_name": "Mahesh", + "email": "1bf9e9fd16d5f6b9910bab15b4ed0cc0:f06503b30672a19b11bf2a75b95d37d3", + "mobile_number": "8c9e8e44841e196a79433e13e0e84bb4:d524b4f8dd7951719b8302e42b82f00f", + "category_of_participation": "Learnathon", + "link_to_guidelines": "https://demo.com/guideline", + "name_of_organisation": "NULP-Learn", + "name_of_department_group": "DEvelopment", + "indicative_theme": "Demo", + "title_of_submission": "Demo content", + "content_id": "do_233439874322324567", + "consent_checkbox": true, + "created_on": "2024-10-06T23:04:12.649Z", + "updated_on": "2024-10-06T23:04:12.649Z", + "created_by": "929a2476-f232-47af-8e65-87229d1d4952", + "poll_id": null, + "is_published": false, + "icon": "https://exampleicon.com" + }, + { + "id": 10, + "learnathon_content_id": "do_1728275524591748024", + "user_name": "Mahesh", + "email": "e09fde0fc5003abedbc7a8a2fe30fba3:3de05332e8011d12537d828e52a0a853", + "mobile_number": "6c7b3c8f08f67b506e467a798ef6e6db:7eeafda740f20adec6295bfb02ba4723", + "category_of_participation": "Learnathon", + "link_to_guidelines": "https://demo.com/guideline", + "name_of_organisation": "NULP-Learn", + "name_of_department_group": "DEvelopment", + "indicative_theme": "Demo", + "title_of_submission": "Demo content", + "content_id": "do_233439874322324567", + "consent_checkbox": true, + "created_on": "2024-10-06T23:02:04.591Z", + "updated_on": "2024-10-06T23:02:04.591Z", + "created_by": "929a2476-f232-47af-8e65-87229d1d4952", + "poll_id": null, + "is_published": false, + "icon": null + }, + { + "id": 9, + "learnathon_content_id": "do_1728275480480866116", + "user_name": "Mahesh", + "email": "3d30809d4d14278197a3464bf91a371a:47682f54e86a07afc9482e710cdd54d9", + "mobile_number": "c8b93b49d64ba0b289205dec686f880a:6f8a33dde0d1cc4083ef11d0602469b4", + "category_of_participation": "Learnathon", + "link_to_guidelines": "https://demo.com/guideline", + "name_of_organisation": "NULP-Learn", + "name_of_department_group": "DEvelopment", + "indicative_theme": "Demo", + "title_of_submission": "Demo content", + "content_id": "do_233439874322324566", + "consent_checkbox": true, + "created_on": "2024-10-06T23:01:20.490Z", + "updated_on": "2024-10-06T23:01:20.490Z", + "created_by": "929a2476-f232-47af-8e65-87229d1d4952", + "poll_id": null, + "is_published": false, + "icon": null + }, + { + "id": 8, + "learnathon_content_id": "do_172804425702580603", + "user_name": "John Doe", + "email": "d6de43bfa5b30cf985a659125ab26066:432455393ac7f7a9ead978d63d8568210acf23b63f993dcbf7f20c6f92c276c2", + "mobile_number": "f51b957b78e674da3f7014c20edbac93:7cbbb3ddc4ae317e5a3446e4e48bc7c3", + "category_of_participation": "Technical", + "link_to_guidelines": "https://example.com/guidelines", + "name_of_organisation": "Tech Corp", + "name_of_department_group": "Engineering", + "indicative_theme": "Innovation", + "title_of_submission": "Next-gen AI solutions", + "content_id": "do_233439874322324566", + "consent_checkbox": true, + "created_on": "2024-10-04T06:47:37.032Z", + "updated_on": "2024-10-04T06:47:37.032Z", + "created_by": "929a2476-f232-47af-8e65-87229d1d4952", + "poll_id": null, + "is_published": false, + "icon": null + }, + { + "id": 7, + "learnathon_content_id": "do_1728044116243117507", + "user_name": "John Doe", + "email": "d6de43bfa5b30cf985a659125ab26066:432455393ac7f7a9ead978d63d8568210acf23b63f993dcbf7f20c6f92c276c2", + "mobile_number": "f51b957b78e674da3f7014c20edbac93:7cbbb3ddc4ae317e5a3446e4e48bc7c3", + "category_of_participation": "Technical", + "link_to_guidelines": "https://example.com/guidelines", + "name_of_organisation": "Tech Corp", + "name_of_department_group": "Engineering", + "indicative_theme": "Innovation", + "title_of_submission": "Next-gen AI solutions", + "content_id": "do_233439874322324566", + "consent_checkbox": true, + "created_on": "2024-10-04T06:45:16.250Z", + "updated_on": "2024-10-04T06:45:16.250Z", + "created_by": "929a2476-f232-47af-8e65-87229d1d4952", + "poll_id": null, + "is_published": false, + "icon": null + }, + { + "id": 6, + "learnathon_content_id": "do_172804161396294572", + "user_name": "John Doe", + "email": "d6de43bfa5b30cf985a659125ab26066:432455393ac7f7a9ead978d63d8568210acf23b63f993dcbf7f20c6f92c276c2", + "mobile_number": "f51b957b78e674da3f7014c20edbac93:7cbbb3ddc4ae317e5a3446e4e48bc7c3", + "category_of_participation": "Technical", + "link_to_guidelines": "https://example.com/guidelines", + "name_of_organisation": "Tech Corp", + "name_of_department_group": "Engineering", + "indicative_theme": "Innovation", + "title_of_submission": "Next-gen AI solutions", + "content_id": "do_233439874322324566", + "consent_checkbox": true, + "created_on": "2024-10-04T06:03:33.968Z", + "updated_on": "2024-10-04T06:03:33.968Z", + "created_by": "self", + "poll_id": null, + "is_published": false, + "icon": null + } + ] + } +} From 7cc673295b2a60881cbbea291970219f09ba27f5 Mon Sep 17 00:00:00 2001 From: paritshivani Date: Tue, 8 Oct 2024 12:29:31 +0530 Subject: [PATCH 02/17] deployment issue --- .../src/pages/content/joinCourse.js | 32 +++++++++++-------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/packages/nulp_elite/src/pages/content/joinCourse.js b/packages/nulp_elite/src/pages/content/joinCourse.js index 03677b86..b55975ed 100644 --- a/packages/nulp_elite/src/pages/content/joinCourse.js +++ b/packages/nulp_elite/src/pages/content/joinCourse.js @@ -161,10 +161,11 @@ const JoinCourse = () => { setIsOwner(true); } let identifiers; - if(data?.result?.content?.children[0]?.children){ - identifiers = data?.result?.content?.children[0]?.children[0]?.identifier; - }else{ - identifiers = data?.result?.content?.children[0]?.identifier + if (data?.result?.content?.children[0]?.children) { + identifiers = + data?.result?.content?.children[0]?.children[0]?.identifier; + } else { + identifiers = data?.result?.content?.children[0]?.identifier; } console.log(identifiers, "setChildNode"); setChildNode(identifiers); @@ -616,19 +617,20 @@ const JoinCourse = () => { - + - {!isCompleted && + onClick={() => handleLinkClick(childnode)} + className="custom-btn-primary mr-5" + > + {t("START_LEARNING")} + + {!isCompleted && ( )} @@ -693,7 +695,9 @@ const JoinCourse = () => { )}{" "} From 94224727c2ceae68953db272a46055b309678541 Mon Sep 17 00:00:00 2001 From: Shivani Parit <58217306+paritshivani@users.noreply.github.com> Date: Tue, 8 Oct 2024 16:25:29 +0530 Subject: [PATCH 03/17] Update joinCourse.js --- packages/nulp_elite/src/pages/content/joinCourse.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/nulp_elite/src/pages/content/joinCourse.js b/packages/nulp_elite/src/pages/content/joinCourse.js index b55975ed..78686e56 100644 --- a/packages/nulp_elite/src/pages/content/joinCourse.js +++ b/packages/nulp_elite/src/pages/content/joinCourse.js @@ -76,7 +76,7 @@ const JoinCourse = () => { const [open, setOpen] = useState(false); const [chat, setChat] = useState([]); const [childnode, setChildNode] = useState([]); - const [isOwner, setIsOwner] = useState([]); + const [isOwner, setIsOwner] = useState(false); const [formData, setFormData] = useState({ message: "", }); From b81f0ba8defd76cc77181a7f61814ac94e370465 Mon Sep 17 00:00:00 2001 From: sonaligarud Date: Wed, 9 Oct 2024 12:34:50 +0530 Subject: [PATCH 04/17] Task #228528-[FE] - Registration side changes for learnathon (webapp) with updated figma UI and funtionality --- module-template/public/image24.png | Bin 0 -> 81467 bytes .../public/locales/en/translation.json | 8 +- packages/nulp_elite/src/App.js | 8 +- packages/nulp_elite/src/assets/image24.png | Bin 0 -> 81467 bytes .../src/components/learnathon/LernModal.js | 73 ++++++++++++++---- .../components/learnathon/SubmissionList.js | 15 ++++ .../nulp_elite/src/configs/routeConfig.json | 3 +- .../src/pages/content/joinCourse.js | 2 +- .../nulp_elite/src/pages/search/DomainList.js | 32 ++++---- packages/nulp_elite/src/styles/style.css | 17 +++- 10 files changed, 121 insertions(+), 37 deletions(-) create mode 100644 module-template/public/image24.png create mode 100644 packages/nulp_elite/src/assets/image24.png create mode 100644 packages/nulp_elite/src/components/learnathon/SubmissionList.js diff --git a/module-template/public/image24.png b/module-template/public/image24.png new file mode 100644 index 0000000000000000000000000000000000000000..144c688d2728761facb102bd2d4cfbc993c7574e GIT binary patch literal 81467 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

%WywX;J#tE}Ucg!#DO)F!P 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 N002ovPDHLkV1fXZ7?A(~ literal 0 HcmV?d00001 diff --git a/packages/nulp_elite/public/locales/en/translation.json b/packages/nulp_elite/public/locales/en/translation.json index f3c5d794..9b9744a9 100644 --- a/packages/nulp_elite/public/locales/en/translation.json +++ b/packages/nulp_elite/public/locales/en/translation.json @@ -319,8 +319,10 @@ "PHONE": "Phone", "PHONE_NUMBER": "(+91 11) 24617517, 24617543, 24617595", "SESSION_TIMEOUT_MESSAGE": "Failed to fetch data.please try again.", - "LERN_title": "Learnathon 2.0", - "LERN_MESSAGE": "Learnathon 2.0 has started from 20/09/2024 to 20/10/2024. You can now create and share your submissions!", + "LERN_title": "The Learnathon Has Begun!", + "LERN_MESSAGE": "Where cities and states share solutions to foster collaborating learning!", + "LERN_MESSAGE_LINE_TWO":"Learnathon 2.0 has started from 20/09/2024 to 20/10/2024. You can now create and share your submissions!", "CREATE_CONTENT": "Create Content", - "REQUEST_TO_CREATE": "Request to Create" + "REQUEST_TO_CREATE": "Request to Create", + "PARTICIPATE_NOW":"Participate Now" } diff --git a/packages/nulp_elite/src/App.js b/packages/nulp_elite/src/App.js index 26c3c2f1..b93bd35a 100644 --- a/packages/nulp_elite/src/App.js +++ b/packages/nulp_elite/src/App.js @@ -41,6 +41,7 @@ import PopupForm from "pages/profileData"; import axios from "axios"; import ReactGA from "react-ga4"; import LernModal from "components/learnathon/LernModal"; +import SubmissionList from "components/learnathon/SubmissionList"; function App() { // const [t] = useTranslation(); @@ -217,6 +218,11 @@ function App() { path: routeConfig.ROUTES.LEARNATHON.CREATELEARNCONTENT, component: LernCreatorForm, }, + { + moduleName: "nulp_elite", + path: routeConfig.ROUTES.LEARNATHON.SUBMISSIONLIST, + component: SubmissionList, + }, ]; createForm; initializeI18n( @@ -325,8 +331,8 @@ function App() { /> ))} + - {/* */} {/* */} diff --git a/packages/nulp_elite/src/assets/image24.png b/packages/nulp_elite/src/assets/image24.png new file mode 100644 index 0000000000000000000000000000000000000000..144c688d2728761facb102bd2d4cfbc993c7574e GIT binary patch literal 81467 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

%WywX;J#tE}Ucg!#DO)F!P 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 N002ovPDHLkV1fXZ7?A(~ literal 0 HcmV?d00001 diff --git a/packages/nulp_elite/src/components/learnathon/LernModal.js b/packages/nulp_elite/src/components/learnathon/LernModal.js index 19b3248a..ae14c26b 100644 --- a/packages/nulp_elite/src/components/learnathon/LernModal.js +++ b/packages/nulp_elite/src/components/learnathon/LernModal.js @@ -1,13 +1,15 @@ import React, { useState, useEffect } from 'react'; -import { Modal, Box, Typography, IconButton } from '@mui/material'; +import { Modal, Box, Typography, IconButton, Button, Grid } from '@mui/material'; import * as util from "services/utilService"; const urlConfig = require("../../configs/urlConfig.json"); import CloseIcon from "@mui/icons-material/Close"; import Divider from '@mui/material/Divider'; import { useTranslation } from "react-i18next"; +import { useNavigate } from 'react-router-dom'; const LernModal = () => { const { t } = useTranslation(); + const navigate = useNavigate(); const [isModalOpen, setIsModalOpen] = useState(() => { // Check if the modal has been shown in the current session const isModalShown = sessionStorage.getItem('isModalShown'); @@ -51,8 +53,26 @@ const LernModal = () => { boxShadow: 24, p: 4, overflow: "auto", + borderRadius:'10px', + width: { + xs: '100%', + sm: '100%', + md: '600px', + }, }; - console.log(lernUser,'lernUser form modal'); + console.log(lernUser, 'lernUser form modal'); + + const handleCardClick = () => { + if (lernUser === 'nulp-learn') { + // Navigate to /webapp/learnthon if lernUser is 'nulp-learn' + navigate('/webapp/learnthon'); + setIsModalOpen(false); + } else { + navigate('/webapp/SubmissionList'); + setIsModalOpen(false); + } + }; + return (

{ - {t("LERN_title")} + {t("LERN_title")} @@ -75,20 +95,41 @@ const LernModal = () => { - - - - - {t("LERN_MESSAGE")} - - - - {lernUser === 'nulp-learn' ? ( - {t("CREATE_CONTENT")} - ) : ( - {t("REQUEST_TO_CREATE")} - )} + + + + + + + + + + + + {t("LERN_MESSAGE")} + + + {t("LERN_MESSAGE_LINE_TWO")} + + + + {lernUser === 'nulp-learn' ? ( + + ) : ( + + )} + + + +
diff --git a/packages/nulp_elite/src/components/learnathon/SubmissionList.js b/packages/nulp_elite/src/components/learnathon/SubmissionList.js new file mode 100644 index 00000000..cd58e108 --- /dev/null +++ b/packages/nulp_elite/src/components/learnathon/SubmissionList.js @@ -0,0 +1,15 @@ +import React, { useState, useEffect } from 'react'; +import { Modal, Box, Typography, IconButton, Button } from '@mui/material'; +const urlConfig = require("../../configs/urlConfig.json"); +import Divider from '@mui/material/Divider'; +import { useTranslation } from "react-i18next"; + +const SubmissionList = () => { + + return ( + + SubmissionList component + ); +}; + +export default SubmissionList; diff --git a/packages/nulp_elite/src/configs/routeConfig.json b/packages/nulp_elite/src/configs/routeConfig.json index d923004c..da8ac822 100644 --- a/packages/nulp_elite/src/configs/routeConfig.json +++ b/packages/nulp_elite/src/configs/routeConfig.json @@ -85,7 +85,8 @@ "POLLS_VIEW_ALL": "/webapp/pollsDetails" }, "LEARNATHON": { - "CREATELEARNCONTENT": "/webapp/learnthon" + "CREATELEARNCONTENT": "/webapp/learnthon", + "SUBMISSIONLIST":"webapp/SubmissionList" } } } diff --git a/packages/nulp_elite/src/pages/content/joinCourse.js b/packages/nulp_elite/src/pages/content/joinCourse.js index bfee8897..68ba7637 100644 --- a/packages/nulp_elite/src/pages/content/joinCourse.js +++ b/packages/nulp_elite/src/pages/content/joinCourse.js @@ -630,7 +630,7 @@ const JoinCourse = () => { > {t("LEAVE_COURSE")} - )} + } diff --git a/packages/nulp_elite/src/pages/search/DomainList.js b/packages/nulp_elite/src/pages/search/DomainList.js index d38a0483..9976059f 100644 --- a/packages/nulp_elite/src/pages/search/DomainList.js +++ b/packages/nulp_elite/src/pages/search/DomainList.js @@ -29,6 +29,7 @@ import SkeletonLoader from "components/skeletonLoader"; import FloatingChatIcon from "components/FloatingChatIcon"; import * as util from "../../services/utilService"; import { Loading } from "@shiksha/common-lib"; +import { Button} from '@mui/material'; const Item = styled(Paper)(({ theme }) => ({ @@ -73,12 +74,6 @@ const DomainList = ({ globalSearchQuery }) => { const [searchQuery, setSearchQuery] = useState(globalSearchQuery || ""); - const [isModalOpen, setIsModalOpen] = useState(() => { - // Check if the modal has been shown in the current session - const isModalShown = sessionStorage.getItem('isModalShown'); - return isModalShown !== 'true'; // Show modal if not already shown - }); - const [lernUser, setLernUser] = useState([]); const _userId = util.userId(); const fetchData = async () => { @@ -403,7 +398,14 @@ const DomainList = ({ globalSearchQuery }) => { } }; console.log(lernUser, 'lernUser from dashboard'); - + const handleCheckUser = () => { + if (lernUser === 'nulp-learn') { + // Navigate to /webapp/learnthon if lernUser is 'nulp-learn' + navigate('/webapp/learnthon'); + } else { + navigate('/webapp/SubmissionList'); + } + }; return (
@@ -515,16 +517,20 @@ const DomainList = ({ globalSearchQuery }) => { - {t("LERN_MESSAGE")} + {t("LERN_MESSAGE_LINE_TWO")} - {lernUser === 'nulp-learn' ? ( - {t("CREATE_CONTENT")} - ) : ( - {t("REQUEST_TO_CREATE")} - )} + {lernUser === 'nulp-learn' ? ( + + ) : ( + + )} diff --git a/packages/nulp_elite/src/styles/style.css b/packages/nulp_elite/src/styles/style.css index 05f98bd4..0e7305ac 100644 --- a/packages/nulp_elite/src/styles/style.css +++ b/packages/nulp_elite/src/styles/style.css @@ -3740,6 +3740,19 @@ input:required::after { background-color: #fff; padding: 30px; border-radius: 4px; -border: 1px solid #15353f; +border: 3px solid #15353f; margin: 10px; -} \ No newline at end of file +animation: blink-border 1s infinite alternate; +} + +@keyframes blink-border { + 0% { + border-color: #15353f; + } + 50% { + border-color: #0e7a9c; + } + 100% { + border-color: #15353f; + } +} From 8cfb3379c16179cf05a42402335edd26adf3ff86 Mon Sep 17 00:00:00 2001 From: paritshivani Date: Wed, 9 Oct 2024 12:47:07 +0530 Subject: [PATCH 05/17] learnathon crete form changes --- packages/nulp_elite/src/App.js | 15 +- .../nulp_elite/src/configs/routeConfig.json | 3 +- .../nulp_elite/src/configs/urlConfig.json | 29 +- .../pages/learnathon/LernSubmissionTable.js | 188 +++++----- .../src/pages/learnathon/lernCreatorForm.js | 328 +++++++++++++++--- 5 files changed, 409 insertions(+), 154 deletions(-) diff --git a/packages/nulp_elite/src/App.js b/packages/nulp_elite/src/App.js index 8d3ab58b..fd4b2df6 100644 --- a/packages/nulp_elite/src/App.js +++ b/packages/nulp_elite/src/App.js @@ -112,12 +112,6 @@ function App() { path: routeConfig.ROUTES.JOIN_COURSE_PAGE.JOIN_COURSE, component: JoinCourse, }, - { - moduleName: "nulp_elite", - path: "/webapp/mylernsubmissions", - component: LernSubmissionTable, - }, - { moduleName: "nulp_elite", path: routeConfig.ROUTES.PLAYER_PAGE.PLAYER, @@ -218,8 +212,13 @@ function App() { path: routeConfig.ROUTES.LEARNATHON.CREATELEARNCONTENT, component: LernCreatorForm, }, + { + moduleName: "nulp_elite", + path: routeConfig.ROUTES.LEARNATHON.MYLERNSUBMISSION, + component: LernSubmissionTable, + }, ]; - createForm; + initializeI18n( ["translation"], `${process.env.PUBLIC_URL}/locales/{{lng}}/{{ns}}.json` @@ -327,7 +326,7 @@ function App() { ))} - + {/* */} {/* */} diff --git a/packages/nulp_elite/src/configs/routeConfig.json b/packages/nulp_elite/src/configs/routeConfig.json index d923004c..d663fd16 100644 --- a/packages/nulp_elite/src/configs/routeConfig.json +++ b/packages/nulp_elite/src/configs/routeConfig.json @@ -85,7 +85,8 @@ "POLLS_VIEW_ALL": "/webapp/pollsDetails" }, "LEARNATHON": { - "CREATELEARNCONTENT": "/webapp/learnthon" + "CREATELEARNCONTENT": "/webapp/learnthon", + "MYLERNSUBMISSION": "/webapp/mylernsubmissions" } } } diff --git a/packages/nulp_elite/src/configs/urlConfig.json b/packages/nulp_elite/src/configs/urlConfig.json index d5bd7cf2..2bf191c7 100644 --- a/packages/nulp_elite/src/configs/urlConfig.json +++ b/packages/nulp_elite/src/configs/urlConfig.json @@ -49,7 +49,7 @@ "framework": "board,gradeLevel,medium,class,subject" }, "URLS": { - "CUSTOM_EVENT_FETCH_RECORDINGS":"/custom_event/fetch_recordings?event_id=", + "CUSTOM_EVENT_FETCH_RECORDINGS": "/custom_event/fetch_recordings?event_id=", "LEARNER_PREFIX": "/learner/", "DISCUSSIONS_FORUM_PREFIX": "/discussion/", "DEVICE_PREFIX": "/device/", @@ -144,7 +144,7 @@ "ATTACH_CERTIFICATE": "v1/template/add", "CREATE_CERT_TEMPLATE": "asset/v1/create", "UPLOAD_CERT_TEMPLATE": "asset/v1/upload", - "CUSTOM_CERTIFICATE_CREATE": "/custom_event/certificate/create" + "CUSTOM_CERTIFICATE_CREATE": "/custom_event/certificate/create" }, "COMPOSITE": { "SEARCH": "composite/v1/search", @@ -342,8 +342,12 @@ "RETIRE": "assessment/v3/itemsets/retire" }, "ASSET": { - "CREATE": "content/v3/create", - "UPDATE": "content/v3/upload" + "CREATE": "/action/content/v3/create", + "UPDATE": "/action/content/v3/upload/url/" + }, + "ICON": { + "CREATE": "/action/asset/v1/create", + "UPLOAD": "/action/content/v3/upload/url/" }, "ITEMSET": { "CREATE": "itemset/v3/create", @@ -442,13 +446,20 @@ "USER_UPDATE": "/polls/user/update" }, "FEEDBACK": { - "CREATE" : "/custom_feedback/create", - "LIST" : "/custom_feedback/list" + "CREATE": "/custom_feedback/create", + "LIST": "/custom_feedback/list" }, - "NOTIFICATION" : { + "NOTIFICATION": { "READ": "notification/v1/feed/read/", - "UPDATE" : "notification/v1/feed/update", - "DELETE" : "notification/v1/feed/delete" + "UPDATE": "notification/v1/feed/update", + "DELETE": "notification/v1/feed/delete" + }, + "LEARNATHON": { + "CREATE": "/learnathon/content/create", + "LIST": "/learnathon/content/list", + "UPDATE": "/learnathon/content/update", + "DELETE": "/learnathon/content/delete", + "USER_LIST": "/learnathon/..." } } } diff --git a/packages/nulp_elite/src/pages/learnathon/LernSubmissionTable.js b/packages/nulp_elite/src/pages/learnathon/LernSubmissionTable.js index 0f9db709..7b157af0 100644 --- a/packages/nulp_elite/src/pages/learnathon/LernSubmissionTable.js +++ b/packages/nulp_elite/src/pages/learnathon/LernSubmissionTable.js @@ -17,6 +17,10 @@ import { import { Edit, Visibility, Delete } from "@mui/icons-material"; import SearchIcon from "@mui/icons-material/Search"; import submissions from "./lernSubmission.json"; +import { navigate } from "@storybook/addon-links"; +import Footer from "components/Footer"; +import Header from "components/header"; +const routeConfig = require("../../configs/routeConfig.json"); const LernSubmissionTable = () => { const [data, setData] = useState([]); @@ -57,100 +61,106 @@ const LernSubmissionTable = () => { }; return ( - - - Learnathon Submissions List - - + Learnathon Submissions List + + - - , - }} - size="small" - /> - + + , + }} + size="small" + /> + - - - - - Name - Last Updated - Status - Actions - - - - {data.map((row) => ( - - {row.title_of_submission} - - {new Date(row.updated_on).toLocaleDateString()} - - - {row.status} - - - alert(`Edit ${row.name}`)} - > - - - alert(`View ${row.name}`)} - > - - - alert(`Delete ${row.name}`)} - > - - - + +
+ + + Name + Last Updated + Status + Actions - ))} - -
-
+ + + {data.map((row) => ( + + {row.title_of_submission} + + {new Date(row.updated_on).toLocaleDateString()} + + + {row.status} + + + alert(`Edit ${row.name}`)} + > + + + alert(`View ${row.name}`)} + > + + + alert(`Delete ${row.name}`)} + > + + + + + ))} + + + - -
+ + +
+ ); }; diff --git a/packages/nulp_elite/src/pages/learnathon/lernCreatorForm.js b/packages/nulp_elite/src/pages/learnathon/lernCreatorForm.js index ebc17224..b596460b 100644 --- a/packages/nulp_elite/src/pages/learnathon/lernCreatorForm.js +++ b/packages/nulp_elite/src/pages/learnathon/lernCreatorForm.js @@ -16,6 +16,9 @@ import { import HelpOutlineIcon from "@mui/icons-material/HelpOutline"; import Footer from "components/Footer"; import Header from "components/header"; +const urlConfig = require("../../configs/urlConfig.json"); +import * as util from "../../services/utilService"; +import { v4 as uuidv4 } from "uuid"; // const [globalSearchQuery, setGlobalSearchQuery] = useState(); // // location.state?.globalSearchQuery || undefined // const [searchQuery, setSearchQuery] = useState(globalSearchQuery || ""); @@ -27,35 +30,39 @@ const categories = [ ]; const themes = [ - "NULP Domain 1", - "NULP Domain 2", - "NULP Domain 3", - "NULP Domain 4", - "NULP Domain 5", - "NULP Domain 6", - "NULP Domain 7", - "NULP Domain 8", - "NULP Domain 9", - "NULP Domain 10", - "Others", + "Solid Waste Management", + "Environment and Climate", + "WASH - Water, Sanitation and Hygiene", + "Urban Planning and Housing", + "Transport and Mobility", + "Social Aspects", + "Municipal Finance", + "General Administration", + "Governance and Urban Management", + "Miscellaneous/ Others", ]; const LernCreatorForm = () => { + const _userId = util.userId(); // Assuming util.userId() is defined + const [formData, setFormData] = useState({ - userName: "", + user_name: "", email: "", - mobileNumber: "", - submissionIcon: "", - category: "", - organisation: "", - department: "", - theme: "", - title: "", + mobile_number: "", + icon: "", + category_of_participation: "", + name_of_organisation: "", + name_of_department_group: "", + indicative_theme: "", + title_of_submission: "", description: "", - file: null, - consent: false, - }); + content_id: null, + consent_checkbox: false, + status: "", + created_by: _userId, + // "link_to_guidelines": "https://demo.com/guideline", + }); const [guidelineLink, setGuidelineLink] = useState(""); const handleChange = (e) => { @@ -66,13 +73,154 @@ const LernCreatorForm = () => { }); }; - const handleFileChange = (e) => { + const handleIconChange = async (e) => { + const _uuid = uuidv4(); + const assetBody = { + request: { + asset: { + primaryCategory: "asset", + language: ["English"], + code: _uuid, + name: e.target.files[0].name, + mediaType: "image", + mimeType: "image/png", + createdBy: _userId, + }, + }, + }; + try { + const response = await fetch(`${urlConfig.URLS.ICON.CREATE}`, { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify(assetBody), + }); + + if (!response.ok) { + throw new Error("Failed to fetch polls"); + } + + const result = await response.json(); + console.log("suceesss----", result); + + const uploadBody = { + request: { + content: { + name: e.target.files[0].name, + }, + }, + }; + try { + const response = await fetch( + `${urlConfig.URLS.ICON.UPLOAD}${result.result.identifier}`, + { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify(uploadBody), + } + ); + + if (!response.ok) { + throw new Error("Failed to fetch polls"); + } + + const uploadResult = await response.json(); + console.log("upload suceesss------", uploadResult); + // setData(result.result.data); + // setTotalPages(Math.ceil(result.result.totalCount / 10)); + } catch (error) { + console.log("error---", error); + // setError(error.message); + } finally { + // setIsLoading(false); + } + } catch (error) { + console.log("error---", error); + // setError(error.message); + } finally { + // setIsLoading(false); + } + setFormData({ ...formData, - file: e.target.files[0], + submissionIcon: e.target.files[0], }); }; - const handleIconChange = (e) => { + const handleFileChange = async (e) => { + console.log("e.target.files[0]----", e.target.files[0]); + const _uuid = uuidv4(); + const assetBody = { + request: { + content: { + primaryCategory: "Good Practices", + contentType: "Resource", + language: ["English"], + code: _uuid, + name: e.target.files[0].name, + mediaType: "image", + mimeType: e.target.files[0].type, + createdBy: _userId, + }, + }, + }; + try { + const response = await fetch(`${urlConfig.URLS.ASSET.CREATE}`, { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify(assetBody), + }); + + if (!response.ok) { + throw new Error("Failed to fetch polls"); + } + + const result = await response.json(); + console.log("suceesss----", result); + + const uploadBody = { + request: { + content: { + name: formData.title_of_submission, + }, + }, + }; + try { + const response = await fetch( + `${urlConfig.URLS.ASSET.UPLOAD}${result.result.identifier}`, + { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify(uploadBody), + } + ); + + if (!response.ok) { + throw new Error("Failed to fetch polls"); + } + + const uploadResult = await response.json(); + console.log("upload suceesss------", uploadResult); + // setData(result.result.data); + // setTotalPages(Math.ceil(result.result.totalCount / 10)); + } catch (error) { + console.log("error---", error); + // setError(error.message); + } finally { + // setIsLoading(false); + } + } catch (error) { + console.log("error---", error); + // setError(error.message); + } finally { + // setIsLoading(false); + } setFormData({ ...formData, submissionIcon: e.target.files[0], @@ -82,38 +230,118 @@ const LernCreatorForm = () => { const handleCheckboxChange = (e) => { setFormData({ ...formData, - consent: e.target.checked, + consent_checkbox: e.target.checked, }); }; const handleCategoryChange = (e) => { - const category = e.target.value; - setFormData({ ...formData, category }); + const category_of_participation = e.target.value; + setFormData({ ...formData, category_of_participation }); - // Set appropriate guideline link based on category - if (category === "State / UT / SPVs / ULBs / Any Other") { + // Set appropriate guideline link based on category_of_participation + if (category_of_participation === "State / UT / SPVs / ULBs / Any Other") { setGuidelineLink("link-to-state-guidelines.pdf"); - } else if (category === "Industry") { + } else if (category_of_participation === "Industry") { setGuidelineLink("link-to-industry-guidelines.pdf"); - } else if (category === "Academia") { + } else if (category_of_participation === "Academia") { setGuidelineLink("link-to-academia-guidelines.pdf"); } else { setGuidelineLink(""); } }; - const handleSubmit = (action) => { - if (!formData.consent) { + const checkDraftValidations = (formData) => {}; + const checkReviewValidations = (formData) => {}; + const handleSubmit = async (action) => { + if (!formData.consent_checkbox) { alert("You must accept the terms and conditions."); return; } + formData.created_by = _userId; // Handle form submission (draft or review) console.log("Form submitted:", formData); if (action === "draft") { - alert("Saved as draft"); + // Add validations + checkDraftValidations(formData); + try { + const response = await fetch(`${urlConfig.URLS.LEARNATHON.CREATE}`, { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify(formData), + }); + + if (!response.ok) { + throw new Error("Failed to fetch polls"); + } + + const result = await response.json(); + console.log("suceesss"); + // setData(result.result.data); + // setTotalPages(Math.ceil(result.result.totalCount / 10)); + } catch (error) { + console.log("error---", error); + // setError(error.message); + } finally { + // setIsLoading(false); + } + + console.log("Saved as draft"); } else if (action === "review") { - alert("Sent for review"); + checkReviewValidations(formData); + if (isEdit != true) { + try { + const response = await fetch(`${urlConfig.URLS.LEARNATHON.CREATE}`, { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify(formData), + }); + + if (!response.ok) { + throw new Error("Failed to fetch polls"); + } + + const result = await response.json(); + console.log("suceesss"); + // setData(result.result.data); + // setTotalPages(Math.ceil(result.result.totalCount / 10)); + } catch (error) { + console.log("error---", error); + // setError(error.message); + } finally { + // setIsLoading(false); + } + } else { + try { + const response = await fetch(`${urlConfig.URLS.LEARNATHON.UPDATE}`, { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify(formData), + }); + + if (!response.ok) { + throw new Error("Failed to fetch polls"); + } + + const result = await response.json(); + console.log("suceesss"); + // setData(result.result.data); + // setTotalPages(Math.ceil(result.result.totalCount / 10)); + } catch (error) { + console.log("error---", error); + // setError(error.message); + } finally { + // setIsLoading(false); + } + } + + console.log("Sent for review"); } }; @@ -129,7 +357,13 @@ const LernCreatorForm = () => { + + +
); diff --git a/packages/nulp_elite/src/pages/learnathon/lernCreatorForm.js b/packages/nulp_elite/src/pages/learnathon/lernCreatorForm.js index b596460b..80bf1e14 100644 --- a/packages/nulp_elite/src/pages/learnathon/lernCreatorForm.js +++ b/packages/nulp_elite/src/pages/learnathon/lernCreatorForm.js @@ -19,6 +19,7 @@ import Header from "components/header"; const urlConfig = require("../../configs/urlConfig.json"); import * as util from "../../services/utilService"; import { v4 as uuidv4 } from "uuid"; +import { navigate } from "@storybook/addon-links"; // const [globalSearchQuery, setGlobalSearchQuery] = useState(); // // location.state?.globalSearchQuery || undefined // const [searchQuery, setSearchQuery] = useState(globalSearchQuery || ""); @@ -54,6 +55,7 @@ const LernCreatorForm = () => { name_of_organisation: "", name_of_department_group: "", indicative_theme: "", + other_indicative_themes: "", title_of_submission: "", description: "", content_id: null, @@ -262,6 +264,7 @@ const LernCreatorForm = () => { // Handle form submission (draft or review) console.log("Form submitted:", formData); if (action === "draft") { + formData.status = "draft"; // Add validations checkDraftValidations(formData); try { @@ -279,10 +282,12 @@ const LernCreatorForm = () => { const result = await response.json(); console.log("suceesss"); + navigate("/webapp/mylernsubmissions"); // setData(result.result.data); // setTotalPages(Math.ceil(result.result.totalCount / 10)); } catch (error) { - console.log("error---", error); + console.log("error---", error.message); + alert(error.message); // setError(error.message); } finally { // setIsLoading(false); @@ -290,6 +295,7 @@ const LernCreatorForm = () => { console.log("Saved as draft"); } else if (action === "review") { + formData.status = "review"; checkReviewValidations(formData); if (isEdit != true) { try { From 630c625520399a1e884f9fc566d7f7910d90ea76 Mon Sep 17 00:00:00 2001 From: paritshivani Date: Wed, 9 Oct 2024 17:20:14 +0530 Subject: [PATCH 07/17] deployment issues --- .../src/pages/content/joinCourse.js | 2 +- .../pages/learnathon/LernSubmissionTable.js | 1 + .../src/pages/learnathon/lernCreatorForm.js | 52 +++++++++++++++++++ 3 files changed, 54 insertions(+), 1 deletion(-) diff --git a/packages/nulp_elite/src/pages/content/joinCourse.js b/packages/nulp_elite/src/pages/content/joinCourse.js index 325a65d5..78686e56 100644 --- a/packages/nulp_elite/src/pages/content/joinCourse.js +++ b/packages/nulp_elite/src/pages/content/joinCourse.js @@ -632,7 +632,7 @@ const JoinCourse = () => { {" "} {t("LEAVE_COURSE")} - } + )}
diff --git a/packages/nulp_elite/src/pages/learnathon/LernSubmissionTable.js b/packages/nulp_elite/src/pages/learnathon/LernSubmissionTable.js index fda0cfb8..b976ca8e 100644 --- a/packages/nulp_elite/src/pages/learnathon/LernSubmissionTable.js +++ b/packages/nulp_elite/src/pages/learnathon/LernSubmissionTable.js @@ -38,6 +38,7 @@ const LernSubmissionTable = () => { const _userId = util.userId(); // Assuming util.userId() is defined const urlConfig = require("../../configs/urlConfig.json"); const [dialogOpen, setDialogOpen] = useState(false); + const handleDialogOpen = () => { setDialogOpen(true); }; diff --git a/packages/nulp_elite/src/pages/learnathon/lernCreatorForm.js b/packages/nulp_elite/src/pages/learnathon/lernCreatorForm.js index 80bf1e14..3f00366f 100644 --- a/packages/nulp_elite/src/pages/learnathon/lernCreatorForm.js +++ b/packages/nulp_elite/src/pages/learnathon/lernCreatorForm.js @@ -20,6 +20,8 @@ const urlConfig = require("../../configs/urlConfig.json"); import * as util from "../../services/utilService"; import { v4 as uuidv4 } from "uuid"; import { navigate } from "@storybook/addon-links"; +import { useNavigate, useLocation } from "react-router-dom"; + // const [globalSearchQuery, setGlobalSearchQuery] = useState(); // // location.state?.globalSearchQuery || undefined // const [searchQuery, setSearchQuery] = useState(globalSearchQuery || ""); @@ -66,6 +68,56 @@ const LernCreatorForm = () => { // "link_to_guidelines": "https://demo.com/guideline", }); const [guidelineLink, setGuidelineLink] = useState(""); + const location = useLocation(); + const queryString = location.search; + let contentId = queryString.startsWith("?do_") ? queryString.slice(1) : null; + useEffect(() => { + fetchData(); + }, [contentId]); + + const fetchData = async () => { + const requestBody = { + request: { + filters: { + created_by: _userId, + learnthon_content_id: contentId, + }, + }, + }; + try { + const response = await fetch(`${urlConfig.URLS.LEARNATHON.LIST}`, { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify(requestBody), + }); + + if (!response.ok) { + throw new Error("Failed to fetch polls"); + } + + const result = await response.json(); + console.log("suceesss----", result); + console.log(result.result); + } catch (error) { + console.log("error---", error); + // setError(error.message); + } finally { + // setIsLoading(false); + } + + // Example API endpoint with limit, offset, and search params + // const apiUrl = `https://api.example.com/submissions?limit=${rowsPerPage}&offset=${ + // page * rowsPerPage + // }&search=${search}`; + // const response = await fetch(apiUrl); + + // const result = await response.json(); + // console.log(submissions); + // setData(submissions.result.data); + // setTotalRows(result.totalCount); + }; const handleChange = (e) => { const { name, value } = e.target; From 4c1bed47298d2e8e1b72077172940e23b7853765 Mon Sep 17 00:00:00 2001 From: paritshivani Date: Wed, 9 Oct 2024 17:38:04 +0530 Subject: [PATCH 08/17] deployment issues --- packages/nulp_elite/src/configs/routeConfig.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/nulp_elite/src/configs/routeConfig.json b/packages/nulp_elite/src/configs/routeConfig.json index 1412e1d1..4d884b00 100644 --- a/packages/nulp_elite/src/configs/routeConfig.json +++ b/packages/nulp_elite/src/configs/routeConfig.json @@ -86,7 +86,7 @@ }, "LEARNATHON": { "CREATELEARNCONTENT": "/webapp/learnthon", - "SUBMISSIONLIST":"webapp/SubmissionList" + "SUBMISSIONLIST": "webapp/SubmissionList", "MYLERNSUBMISSION": "/webapp/mylernsubmissions" } } From 4ae73007bbc3fb0a420cae4a2b61336d0400a1f3 Mon Sep 17 00:00:00 2001 From: sonaligarud Date: Wed, 9 Oct 2024 17:50:55 +0530 Subject: [PATCH 09/17] resolved lern modal bug --- packages/nulp_elite/src/App.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/nulp_elite/src/App.js b/packages/nulp_elite/src/App.js index 7feedc21..ae591dda 100644 --- a/packages/nulp_elite/src/App.js +++ b/packages/nulp_elite/src/App.js @@ -327,6 +327,7 @@ function App() { ))} + {/* */} From b570199ce48f0de8a4eef8aed71be4350f680c5f Mon Sep 17 00:00:00 2001 From: sonaligarud Date: Thu, 10 Oct 2024 13:10:44 +0530 Subject: [PATCH 10/17] Task #228528 -[FE] - Registration side changes for learnathon (webapp) with updated figma UI and funtionality --- .../public/locales/be/translation.json | 8 +- .../public/locales/en/translation.json | 8 +- .../public/locales/gg/translation.json | 8 +- .../public/locales/hi/translation.json | 8 +- .../public/locales/ma/translation.json | 8 +- .../public/locales/mal/translation.json | 8 +- .../public/locales/ta/translation.json | 8 +- .../public/locales/te/translation.json | 8 +- .../src/components/learnathon/LernModal.js | 94 ++++++++++++++-- .../nulp_elite/src/configs/urlConfig.json | 31 ++---- .../nulp_elite/src/pages/search/DomainList.js | 102 ++++++++++++++---- packages/nulp_elite/src/styles/style.css | 2 +- 12 files changed, 218 insertions(+), 75 deletions(-) diff --git a/packages/nulp_elite/public/locales/be/translation.json b/packages/nulp_elite/public/locales/be/translation.json index 53e88aa2..e222c345 100644 --- a/packages/nulp_elite/public/locales/be/translation.json +++ b/packages/nulp_elite/public/locales/be/translation.json @@ -322,8 +322,10 @@ "NO_CHAT_REQUEST": "কোনো চ্যাট অনুরোধ নেই", "PHONE":"ফোন", "PHONE_NUMBER":"(+91 11) 24617517, 24617543, 24617595", - "LERN_title":"Learnathon 2.0", - "LERN_MESSAGE":"Learnathon 2.0 20/09/2024 থেকে 20/10/2024 পর্যন্ত শুরু হয়েছে। আপনি এখন আপনার জমাগুলি তৈরি এবং ভাগ করতে পারেন!", "CREATE_CONTENT":"সামগ্রী তৈরি করুন", - "REQUEST_TO_CREATE":"তৈরি করার অনুরোধ" + "REQUEST_TO_CREATE":"তৈরি করার অনুরোধ", + "PARTICIPATE_NOW":"এখনই অংশগ্রহণ করুন", + "LERN_title": "The Learnathon 2.0 শুরু হয়েছে!", + "LERN_MESSAGE": "যেখানে শহুরে অনুশীলনকারীরা সহযোগিতামূলক শিক্ষাকে উৎসাহিত করার জন্য সমাধানগুলি ভাগ করে নেয়।", + "LERN_MESSAGE_LINE_TWO":"Learnathon 2.0 18ই নভেম্বর 2024 এ চালু হয়েছে এবং 20শে ডিসেম্বর 2024 পর্যন্ত চলবে। এখনই আপনার শহুরে সমাধান জমা দিন!" } diff --git a/packages/nulp_elite/public/locales/en/translation.json b/packages/nulp_elite/public/locales/en/translation.json index 9b9744a9..ea0703cd 100644 --- a/packages/nulp_elite/public/locales/en/translation.json +++ b/packages/nulp_elite/public/locales/en/translation.json @@ -319,10 +319,10 @@ "PHONE": "Phone", "PHONE_NUMBER": "(+91 11) 24617517, 24617543, 24617595", "SESSION_TIMEOUT_MESSAGE": "Failed to fetch data.please try again.", - "LERN_title": "The Learnathon Has Begun!", - "LERN_MESSAGE": "Where cities and states share solutions to foster collaborating learning!", - "LERN_MESSAGE_LINE_TWO":"Learnathon 2.0 has started from 20/09/2024 to 20/10/2024. You can now create and share your submissions!", "CREATE_CONTENT": "Create Content", "REQUEST_TO_CREATE": "Request to Create", - "PARTICIPATE_NOW":"Participate Now" + "PARTICIPATE_NOW":"Participate Now", + "LERN_title": "The Learnathon 2.0 Has Begun!", + "LERN_MESSAGE": "Where urban practitioners share solutions to foster collaborative learning.", + "LERN_MESSAGE_LINE_TWO":"Learnathon 2.0 launched on 18th November 2024 and will continue until 20th December 2024. Submit your urban solutions now!" } diff --git a/packages/nulp_elite/public/locales/gg/translation.json b/packages/nulp_elite/public/locales/gg/translation.json index af24cd87..b099cc22 100644 --- a/packages/nulp_elite/public/locales/gg/translation.json +++ b/packages/nulp_elite/public/locales/gg/translation.json @@ -325,8 +325,10 @@ "NO_CHAT_REQUEST": "કોઈ ચેટ વિનંતી નથી", "PHONE":"ફોન", "PHONE_NUMBER":"(+91 11) 24617517, 24617543, 24617595", - "LERN_title":"લર્નથોન 2.0", - "LERN_MESSAGE":"લર્નથોન 2.0 20/09/2024 થી 20/10/2024 સુધી શરૂ થઈ છે. તમે હવે તમારા સબમિશન બનાવી અને શેર કરી શકો છો!", "CREATE_CONTENT":"સામગ્રી બનાવો", - "REQUEST_TO_CREATE":"બનાવવાની વિનંતી" + "REQUEST_TO_CREATE":"બનાવવાની વિનંતી", + "PARTICIPATE_NOW":"હવે ભાગ લો", + "LERN_title": "ધ લર્નથોન 2.0 શરૂ થઈ ગયું છે!", + "LERN_MESSAGE": "જ્યાં શહેરી પ્રેક્ટિશનરો સહયોગી શિક્ષણને પ્રોત્સાહન આપવા માટે ઉકેલો શેર કરે છે.", + "LERN_MESSAGE_LINE_TWO":"Learnathon 2.0 18મી નવેમ્બર 2024 ના રોજ લોન્ચ થયું અને 20મી ડિસેમ્બર 2024 સુધી ચાલુ રહેશે. તમારા શહેરી ઉકેલો હમણાં જ સબમિટ કરો!" } diff --git a/packages/nulp_elite/public/locales/hi/translation.json b/packages/nulp_elite/public/locales/hi/translation.json index 9429b27a..716a1f4c 100644 --- a/packages/nulp_elite/public/locales/hi/translation.json +++ b/packages/nulp_elite/public/locales/hi/translation.json @@ -316,8 +316,10 @@ "NO_CHAT_REQUEST": "कोई चैट अनुरोध नहीं", "PHONE":"फोन", "PHONE_NUMBER":"(+91 11) 24617517, 24617543, 24617595", - "LERN_title":"लर्नथॉन 2.0", - "LERN_MESSAGE":"लर्नथॉन 2.0 20/09/2024 से 20/10/2024 तक शुरू हो चुका है। अब आप अपने सबमिशन बना और साझा कर सकते हैं!", "CREATE_CONTENT":"सामग्री बनाएँ", - "REQUEST_TO_CREATE":"बनाने का अनुरोध" + "REQUEST_TO_CREATE":"बनाने का अनुरोध", + "PARTICIPATE_NOW":"अभी भाग लें", + "LERN_title": "लर्नथॉन 2.0 शुरू हो गया है!", + "LERN_MESSAGE": "जहां शहरी व्यवसायी सहयोगात्मक शिक्षा को बढ़ावा देने के लिए समाधान साझा करते हैं।", + "LERN_MESSAGE_LINE_TWO":"लर्नथॉन 2.0 18 नवंबर 2024 को लॉन्च हुआ और 20 दिसंबर 2024 तक जारी रहेगा। अब अपना शहरी समाधान सबमिट करें!" } diff --git a/packages/nulp_elite/public/locales/ma/translation.json b/packages/nulp_elite/public/locales/ma/translation.json index 6aad9d48..35510d44 100644 --- a/packages/nulp_elite/public/locales/ma/translation.json +++ b/packages/nulp_elite/public/locales/ma/translation.json @@ -317,9 +317,11 @@ "NO_CHAT_REQUEST": "चॅट विनंती नाही", "PHONE":"फोन", "PHONE_NUMBER":"(+91 11) 24617517, 24617543, 24617595", - "LERN_title":"लर्नथॉन 2.0", - "LERN_MESSAGE":"लर्नथॉन 2.0 20/09/2024 ते 20/10/2024 पर्यंत सुरू झाली आहे. तुम्ही आता तुमचे सबमिशन तयार आणि शेअर करू शकता!", "CREATE_CONTENT":"सामग्री तयार करा", - "REQUEST_TO_CREATE":"तयार करण्याची विनंती" + "REQUEST_TO_CREATE":"तयार करण्याची विनंती", + "PARTICIPATE_NOW":"आता सहभागी व्हा", + "LERN_title": "लर्नथॉन २.० सुरु झाली आहे!", + "LERN_MESSAGE": "जेथे शहरी अभ्यासक सहयोगी शिक्षणाला चालना देण्यासाठी उपाय सामायिक करतात.", + "LERN_MESSAGE_LINE_TWO":"Learnathon 2.0 18 नोव्हेंबर 2024 ला लॉन्च झाला आणि 20 डिसेंबर 2024 पर्यंत सुरू राहील. तुमचे शहरी उपाय आता सबमिट करा!" } diff --git a/packages/nulp_elite/public/locales/mal/translation.json b/packages/nulp_elite/public/locales/mal/translation.json index 2d5115aa..fcb4a8df 100644 --- a/packages/nulp_elite/public/locales/mal/translation.json +++ b/packages/nulp_elite/public/locales/mal/translation.json @@ -317,8 +317,10 @@ "NO_CHAT_REQUEST": "ചാറ്റ് അഭ്യര്‍ത്ഥനയില്ല", "PHONE":"ഫോൺ", "PHONE_NUMBER":"(+91 11) 24617517, 24617543, 24617595", - "LERN_title":"ലേണത്തോൺ 2.0", - "LERN_MESSAGE":"ലേണത്തോൺ 2.0 20/09/2024 മുതൽ 20/10/2024 വരെ ആരംഭിച്ചു. നിങ്ങൾക്ക് ഇപ്പോൾ നിങ്ങളുടെ സമർപ്പിക്കലുകൾ സൃഷ്ടിക്കാനും പങ്കിടാനും കഴിയും!", "CREATE_CONTENT":"ഉള്ളടക്കം സൃഷ്ടിക്കുക", - "REQUEST_TO_CREATE":"സൃഷ്ടിക്കാനുള്ള അഭ്യർത്ഥന" + "REQUEST_TO_CREATE":"സൃഷ്ടിക്കാനുള്ള അഭ്യർത്ഥന", + "PARTICIPATE_NOW":"ഇപ്പോൾ പങ്കെടുക്കുക", + "LERN_title": "ലേണത്തോൺ 2.0 ആരംഭിച്ചു!", + "LERN_MESSAGE": "സഹകരണ പഠനം പ്രോത്സാഹിപ്പിക്കുന്നതിന് നഗരപരിശീലകർ പരിഹാരങ്ങൾ പങ്കിടുന്നിടത്ത്.", + "LERN_MESSAGE_LINE_TWO":"Learnathon 2.0 2024 നവംബർ 18-ന് സമാരംഭിച്ചു, 2024 ഡിസംബർ 20 വരെ തുടരും. നിങ്ങളുടെ നഗര പരിഹാരങ്ങൾ ഇപ്പോൾ സമർപ്പിക്കുക!" } diff --git a/packages/nulp_elite/public/locales/ta/translation.json b/packages/nulp_elite/public/locales/ta/translation.json index 89537f35..bc93f858 100644 --- a/packages/nulp_elite/public/locales/ta/translation.json +++ b/packages/nulp_elite/public/locales/ta/translation.json @@ -342,8 +342,10 @@ "NO_CHAT_REQUEST": "சாட் கோரிக்கை இல்லை", "PHONE":"தொலைபேசி", "PHONE_NUMBER":"(+91 11) 24617517, 24617543, 24617595", - "LERN_title":"கற்றல் 2.0", - "LERN_MESSAGE":"கற்றல் 2.0 20/09/2024 முதல் 20/10/2024 வரை தொடங்கியது. நீங்கள் இப்போது உங்கள் சமர்ப்பிப்புகளை உருவாக்கி பகிரலாம்!", "CREATE_CONTENT":"உள்ளடக்கத்தை உருவாக்கவும்", - "REQUEST_TO_CREATE":"உருவாக்க கோரிக்கை" + "REQUEST_TO_CREATE":"உருவாக்க கோரிக்கை", + "PARTICIPATE_NOW":"இப்போது பங்கேற்கவும்", + "LERN_title": "The Learnathon 2.0 Has Begun!", + "LERN_MESSAGE": "நகர்ப்புற பயிற்சியாளர்கள் கூட்டுக் கற்றலை வளர்ப்பதற்கான தீர்வுகளை எங்கே பகிர்ந்து கொள்கிறார்கள்.", + "LERN_MESSAGE_LINE_TWO":"Learnathon 2.0 18 நவம்பர் 2024 அன்று தொடங்கப்பட்டது மற்றும் 20 டிசம்பர் 2024 வரை தொடரும். உங்கள் நகர்ப்புற தீர்வுகளை இப்போதே சமர்ப்பிக்கவும்!" } diff --git a/packages/nulp_elite/public/locales/te/translation.json b/packages/nulp_elite/public/locales/te/translation.json index 442d41db..fde633d3 100644 --- a/packages/nulp_elite/public/locales/te/translation.json +++ b/packages/nulp_elite/public/locales/te/translation.json @@ -281,8 +281,10 @@ "PHONE":"ఫోన్", "PHONE_NUMBER":"(+91 11) 24617517, 24617543, 24617595", "WHAT_DO_YOU_WANT_TO_LEARN_TODAY":"ఈరోజు మీరు ఏమి నేర్చుకోవాలనుకుంటున్నారు", - "LERN_title":"లెర్నాథాన్ 2.0", - "LERN_MESSAGE":"లెర్నాథాన్ 2.0 20/09/2024 నుండి 20/10/2024 వరకు ప్రారంభమైంది. మీరు ఇప్పుడు మీ సమర్పణలను సృష్టించవచ్చు మరియు భాగస్వామ్యం చేయవచ్చు!", "CREATE_CONTENT":"కంటెంట్‌ని సృష్టించండి", - "REQUEST_TO_CREATE":"సృష్టించడానికి అభ్యర్థన" + "REQUEST_TO_CREATE":"సృష్టించడానికి అభ్యర్థన", + "PARTICIPATE_NOW":"ఇప్పుడే పాల్గొనండి", + "LERN_title": "లెర్నాథాన్ 2.0 ప్రారంభమైంది!", + "LERN_MESSAGE": "పట్టణ అభ్యాసకులు సహకార అభ్యాసాన్ని ప్రోత్సహించడానికి పరిష్కారాలను పంచుకునే చోట.", + "LERN_MESSAGE_LINE_TWO":"Learnathon 2.0 18 నవంబర్ 2024న ప్రారంభించబడింది మరియు 20 డిసెంబర్ 2024 వరకు కొనసాగుతుంది. మీ పట్టణ పరిష్కారాలను ఇప్పుడే సమర్పించండి!" } diff --git a/packages/nulp_elite/src/components/learnathon/LernModal.js b/packages/nulp_elite/src/components/learnathon/LernModal.js index d624547d..50be635f 100644 --- a/packages/nulp_elite/src/components/learnathon/LernModal.js +++ b/packages/nulp_elite/src/components/learnathon/LernModal.js @@ -1,15 +1,19 @@ import React, { useState, useEffect } from 'react'; -import { Modal, Box, Typography, IconButton, Button, Grid } from '@mui/material'; +import { Modal, Box, IconButton, Button, Grid } from '@mui/material'; import * as util from "services/utilService"; const urlConfig = require("../../configs/urlConfig.json"); import CloseIcon from "@mui/icons-material/Close"; import Divider from '@mui/material/Divider'; import { useTranslation } from "react-i18next"; import { useNavigate } from 'react-router-dom'; +import axios from "axios"; +import ToasterCommon from 'pages/ToasterCommon'; const LernModal = () => { const { t } = useTranslation(); const navigate = useNavigate(); + const [toasterMessage, setToasterMessage] = useState(""); + const [toasterOpen, setToasterOpen] = useState(false); const [isModalOpen, setIsModalOpen] = useState(() => { // Check if the modal has been shown in the current session const isModalShown = sessionStorage.getItem('isModalShown'); @@ -17,24 +21,87 @@ const LernModal = () => { }); const [lernUser, setLernUser] = useState([]); + const [responseCode,setResponseCode] = useState([]); + const [orgId,setOrgId] = useState(); const _userId = util.userId(); const handleClose = () => { setIsModalOpen(false); sessionStorage.setItem('isModalShown', 'true'); // Set flag to not show modal again }; + const fetchData = async () => { try { const url = `${urlConfig.URLS.LEARNER_PREFIX}${urlConfig.URLS.USER.GET_PROFILE}${_userId}`; const response = await fetch(url); const data = await response.json(); const rolesData = data.result.response.channel; + const organizationId=data.result.response.organisations[0].organisationId; + setOrgId(organizationId); setLernUser(rolesData); } catch (error) { console.error("Error fetching user data:", error); } }; + const checkAccess = async () => { + try { + const url = `${urlConfig.URLS.CHECK_USER_ACCESS}`; + const response = await fetch(url); + const data = await response.json(); + + const userID = data.result.data; + const user = userID.find((user) => user.user_id === _userId); + + if (!user) { + console.log("User ID not found. Calling fetchUserAccess..."); + fetchUserAccess(); + } else if (user.creator_access === true) { + navigate('/webapp/mylernsubmissions'); + setIsModalOpen(false); + console.log("User ID found with creator access. No need to call fetchUserAccess."); + } else if (user.creator_access === false) { + console.log("User ID found but no creator access. Calling fetchUserAccess..."); + fetchUserAccess(); + } + } catch (error) { + console.error("Error fetching user data:", error); + } + }; + + + let responsecode; + const fetchUserAccess = async () => { + try { + const url = `${urlConfig.URLS.PROVIDE_ACCESS}`; + + const response = await axios.post( + url, + { + request : { + organisationId: "0137506576041902087", + roles: [ "PUBLIC", + "CONTENT_CREATOR"], + userId: _userId, + } + }, + ); + const data = await response.data; + const result = data.result.data.responseCode; + responsecode = result; + setResponseCode(result); + if(result === "OK"){ + navigate('webapp/mylernsubmissions'); + setIsModalOpen(false) + }else{ + setToasterMessage("Something went wrong ! Please try again later") + } + } catch (error) { + console.log('error' ,error); + } + }; + + // Fetch data when the component mounts or _userId changes useEffect(() => { if (_userId) { @@ -60,27 +127,32 @@ const LernModal = () => { md: '600px', }, }; - console.log(lernUser, 'lernUser form modal'); - const handleCardClick = () => { + const handleCardClick = async () => { if (lernUser === 'nulp-learn') { - // Navigate to /webapp/learnthon if lernUser is 'nulp-learn' - navigate('/webapp/mylernsubmissions'); - setIsModalOpen(false); - } else { navigate('/webapp/mylernsubmissions'); - setIsModalOpen(false); + setIsModalOpen(false); // Close the modal + } else{ + await checkAccess(); } }; + return (
+ {toasterMessage && ( + + + + )} + @@ -99,7 +171,7 @@ const LernModal = () => { - + { /> - + {t("LERN_MESSAGE")} @@ -122,7 +194,7 @@ const LernModal = () => { {t("PARTICIPATE_NOW")} ) : ( - )} diff --git a/packages/nulp_elite/src/configs/urlConfig.json b/packages/nulp_elite/src/configs/urlConfig.json index 2bf191c7..67873fbd 100644 --- a/packages/nulp_elite/src/configs/urlConfig.json +++ b/packages/nulp_elite/src/configs/urlConfig.json @@ -49,8 +49,10 @@ "framework": "board,gradeLevel,medium,class,subject" }, "URLS": { - "CUSTOM_EVENT_FETCH_RECORDINGS": "/custom_event/fetch_recordings?event_id=", + "CUSTOM_EVENT_FETCH_RECORDINGS":"/custom_event/fetch_recordings?event_id=", "LEARNER_PREFIX": "/learner/", + "PROVIDE_ACCESS": "/learnathon/access/provide", + "CHECK_USER_ACCESS":"/learnathon/get/creators", "DISCUSSIONS_FORUM_PREFIX": "/discussion/", "DEVICE_PREFIX": "/device/", "CERT_REG_PREFIX": "/certreg/", @@ -144,7 +146,7 @@ "ATTACH_CERTIFICATE": "v1/template/add", "CREATE_CERT_TEMPLATE": "asset/v1/create", "UPLOAD_CERT_TEMPLATE": "asset/v1/upload", - "CUSTOM_CERTIFICATE_CREATE": "/custom_event/certificate/create" + "CUSTOM_CERTIFICATE_CREATE": "/custom_event/certificate/create" }, "COMPOSITE": { "SEARCH": "composite/v1/search", @@ -342,12 +344,8 @@ "RETIRE": "assessment/v3/itemsets/retire" }, "ASSET": { - "CREATE": "/action/content/v3/create", - "UPDATE": "/action/content/v3/upload/url/" - }, - "ICON": { - "CREATE": "/action/asset/v1/create", - "UPLOAD": "/action/content/v3/upload/url/" + "CREATE": "content/v3/create", + "UPDATE": "content/v3/upload" }, "ITEMSET": { "CREATE": "itemset/v3/create", @@ -446,20 +444,13 @@ "USER_UPDATE": "/polls/user/update" }, "FEEDBACK": { - "CREATE": "/custom_feedback/create", - "LIST": "/custom_feedback/list" + "CREATE" : "/custom_feedback/create", + "LIST" : "/custom_feedback/list" }, - "NOTIFICATION": { + "NOTIFICATION" : { "READ": "notification/v1/feed/read/", - "UPDATE": "notification/v1/feed/update", - "DELETE": "notification/v1/feed/delete" - }, - "LEARNATHON": { - "CREATE": "/learnathon/content/create", - "LIST": "/learnathon/content/list", - "UPDATE": "/learnathon/content/update", - "DELETE": "/learnathon/content/delete", - "USER_LIST": "/learnathon/..." + "UPDATE" : "notification/v1/feed/update", + "DELETE" : "notification/v1/feed/delete" } } } diff --git a/packages/nulp_elite/src/pages/search/DomainList.js b/packages/nulp_elite/src/pages/search/DomainList.js index cd13c522..ac69c5c9 100644 --- a/packages/nulp_elite/src/pages/search/DomainList.js +++ b/packages/nulp_elite/src/pages/search/DomainList.js @@ -29,7 +29,8 @@ import SkeletonLoader from "components/skeletonLoader"; import FloatingChatIcon from "components/FloatingChatIcon"; import * as util from "../../services/utilService"; import { Loading } from "@shiksha/common-lib"; -import { Button} from '@mui/material'; +import { Button } from '@mui/material'; +import axios from "axios"; const Item = styled(Paper)(({ theme }) => ({ @@ -95,6 +96,70 @@ const DomainList = ({ globalSearchQuery }) => { } }, [_userId]); + const checkAccess = async () => { + try { + const url = `${urlConfig.URLS.CHECK_USER_ACCESS}`; + const response = await fetch(url); + const data = await response.json(); + + const userID = data.result.data; + const user = userID.find((user) => user.user_id === _userId); + + if (!user) { + console.log("User ID not found. Calling fetchUserAccess..."); + fetchUserAccess(); + } else if (user.creator_access === true) { + navigate('/webapp/mylernsubmissions'); + console.log("User ID found with creator access. No need to call fetchUserAccess."); + } else if (user.creator_access === false) { + console.log("User ID found but no creator access. Calling fetchUserAccess..."); + fetchUserAccess(); + } + } catch (error) { + console.error("Error fetching user data:", error); + } + }; + + + let responsecode; + const fetchUserAccess = async () => { + try { + const url = `${urlConfig.URLS.PROVIDE_ACCESS}`; + + const response = await axios.post( + url, + { + request : { + organisationId: "0137506576041902087", + roles: [ "PUBLIC", + "CONTENT_CREATOR"], + userId: _userId, + } + }, + ); + const data = await response.data; + const result = data.result.data.responseCode; + responsecode = result; + setResponseCode(result); + if(result === "OK"){ + navigate('webapp/mylernsubmissions'); + }else{ + setToasterMessage("Something went wrong ! Please try again later") + } + } catch (error) { + console.log('error' ,error); + } + }; + + const handleCheckUser = async () => { + if (lernUser === 'nulp-learn') { + navigate('/webapp/mylernsubmissions'); + } else{ + await checkAccess(); + } + }; + + const showErrorMessage = (msg) => { setToasterMessage(msg); setTimeout(() => { @@ -398,14 +463,7 @@ const DomainList = ({ globalSearchQuery }) => { } }; console.log(lernUser, 'lernUser from dashboard'); - const handleCheckUser = () => { - if (lernUser === 'nulp-learn') { - // Navigate to /webapp/learnthon if lernUser is 'nulp-learn' - navigate('/webapp/mylernsubmissions'); - } else { - navigate('/webapp/mylernsubmissions'); - } - }; + return (
@@ -522,17 +580,25 @@ const DomainList = ({ globalSearchQuery }) => { - {lernUser === 'nulp-learn' ? ( - - ) : ( - - )} + {lernUser === 'nulp-learn' ? ( + + ) : ( + + )} + + {toasterMessage && ( + + + + )} + diff --git a/packages/nulp_elite/src/styles/style.css b/packages/nulp_elite/src/styles/style.css index 0e7305ac..76e96417 100644 --- a/packages/nulp_elite/src/styles/style.css +++ b/packages/nulp_elite/src/styles/style.css @@ -3740,7 +3740,7 @@ input:required::after { background-color: #fff; padding: 30px; border-radius: 4px; -border: 3px solid #15353f; +border: 4px solid #15353f; margin: 10px; animation: blink-border 1s infinite alternate; } From e0cd4fd0f06ee2af8e7f4ef777ecbee839994838 Mon Sep 17 00:00:00 2001 From: paritshivani Date: Thu, 10 Oct 2024 17:18:54 +0530 Subject: [PATCH 11/17] learnathon form --- .../nulp_elite/src/pages/learnathon/lernCreatorForm.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/nulp_elite/src/pages/learnathon/lernCreatorForm.js b/packages/nulp_elite/src/pages/learnathon/lernCreatorForm.js index 3f00366f..73829bfc 100644 --- a/packages/nulp_elite/src/pages/learnathon/lernCreatorForm.js +++ b/packages/nulp_elite/src/pages/learnathon/lernCreatorForm.js @@ -80,7 +80,7 @@ const LernCreatorForm = () => { request: { filters: { created_by: _userId, - learnthon_content_id: contentId, + learnathon_content_id: contentId, }, }, }; @@ -161,7 +161,7 @@ const LernCreatorForm = () => { const uploadBody = { request: { content: { - name: e.target.files[0].name, + fileName: e.target.files[0].name, }, }, }; @@ -239,13 +239,13 @@ const LernCreatorForm = () => { const uploadBody = { request: { content: { - name: formData.title_of_submission, + fileName: formData.title_of_submission, }, }, }; try { const response = await fetch( - `${urlConfig.URLS.ASSET.UPLOAD}${result.result.identifier}`, + `${urlConfig.URLS.ASSET.UPDATE}${result.result.identifier}`, { method: "POST", headers: { From c31fb580d34df1f54faf6d60afc65a12e2d58a4d Mon Sep 17 00:00:00 2001 From: paritshivani Date: Thu, 10 Oct 2024 17:24:45 +0530 Subject: [PATCH 12/17] learnathon form --- .../src/pages/learnathon/lernCreatorForm.js | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/packages/nulp_elite/src/pages/learnathon/lernCreatorForm.js b/packages/nulp_elite/src/pages/learnathon/lernCreatorForm.js index 73829bfc..53bd8e8a 100644 --- a/packages/nulp_elite/src/pages/learnathon/lernCreatorForm.js +++ b/packages/nulp_elite/src/pages/learnathon/lernCreatorForm.js @@ -183,6 +183,10 @@ const LernCreatorForm = () => { const uploadResult = await response.json(); console.log("upload suceesss------", uploadResult); + setFormData({ + ...formData, + icon: uploadResult.result.identifier, + }); // setData(result.result.data); // setTotalPages(Math.ceil(result.result.totalCount / 10)); } catch (error) { @@ -197,11 +201,6 @@ const LernCreatorForm = () => { } finally { // setIsLoading(false); } - - setFormData({ - ...formData, - submissionIcon: e.target.files[0], - }); }; const handleFileChange = async (e) => { console.log("e.target.files[0]----", e.target.files[0]); @@ -261,6 +260,10 @@ const LernCreatorForm = () => { const uploadResult = await response.json(); console.log("upload suceesss------", uploadResult); + setFormData({ + ...formData, + content_id: uploadResult.result.identifier, + }); // setData(result.result.data); // setTotalPages(Math.ceil(result.result.totalCount / 10)); } catch (error) { @@ -275,10 +278,6 @@ const LernCreatorForm = () => { } finally { // setIsLoading(false); } - setFormData({ - ...formData, - submissionIcon: e.target.files[0], - }); }; const handleCheckboxChange = (e) => { From dcf13cdd0844f9762452633b902fa2266cad3828 Mon Sep 17 00:00:00 2001 From: paritshivani Date: Thu, 10 Oct 2024 21:44:25 +0530 Subject: [PATCH 13/17] edit and validations --- .../pages/learnathon/LernSubmissionTable.js | 5 +- .../src/pages/learnathon/lernCreatorForm.js | 278 +++++++++++++----- 2 files changed, 211 insertions(+), 72 deletions(-) diff --git a/packages/nulp_elite/src/pages/learnathon/LernSubmissionTable.js b/packages/nulp_elite/src/pages/learnathon/LernSubmissionTable.js index b976ca8e..d9e92381 100644 --- a/packages/nulp_elite/src/pages/learnathon/LernSubmissionTable.js +++ b/packages/nulp_elite/src/pages/learnathon/LernSubmissionTable.js @@ -23,13 +23,14 @@ import DialogContent from "@mui/material/DialogContent"; import { Edit, Visibility, Delete } from "@mui/icons-material"; import SearchIcon from "@mui/icons-material/Search"; import submissions from "./lernSubmission.json"; -import { navigate } from "@storybook/addon-links"; +import { useNavigate, useLocation } from "react-router-dom"; + import Footer from "components/Footer"; import Header from "components/header"; const LernSubmissionTable = () => { const { t } = useTranslation(); - + const navigate = useNavigate(); const [data, setData] = useState([]); const [page, setPage] = useState(0); const [rowsPerPage, setRowsPerPage] = useState(5); diff --git a/packages/nulp_elite/src/pages/learnathon/lernCreatorForm.js b/packages/nulp_elite/src/pages/learnathon/lernCreatorForm.js index 53bd8e8a..1b765410 100644 --- a/packages/nulp_elite/src/pages/learnathon/lernCreatorForm.js +++ b/packages/nulp_elite/src/pages/learnathon/lernCreatorForm.js @@ -19,7 +19,6 @@ import Header from "components/header"; const urlConfig = require("../../configs/urlConfig.json"); import * as util from "../../services/utilService"; import { v4 as uuidv4 } from "uuid"; -import { navigate } from "@storybook/addon-links"; import { useNavigate, useLocation } from "react-router-dom"; // const [globalSearchQuery, setGlobalSearchQuery] = useState(); @@ -47,6 +46,11 @@ const themes = [ const LernCreatorForm = () => { const _userId = util.userId(); // Assuming util.userId() is defined + const [isEdit, setIsEdit] = useState(false); + const [isNotDraft, setIsNotDraft] = useState(false); + const [userInfo, setUserInfo] = useState(); + const navigate = useNavigate(); + const [errors, setErrors] = useState({}); const [formData, setFormData] = useState({ user_name: "", @@ -70,9 +74,12 @@ const LernCreatorForm = () => { const [guidelineLink, setGuidelineLink] = useState(""); const location = useLocation(); const queryString = location.search; - let contentId = queryString.startsWith("?do_") ? queryString.slice(1) : null; + let contentId = queryString.startsWith("?do_") + ? queryString.slice(1) + : undefined; useEffect(() => { fetchData(); + getUserData(); }, [contentId]); const fetchData = async () => { @@ -84,39 +91,100 @@ const LernCreatorForm = () => { }, }, }; - try { - const response = await fetch(`${urlConfig.URLS.LEARNATHON.LIST}`, { - method: "POST", - headers: { - "Content-Type": "application/json", - }, - body: JSON.stringify(requestBody), - }); + if (contentId) { + try { + const response = await fetch(`${urlConfig.URLS.LEARNATHON.LIST}`, { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify(requestBody), + }); - if (!response.ok) { - throw new Error("Failed to fetch polls"); - } + if (!response.ok) { + throw new Error("Failed to fetch polls"); + } - const result = await response.json(); - console.log("suceesss----", result); - console.log(result.result); - } catch (error) { - console.log("error---", error); - // setError(error.message); - } finally { - // setIsLoading(false); + const result = await response.json(); + setIsEdit(true); + const readResponse = result.result.data[0]; + if (result.result.data[0].status != "draft") { + setIsNotDraft(true); + } + // Update formData with the response data + setFormData((prevFormData) => ({ + ...prevFormData, + user_name: readResponse.user_name || "", + email: readResponse.email || "", + mobile_number: readResponse.mobile_number || "", + icon: readResponse.icon || "", + category_of_participation: + readResponse.category_of_participation || "", + name_of_organisation: readResponse.name_of_organisation || "", + name_of_department_group: readResponse.name_of_department_group || "", + indicative_theme: readResponse.indicative_theme || "", + other_indicative_themes: readResponse.other_indicative_themes || "", + title_of_submission: readResponse.title_of_submission || "", + description: readResponse.description || "", + content_id: readResponse.content_id || null, + consent_checkbox: readResponse.consent_checkbox || false, + status: readResponse.status || "", + created_by: readResponse.created_by || _userId, // assuming _userId is defined elsewhere + // If you want to include the link to guidelines: + // link_to_guidelines: readResponse.link_to_guidelines || "", + })); + } catch (error) { + console.log("error---", error); + // setError(error.message); + } finally { + // setIsLoading(false); + } } + }; + + const validate = () => { + let tempErrors = {}; + + if (!formData.user_name) tempErrors.user_name = "User Name is required"; + if (!formData.email) tempErrors.email = "Email is required"; + else if (!/\S+@\S+\.\S+/.test(formData.email)) + tempErrors.email = "Email is not valid"; + + if (!formData.mobile_number) + tempErrors.mobile_number = "Mobile Number is required"; + else if (!/^\d{10}$/.test(formData.mobile_number)) + tempErrors.mobile_number = "Mobile Number must be 10 digits"; + + if (!formData.category_of_participation) + tempErrors.category_of_participation = + "Category of Participation is required"; + if (!formData.name_of_organisation) + tempErrors.name_of_organisation = "Name of Organisation is required"; + if (!formData.indicative_theme) + tempErrors.indicative_theme = "Indicative Theme is required"; + // if (!formData.other_indicative_theme) tempErrors.other_indicative_theme = "Indicative Theme is required"; + if (!formData.title_of_submission) + tempErrors.title_of_submission = "Title of Submission is required"; + if (!formData.description) + tempErrors.description = "Description is required"; + if (!formData.content_id) tempErrors.content_id = "File upload is required"; + if (!formData.consent_checkbox) + tempErrors.consent_checkbox = "You must accept the terms and conditions"; + + setErrors(tempErrors); + return Object.keys(tempErrors).length === 0; + }; - // Example API endpoint with limit, offset, and search params - // const apiUrl = `https://api.example.com/submissions?limit=${rowsPerPage}&offset=${ - // page * rowsPerPage - // }&search=${search}`; - // const response = await fetch(apiUrl); + const getUserData = async () => { + try { + const url = `${urlConfig.URLS.LEARNER_PREFIX}${urlConfig.URLS.USER.GET_PROFILE}${_userId}?fields=${urlConfig.params.userReadParam.fields}`; - // const result = await response.json(); - // console.log(submissions); - // setData(submissions.result.data); - // setTotalRows(result.totalCount); + const response = await fetch(url); + const data = await response.json(); + setUserInfo(data.result.response); + } catch (error) { + console.error("Error while getting user data:", error); + } }; const handleChange = (e) => { @@ -125,6 +193,7 @@ const LernCreatorForm = () => { ...formData, [name]: value, }); + setErrors({ ...errors, [name]: "" }); }; const handleIconChange = async (e) => { @@ -139,6 +208,7 @@ const LernCreatorForm = () => { mediaType: "image", mimeType: "image/png", createdBy: _userId, + channel: userInfo.rootOrg.channel, }, }, }; @@ -187,6 +257,8 @@ const LernCreatorForm = () => { ...formData, icon: uploadResult.result.identifier, }); + setErrors({ ...errors, icon: "" }); + // setData(result.result.data); // setTotalPages(Math.ceil(result.result.totalCount / 10)); } catch (error) { @@ -216,6 +288,8 @@ const LernCreatorForm = () => { mediaType: "image", mimeType: e.target.files[0].type, createdBy: _userId, + organisation: [userInfo.rootOrg.channel], + createdFor: [userInfo.rootOrg.id], }, }, }; @@ -264,6 +338,8 @@ const LernCreatorForm = () => { ...formData, content_id: uploadResult.result.identifier, }); + setErrors({ ...errors, content_id: "" }); + // setData(result.result.data); // setTotalPages(Math.ceil(result.result.totalCount / 10)); } catch (error) { @@ -290,7 +366,7 @@ const LernCreatorForm = () => { const handleCategoryChange = (e) => { const category_of_participation = e.target.value; setFormData({ ...formData, category_of_participation }); - + setErrors({ ...errors, category_of_participation: "" }); // Set appropriate guideline link based on category_of_participation if (category_of_participation === "State / UT / SPVs / ULBs / Any Other") { setGuidelineLink("link-to-state-guidelines.pdf"); @@ -303,8 +379,14 @@ const LernCreatorForm = () => { } }; - const checkDraftValidations = (formData) => {}; - const checkReviewValidations = (formData) => {}; + const checkDraftValidations = () => { + let tempErrors = {}; + if (!formData.user_name) tempErrors.user_name = "User Name is required"; + if (!formData.title_of_submission) + tempErrors.title_of_submission = "Title of Submission is required"; + setErrors(tempErrors); + return Object.keys(tempErrors).length === 0; + }; const handleSubmit = async (action) => { if (!formData.consent_checkbox) { alert("You must accept the terms and conditions."); @@ -317,38 +399,73 @@ const LernCreatorForm = () => { if (action === "draft") { formData.status = "draft"; // Add validations - checkDraftValidations(formData); - try { - const response = await fetch(`${urlConfig.URLS.LEARNATHON.CREATE}`, { - method: "POST", - headers: { - "Content-Type": "application/json", - }, - body: JSON.stringify(formData), - }); - if (!response.ok) { - throw new Error("Failed to fetch polls"); + if (!checkDraftValidations()) return; + + if (isEdit == false) { + try { + const response = await fetch(`${urlConfig.URLS.LEARNATHON.CREATE}`, { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify(formData), + }); + + if (!response.ok) { + throw new Error("Failed to fetch polls"); + } + + const result = await response.json(); + console.log("suceesss"); + navigate("/webapp/mylernsubmissions"); + // setData(result.result.data); + // setTotalPages(Math.ceil(result.result.totalCount / 10)); + } catch (error) { + console.log("error---", error.message); + alert(error.message); + // setError(error.message); + } finally { + // setIsLoading(false); } + } else if (isEdit == true) { + console.log("formData----", formData); + try { + const response = await fetch( + `${urlConfig.URLS.LEARNATHON.UPDATE}?id=${contentId}`, + { + method: "PUT", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify(formData), + } + ); - const result = await response.json(); - console.log("suceesss"); - navigate("/webapp/mylernsubmissions"); - // setData(result.result.data); - // setTotalPages(Math.ceil(result.result.totalCount / 10)); - } catch (error) { - console.log("error---", error.message); - alert(error.message); - // setError(error.message); - } finally { - // setIsLoading(false); + if (!response.ok) { + throw new Error("Failed to fetch polls"); + } + + const result = await response.json(); + console.log("suceesss"); + navigate("/webapp/mylernsubmissions"); + // setData(result.result.data); + // setTotalPages(Math.ceil(result.result.totalCount / 10)); + } catch (error) { + console.log("error---", error.message); + alert(error.message); + // setError(error.message); + } finally { + // setIsLoading(false); + } } console.log("Saved as draft"); } else if (action === "review") { formData.status = "review"; - checkReviewValidations(formData); - if (isEdit != true) { + if (!validate()) return; + + if (isEdit == false) { try { const response = await fetch(`${urlConfig.URLS.LEARNATHON.CREATE}`, { method: "POST", @@ -374,13 +491,16 @@ const LernCreatorForm = () => { } } else { try { - const response = await fetch(`${urlConfig.URLS.LEARNATHON.UPDATE}`, { - method: "POST", - headers: { - "Content-Type": "application/json", - }, - body: JSON.stringify(formData), - }); + const response = await fetch( + `${urlConfig.URLS.LEARNATHON.UPDATE}?id=${contentId}`, + { + method: "PUT", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify(formData), + } + ); if (!response.ok) { throw new Error("Failed to fetch polls"); @@ -439,8 +559,10 @@ const LernCreatorForm = () => { margin="normal" label="User Name*" name="user_name" - value={formData.userName} + value={formData.user_name} onChange={handleChange} + error={!!errors.user_name} + helperText={errors.user_name} required /> @@ -454,6 +576,8 @@ const LernCreatorForm = () => { name="email" value={formData.email} onChange={handleChange} + error={!!errors.email} + helperText={errors.email} required /> @@ -464,8 +588,10 @@ const LernCreatorForm = () => { margin="normal" label="Mobile Number*" name="mobile_number" - value={formData.mobileNumber} + value={formData.mobile_number} onChange={handleChange} + error={!!errors.mobile_number} + helperText={errors.mobile_number} required /> @@ -503,6 +629,8 @@ const LernCreatorForm = () => { name="category_of_participation" value={formData.category_of_participation} onChange={handleCategoryChange} + error={!!errors.category_of_participation} + helperText={errors.category_of_participation} required > {categories.map((option) => ( @@ -528,8 +656,10 @@ const LernCreatorForm = () => { margin="normal" label="Name of Organisation*" name="name_of_organisation" - value={formData.organisation} + value={formData.name_of_organisation} onChange={handleChange} + error={!!errors.name_of_organisation} + helperText={errors.name_of_organisation} required /> @@ -540,7 +670,7 @@ const LernCreatorForm = () => { margin="normal" label="Name of Department/Group" name="name_of_department_group" - value={formData.department} + value={formData.name_of_department_group} onChange={handleChange} /> @@ -552,8 +682,10 @@ const LernCreatorForm = () => { margin="normal" label="Indicative Theme*" name="indicative_theme" - value={formData.theme} + value={formData.indicative_theme} onChange={handleChange} + error={!!errors.indicative_theme} + helperText={errors.indicative_theme} required > {themes.map((theme) => ( @@ -570,9 +702,11 @@ const LernCreatorForm = () => { margin="normal" label="Title of Submission*" name="title_of_submission" - value={formData.title} + value={formData.title_of_submission} onChange={handleChange} inputProps={{ maxLength: 20 }} + error={!!errors.title_of_submission} + helperText={errors.title_of_submission} required /> @@ -588,6 +722,8 @@ const LernCreatorForm = () => { multiline rows={3} inputProps={{ maxLength: 100 }} + error={!!errors.description} + helperText={errors.description} required /> @@ -634,6 +770,7 @@ const LernCreatorForm = () => { - - - - Participant Details - - - - - - - - - - - - - - - + + + + + Upload Learnathon Submission + - - - Submission Details - - - -
- - - - - - -
-
- - - - - {categories.map((option) => ( - - {option} - - ))} - - {guidelineLink && ( - - View and Download Guidelines - - )} - - - - - - - - - - - - + + + + + + + + + Participant Details + + + + + + + - - - + + + - - + + + + + Submission Details + +
@@ -738,57 +620,191 @@ const LernCreatorForm = () => {
-
- - } - label="I accept the terms and conditions" - /> - - - Your submission will be used for NULP purposes only and your - personal details will not be disclosed to any entity. - - - - - - + + + + {categories.map((option) => ( + + {option} + + ))} + + {guidelineLink && ( + + View and Download Guidelines + + )} + + + + + + + + + + + + + {themes.map((theme) => ( + + {theme} + + ))} + + + + + + + + + + + + +
+ + + + + + +
+
+
+ + + } + label="Terms and conditions" + />
+
+
+ + + + Your submission will be used for NULP purposes only and your personal details will not be disclosed to any entity. + + + + + + - + +