From bc313bfe2aafe3545ea73ace73777c7f574fe2b0 Mon Sep 17 00:00:00 2001 From: NSUWAL123 Date: Thu, 15 Feb 2024 09:52:48 +0545 Subject: [PATCH 1/3] fix (manageProject) - formUpdate: remove formCategory dropdown for update --- .../ManageProject/EditTab/FormUpdateTab.tsx | 24 +------------------ .../ManageProject/EditTab/index.tsx | 8 ------- 2 files changed, 1 insertion(+), 31 deletions(-) diff --git a/src/frontend/src/components/ManageProject/EditTab/FormUpdateTab.tsx b/src/frontend/src/components/ManageProject/EditTab/FormUpdateTab.tsx index 6403ce3163..1d798554a9 100644 --- a/src/frontend/src/components/ManageProject/EditTab/FormUpdateTab.tsx +++ b/src/frontend/src/components/ManageProject/EditTab/FormUpdateTab.tsx @@ -1,9 +1,7 @@ -import React, { useEffect, useState } from 'react'; +import React, { useState } from 'react'; import UploadArea from '../../common/UploadArea'; -import { CustomSelect } from '../../common/Select'; import Button from '../../common/Button'; import CoreModules from '@/shared/CoreModules'; -import { diffObject } from '@/utilfunctions/compareUtils.js'; import { PostFormUpdate } from '@/api/CreateProjectService'; type FileType = { @@ -17,19 +15,10 @@ const FormUpdateTab = ({ projectId }) => { const dispatch = CoreModules.useAppDispatch(); const [uploadForm, setUploadForm] = useState(null); - const [selectedFormCategory, setSelectedFormCategory] = useState(null); - const formCategoryList = CoreModules.useAppSelector((state) => state.createproject.formCategoryList); - const previousXform_title = CoreModules.useAppSelector((state) => state.project.projectInfo.xform_title); - - useEffect(() => { - setSelectedFormCategory(previousXform_title); - }, [previousXform_title]); const onSave = () => { - const diffPayload = diffObject({ category: previousXform_title }, { category: selectedFormCategory }); dispatch( PostFormUpdate(`${import.meta.env.VITE_API_URL}/projects/update_category`, { - ...(Object.keys(diffPayload).length > 0 ? diffPayload : { category: selectedFormCategory }), project_id: projectId, upload: uploadForm && uploadForm?.[0]?.url, }), @@ -38,17 +27,6 @@ const FormUpdateTab = ({ projectId }) => { return (
- value && setSelectedFormCategory(value?.toString())} - className="fmtm-bg-white" - /> { - const dispatch = CoreModules.useAppDispatch(); const [tabView, setTabView] = useState<'Project Description' | 'Form Update'>('Project Description'); - useEffect(() => { - dispatch(FormCategoryService(`${import.meta.env.VITE_API_URL}/central/list-forms`)); - }, []); - return (
From f62b42c83d0a0c3349880bc9519109fc93645564 Mon Sep 17 00:00:00 2001 From: NSUWAL123 Date: Thu, 15 Feb 2024 11:22:00 +0545 Subject: [PATCH 2/3] fix (projectSubmissions): taskList: search functionality add to task-list section --- .../ProjectSubmissions/TaskSubmissions.tsx | 42 ++++++++++++++++--- .../src/models/submission/submissionModel.ts | 6 +++ 2 files changed, 42 insertions(+), 6 deletions(-) diff --git a/src/frontend/src/components/ProjectSubmissions/TaskSubmissions.tsx b/src/frontend/src/components/ProjectSubmissions/TaskSubmissions.tsx index 214ad1cabb..f5d19552eb 100644 --- a/src/frontend/src/components/ProjectSubmissions/TaskSubmissions.tsx +++ b/src/frontend/src/components/ProjectSubmissions/TaskSubmissions.tsx @@ -1,21 +1,43 @@ -import React from 'react'; +import React, { useEffect, useState } from 'react'; import TaskSubmissionsMap from '@/components/ProjectSubmissions/TaskSubmissionsMap'; import InputTextField from '@/components/common/InputTextField'; import Button from '@/components/common/Button'; import AssetModules from '@/shared/AssetModules.js'; import CoreModules from '@/shared/CoreModules.js'; import { TaskCardSkeletonLoader } from '@/components/ProjectSubmissions/ProjectSubmissionsSkeletonLoader'; +import { taskInfoType } from '@/models/submission/submissionModel'; const TaskSubmissions = () => { const dispatch = CoreModules.useAppDispatch(); - const taskInfo = CoreModules.useAppSelector((state) => state.task.taskInfo); + const taskInfo: taskInfoType[] = CoreModules.useAppSelector((state) => state.task.taskInfo); const taskLoading = CoreModules.useAppSelector((state) => state.task.taskLoading); + const [searchedTaskId, setSearchedTaskId] = useState(''); + const [debouncedSearchedTaskId, setDebouncedSearchedTaskId] = useState(''); + const [filteredTaskInfo, setFilteredTaskInfo] = useState([]); const zoomToTask = (taskId) => { dispatch(CoreModules.TaskActions.SetSelectedTask(+taskId)); }; - const TaskCard = ({ task }) => ( + useEffect(() => { + const timeoutId = setTimeout(() => { + setDebouncedSearchedTaskId(searchedTaskId); + }, 500); + return () => clearTimeout(timeoutId); + }, [searchedTaskId, 1000]); + + useEffect(() => { + if (debouncedSearchedTaskId) { + const searchedTaskInfoList = taskInfo?.filter((task): boolean => { + return task.task_id.includes(debouncedSearchedTaskId); + }); + setFilteredTaskInfo(searchedTaskInfoList); + } else { + setFilteredTaskInfo(taskInfo); + } + }, [debouncedSearchedTaskId, taskInfo]); + + const TaskCard = ({ task }: { task: taskInfoType }) => (
@@ -45,17 +67,25 @@ const TaskSubmissions = () => { return (
- {}} value="" placeholder="Search by task id" /> + { + setSearchedTaskId(e.target.value); + }} + value={searchedTaskId} + placeholder="Search by task id" + />
{taskLoading ? (
- {Array.from({ length: 10 }).map((i) => ( + {Array.from({ length: 10 }).map((_, i) => ( ))}
) : (
- {taskInfo?.map((task) => )} + {filteredTaskInfo?.map((task: taskInfoType) => )}
)}
diff --git a/src/frontend/src/models/submission/submissionModel.ts b/src/frontend/src/models/submission/submissionModel.ts index e69de29bb2..ce457d23bf 100644 --- a/src/frontend/src/models/submission/submissionModel.ts +++ b/src/frontend/src/models/submission/submissionModel.ts @@ -0,0 +1,6 @@ +export type taskInfoType = { + task_id: string; + submission_count: number; + last_submission: string | null; + feature_count: number; +}; From 5303c25061fea457e41c5ba49d4a208081e9a2f4 Mon Sep 17 00:00:00 2001 From: NSUWAL123 Date: Thu, 15 Feb 2024 11:35:21 +0545 Subject: [PATCH 3/3] fix taskIdSearch: message display if searched taskId not present --- .../src/components/ProjectSubmissions/TaskSubmissions.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/frontend/src/components/ProjectSubmissions/TaskSubmissions.tsx b/src/frontend/src/components/ProjectSubmissions/TaskSubmissions.tsx index f5d19552eb..4a55aee747 100644 --- a/src/frontend/src/components/ProjectSubmissions/TaskSubmissions.tsx +++ b/src/frontend/src/components/ProjectSubmissions/TaskSubmissions.tsx @@ -68,7 +68,7 @@ const TaskSubmissions = () => {
{ setSearchedTaskId(e.target.value); @@ -83,10 +83,14 @@ const TaskSubmissions = () => { ))}
- ) : ( + ) : filteredTaskInfo?.length > 0 ? (
{filteredTaskInfo?.map((task: taskInfoType) => )}
+ ) : ( +
+

No tasks found!

+
)}