diff --git a/backend/task-manager/src/main/java/com/example/task_manager/service/TeamMemberService.java b/backend/task-manager/src/main/java/com/example/task_manager/service/TeamMemberService.java index 93a8a911..59df3130 100644 --- a/backend/task-manager/src/main/java/com/example/task_manager/service/TeamMemberService.java +++ b/backend/task-manager/src/main/java/com/example/task_manager/service/TeamMemberService.java @@ -94,7 +94,7 @@ public TaskDTO createTask(TaskRequestDTO request) { task.setDateCreated(LocalDate.now()); task.setTeam(team); task.setPriority(priority); - + task.setDueDate(request.getDueDate()); if (request.getDescription() != null) { task.setDescription(request.getDescription()); } diff --git a/frontend/react-app/src/CreateTask.test.js b/frontend/react-app/src/CreateTask.test.js deleted file mode 100644 index a1d802db..00000000 --- a/frontend/react-app/src/CreateTask.test.js +++ /dev/null @@ -1,9 +0,0 @@ -import CreateTask from "./pages/CreateTask"; -import { render, screen } from "@testing-library/react"; -test("renders Task page", () => { - render(); - - //check if the Create Task is rendered - expect(screen.getByText("Task Name")).toBeInTheDocument() - - }); \ No newline at end of file diff --git a/frontend/react-app/src/CreateTaskForm.test.js b/frontend/react-app/src/CreateTaskForm.test.js deleted file mode 100644 index 911c495f..00000000 --- a/frontend/react-app/src/CreateTaskForm.test.js +++ /dev/null @@ -1,13 +0,0 @@ -import CreateTaskForm from "./components/CreateTaskForm"; -import { render, screen } from "@testing-library/react"; -import fakeData from "./FakeData/fakeTeamData.json" -test("renders Task page", () => { - render(); - - //check if the Create Task is rendered with all team members as options is rendered - fakeData.map((teamMember)=>( - expect(screen.getByText(teamMember.name)).toBeInTheDocument() - )) - }); \ No newline at end of file diff --git a/frontend/react-app/src/components/CreateTaskForm.jsx b/frontend/react-app/src/components/CreateTaskForm.jsx index af2f885f..5b8ddafb 100644 --- a/frontend/react-app/src/components/CreateTaskForm.jsx +++ b/frontend/react-app/src/components/CreateTaskForm.jsx @@ -1,19 +1,53 @@ -import { useState, useEffect } from 'react'; -import {useForm} from 'react-hook-form' +import { useState, useEffect, useMemo } from 'react'; +import {useForm, Controller} from 'react-hook-form' +import Select from 'react-select' import '../css/CreateTaskForm.css' -import {assignMemberToTask, getTeamsForMember} from '../api/teamMemberApi' +import {assignMemberToTask, getTeamsForMember, massAssignMemberToTask} from '../api/teamMemberApi' import { createTask } from '../api/taskApi'; -import { useCookies } from 'react-cookie'; import { getTeamMembers } from '../api/teamApi'; -function CreateTaskForm(){ - const [cookies] = useCookies(['userInfo']) - const userId = cookies.userInfo.accountId + +function CreateTaskForm({userId}){ + const [userTeams, setData] = useState([]); const [loading, setLoading] = useState(true); const [teamMembers, setTeamMembers] = useState([]); - const { register, handleSubmit, formState: {errors}} = useForm(); + const { register, handleSubmit, formState: {errors}, control} = useForm(); + function getTeamMemberIds(teamMembers){ + return teamMembers.map((teamMember)=>( + teamMember.value + )) + } + const customStyles = { + control: (provided) => ({ + ...provided, + width: '100%', + minWidth: '100px', + maxWidth: '100%', + minHeight: '30px', + maxHeight: '100%', + border: '2px solid grey', + borderRadius: '10px', + paddingLeft: '8px', + backgroundColor: '#BFCDE0', + margin: '10px 0px', + cursor: 'pointer' + }), + option: (provided, state) =>({ + ...provided, + cursor: state.isSelected ? 'default' : 'pointer', + }) + }; + function formatTeamData(myTeamMembers){ + return myTeamMembers.map((teamMember)=>( + { + value: teamMember.accountId, + label: teamMember.userName + } + )) + } //Once team is selected get the team members const teamSelected = ((event)=>{ + setTeamMembers([]) console.log(getTeamMembers(event.target.value)) getTeamMembers(event.target.value).then((results)=>setTeamMembers(results)) }) @@ -26,6 +60,7 @@ function CreateTaskForm(){ setLoading(false) } },[]); + const data = useMemo(()=>(teamMembers),[teamMembers]) const onSubmit = async (data)=> { try { createTask( @@ -39,21 +74,21 @@ function CreateTaskForm(){ ).then((response)=>{ if(Array.isArray(data.assignees)){ - data.assignees.map((assignee)=>{ - assignMemberToTask(response.taskId ,assignee.accountId).then((result)=>{ + const assignees = getTeamMemberIds(data.assignees); + massAssignMemberToTask(response.taskId ,assignees).then((result)=>{ //debugging console.log(result) alert("TASK CREATED") - }) - })}else{ - assignMemberToTask(response.taskId ,data.assignees).then((result)=>{ + }) + }else{ + assignMemberToTask(response.taskId ,data.assignees.value).then((result)=>{ //debugging console.log(result) alert("TASK CREATED") }) } }) - window.location.href="/home"; + //window.location.href="/home"; } catch (error) { console.log(error) alert("FAILED IN MAKING TASK"); @@ -95,15 +130,23 @@ function CreateTaskForm(){