diff --git a/nextjs/src/app/course/[courseName]/lecture/[lectureDay]/LectureButtons.tsx b/nextjs/src/app/course/[courseName]/lecture/[lectureDay]/LectureButtons.tsx index 43b8c8a..be7b046 100644 --- a/nextjs/src/app/course/[courseName]/lecture/[lectureDay]/LectureButtons.tsx +++ b/nextjs/src/app/course/[courseName]/lecture/[lectureDay]/LectureButtons.tsx @@ -3,15 +3,14 @@ import Modal, { useModal } from "@/components/Modal"; import { Spinner } from "@/components/Spinner"; import { getCourseUrl } from "@/services/urlUtils"; -import { useQueryClient } from "@tanstack/react-query"; import { useRouter } from "next/navigation"; import { useState } from "react"; import { useCourseContext } from "../../context/courseContext"; import { useLocalCourseSettingsQuery } from "@/hooks/localCourse/localCoursesHooks"; import { useDeleteLectureMutation } from "@/hooks/localCourse/lectureHooks"; +import Link from "next/link"; export default function LectureButtons({ lectureDay }: { lectureDay: string }) { - const queryClient = useQueryClient(); const { courseName } = useCourseContext(); const [settings] = useLocalCourseSettingsQuery(); const router = useRouter(); @@ -58,8 +57,11 @@ export default function LectureButtons({ lectureDay }: { lectureDay: string }) { )} - {isLoading && } + + Go Back + + {isLoading && } ); } diff --git a/nextjs/src/app/course/[courseName]/settings/AssignmentGroupManagement.tsx b/nextjs/src/app/course/[courseName]/settings/AssignmentGroupManagement.tsx index ab9409f..1e42699 100644 --- a/nextjs/src/app/course/[courseName]/settings/AssignmentGroupManagement.tsx +++ b/nextjs/src/app/course/[courseName]/settings/AssignmentGroupManagement.tsx @@ -8,11 +8,12 @@ import { LocalAssignmentGroup } from "@/models/local/assignment/localAssignmentG import { useEffect, useState } from "react"; import TextInput from "../../../../components/form/TextInput"; import { useSetAssignmentGroupsMutation } from "@/hooks/canvas/canvasCourseHooks"; +import { settingsBox } from "./sharedSettings"; export default function AssignmentGroupManagement() { const [settings] = useLocalCourseSettingsQuery(); const updateSettings = useUpdateLocalCourseSettingsMutation(); - // const applyInCanvas = useSetAssignmentGroupsMutation(settings.canvasId); // untested + const applyInCanvas = useSetAssignmentGroupsMutation(settings.canvasId); // untested const [assignmentGroups, setAssignmentGroups] = useState< LocalAssignmentGroup[] @@ -39,7 +40,7 @@ export default function AssignmentGroupManagement() { }, [assignmentGroups, settings, updateSettings]); return ( -
+
{assignmentGroups.map((group) => (
+
Default Assignment Due Time

+
Default File Upload Types
{defaultFileUploadTypes.map((type, index) => ( diff --git a/nextjs/src/app/course/[courseName]/settings/HolidayConfig.tsx b/nextjs/src/app/course/[courseName]/settings/HolidayConfig.tsx index 2efbadc..edbd6b4 100644 --- a/nextjs/src/app/course/[courseName]/settings/HolidayConfig.tsx +++ b/nextjs/src/app/course/[courseName]/settings/HolidayConfig.tsx @@ -12,6 +12,7 @@ import { holidaysToString, parseHolidays, } from "../../../../models/local/settingsUtils"; +import { settingsBox } from "./sharedSettings"; const exampleString = `springBreak: - 10/12/2024 @@ -89,7 +90,7 @@ function InnerHolidayConfig() { }, [rawText, settings.holidays, settings, updateSettings]); return ( -
+
-
Start: {getDateOnlyMarkdownString(startDate)}
-
End: {getDateOnlyMarkdownString(endDate)}
+
+
Semester Start: {getDateOnlyMarkdownString(startDate)}
+
Semester End: {getDateOnlyMarkdownString(endDate)}
); } diff --git a/nextjs/src/app/course/[courseName]/settings/SubmissionDefaults.tsx b/nextjs/src/app/course/[courseName]/settings/SubmissionDefaults.tsx index 522947c..a7f6293 100644 --- a/nextjs/src/app/course/[courseName]/settings/SubmissionDefaults.tsx +++ b/nextjs/src/app/course/[courseName]/settings/SubmissionDefaults.tsx @@ -9,6 +9,7 @@ import { AssignmentSubmissionTypeList, } from "@/models/local/assignment/assignmentSubmissionType"; import React, { useEffect, useState } from "react"; +import { settingsBox } from "./sharedSettings"; export default function SubmissionDefaults() { const [settings] = useLocalCourseSettingsQuery(); @@ -32,7 +33,7 @@ export default function SubmissionDefaults() { }, [defaultSubmissionTypes, settings, updateSettings]); return ( -
+
Default Assignment Submission Type
{defaultSubmissionTypes.map((type, index) => ( diff --git a/nextjs/src/app/course/[courseName]/settings/sharedSettings.ts b/nextjs/src/app/course/[courseName]/settings/sharedSettings.ts new file mode 100644 index 0000000..458e979 --- /dev/null +++ b/nextjs/src/app/course/[courseName]/settings/sharedSettings.ts @@ -0,0 +1 @@ +export const settingsBox = "border w-full p-3 m-3 rounded-md border-slate-500" \ No newline at end of file diff --git a/nextjs/src/app/newCourse/NewCourseForm.tsx b/nextjs/src/app/newCourse/NewCourseForm.tsx index bd9f797..235c27f 100644 --- a/nextjs/src/app/newCourse/NewCourseForm.tsx +++ b/nextjs/src/app/newCourse/NewCourseForm.tsx @@ -26,7 +26,7 @@ const sampleCompose = `services: image: alexmickelson/canvas_management:2 # pull this image regularly user: 1000:1000 # userid:groupid that matches file ownership on host system ports: - - 8080:8080 # hostPort:containerPort - you can change the first one if you like + - 8080:3000 # hostPort:containerPort - you can change the first one if you like env_file: - .env # needs to have your CANVAS_TOKEN set environment: @@ -196,9 +196,9 @@ function OtherSettings({ getOptionName={(d) => d} emptyOptionText="--- add a new folder to your docker compose to add more folders ---" /> -
+
New folders will not be created automatically, you are expected to mount - a docker volume for each coures. + a docker volume for each courses.

@@ -222,6 +222,13 @@ function OtherSettings({ options={allSettings} getOptionName={(c) => c.name} /> +
+ Assignments, Quizzes, Pages, and Lectures will have their due dates + moved based on how far they are from the start of the semester. +
+ You will still need to go through and re-order the course content, but + things will be within a few days of where they should be. +
); }