Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 | 5x 5x 4x 4x 4x 4x 4x 1x 1x 1x 7x 1x 6x 6x 6x 6x 1x 4x 1x 1x 1x 1x 4x | import BasicLayout from "main/layouts/BasicLayout/BasicLayout"; import { useParams } from "react-router-dom"; import PersonalSchedulesTable from "main/components/PersonalSchedules/PersonalSchedulesTable"; import PersonalSectionsTable from "main/components/PersonalSections/PersonalSectionsTable"; import PersonalSchedulesWeeklyView from "main/components/PersonalSchedulesWeeklyView/PersonalSchedulesWeeklyViewPanel"; import { useBackend, _useBackendMutation } from "main/utils/useBackend"; import { Button } from "react-bootstrap"; import { useCurrentUser } from "main/utils/currentUser"; export default function PersonalSchedulesDetailsPage() { let { id } = useParams(); const { data: currentUser } = useCurrentUser(); const { data: personalSchedule, _error, _status, } = useBackend( // Stryker disable all : hard to test for query caching [`/api/personalschedules?id=${id}`], { // Stryker disable next-line all : GET is the default, so changing this to "" doesn't introduce a bug method: "GET", url: `/api/personalschedules?id=${id}`, params: { id, }, }, ); const createButton = () => { return ( <Button variant="primary" href="/personalschedules/list" style={{}}> Back </Button> ); }; const { data: personalSection } = useBackend( // Stryker disable all : hard to test for query caching [`/api/personalSections/all?psId=${id}`], { method: "GET", url: `/api/personalSections/all?psId=${id}`, params: { id, }, }, ); const dayParser = (dayString) => { dayString.replaceAll(" ", ""); const dayArray = []; for (let i = 0; i < dayString.length; i++) { if (dayString[i] === "M") { dayArray.push("Monday"); } else Iif (dayString[i] === "T") { dayArray.push("Tuesday"); } else Iif (dayString[i] === "W") { dayArray.push("Wednesday"); } else Iif (dayString[i] === "R") { dayArray.push("Thursday"); } else Iif (dayString[i] === "F") { dayArray.push("Friday"); } } return dayArray; }; const eventParser = () => { Eif (personalSection !== undefined) { return { event: personalSection .filter( (section) => section.classSections[0].timeLocations[0] !== undefined, ) .map((section) => ({ id: section.classSections[0].enrollCode.trim(), title: section.courseId.replaceAll(" ", ""), day: dayParser(section.classSections[0].timeLocations[0].days), name: section.title, description: section.description, area: section.classSections[0].timeLocations[0].building.trim() + " " + section.classSections[0].timeLocations[0].room.trim(), startTime: section.classSections[0].timeLocations[0].beginTime, endTime: section.classSections[0].timeLocations[0].endTime, })), }; } return {}; }; return ( <BasicLayout> <div className="pt-2"> <h1>Personal Schedules Details</h1> {personalSchedule && ( <PersonalSchedulesTable personalSchedules={[personalSchedule]} showButtons={false} /> )} <p> <h2>Sections in Personal Schedule</h2> {personalSection && ( <PersonalSectionsTable personalSections={personalSection} psId={id} currentUser={currentUser} /> )} </p> <p> {personalSection && ( <PersonalSchedulesWeeklyView Events={eventParser().event} /> )} </p> {createButton()} </div> </BasicLayout> ); } |