mirror of
https://github.com/alexmickelson/canvasManagement.git
synced 2026-03-26 23:58:31 -06:00
updates
This commit is contained in:
@@ -8,13 +8,11 @@ export default function CourseList() {
|
|||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
{allSettings.map((settings) => (
|
{allSettings.map((settings) => (
|
||||||
<Link
|
<div key={settings.name}>
|
||||||
href={getCourseUrl(settings.name)}
|
<Link href={getCourseUrl(settings.name)} shallow={true}>
|
||||||
key={settings.name}
|
|
||||||
shallow={true}
|
|
||||||
>
|
|
||||||
{settings.name}
|
{settings.name}
|
||||||
</Link>
|
</Link>
|
||||||
|
</div>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
21
nextjs/src/app/course/[courseName]/CourseNavigation.tsx
Normal file
21
nextjs/src/app/course/[courseName]/CourseNavigation.tsx
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
"use client";
|
||||||
|
import { useLocalCourseSettingsQuery } from "@/hooks/localCourse/localCoursesHooks";
|
||||||
|
import Link from "next/link";
|
||||||
|
|
||||||
|
export function CourseNavigation() {
|
||||||
|
const { data: settings } = useLocalCourseSettingsQuery();
|
||||||
|
return (
|
||||||
|
<div className="pb-1 ps-5 flex flex-row gap-3">
|
||||||
|
<Link href={"/"} className="btn">
|
||||||
|
Back to Course List
|
||||||
|
</Link>
|
||||||
|
<a
|
||||||
|
href={`https://snow.instructure.com/courses/${settings.canvasId}`}
|
||||||
|
className="btn"
|
||||||
|
target="_blank"
|
||||||
|
>
|
||||||
|
View in Canvas
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -122,10 +122,13 @@ function DraggableListItem({
|
|||||||
}) {
|
}) {
|
||||||
const { courseName } = useCourseContext();
|
const { courseName } = useCourseContext();
|
||||||
return (
|
return (
|
||||||
<div
|
<Link
|
||||||
|
href={getModuleItemUrl(courseName, moduleName, type, item.name)}
|
||||||
|
shallow={true}
|
||||||
className={
|
className={
|
||||||
" border rounded-sm px-1 mx-1 break-all " +
|
" border rounded-sm px-1 mx-1 break-all " +
|
||||||
" border-slate-600 bg-slate-800 "
|
" border-slate-600 bg-slate-800 " +
|
||||||
|
" block "
|
||||||
}
|
}
|
||||||
role="button"
|
role="button"
|
||||||
draggable="true"
|
draggable="true"
|
||||||
@@ -139,13 +142,8 @@ function DraggableListItem({
|
|||||||
})
|
})
|
||||||
);
|
);
|
||||||
}}
|
}}
|
||||||
>
|
|
||||||
<Link
|
|
||||||
href={getModuleItemUrl(courseName, moduleName, type, item.name)}
|
|
||||||
shallow={true}
|
|
||||||
>
|
>
|
||||||
{item.name}
|
{item.name}
|
||||||
</Link>
|
</Link>
|
||||||
</div>
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,9 +25,9 @@ export default function DraggingContextProvider({
|
|||||||
|
|
||||||
const itemDrop = useCallback(
|
const itemDrop = useCallback(
|
||||||
(e: DragEvent<HTMLDivElement>, day: string | undefined) => {
|
(e: DragEvent<HTMLDivElement>, day: string | undefined) => {
|
||||||
const itemBeingDragged = JSON.parse(
|
const rawData = e.dataTransfer.getData("draggableItem");
|
||||||
e.dataTransfer.getData("draggableItem")
|
// console.log(rawData);
|
||||||
);
|
const itemBeingDragged = JSON.parse(rawData);
|
||||||
|
|
||||||
if (itemBeingDragged && day) {
|
if (itemBeingDragged && day) {
|
||||||
const dayAsDate = getDateFromStringOrThrow(day, "in drop callback");
|
const dayAsDate = getDateFromStringOrThrow(day, "in drop callback");
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ export default function EditAssignment({
|
|||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const delay = 500;
|
const delay = 500;
|
||||||
const handler = setTimeout(() => {
|
const handler = setTimeout(() => {
|
||||||
|
try {
|
||||||
const updatedAssignment =
|
const updatedAssignment =
|
||||||
localAssignmentMarkdown.parseMarkdown(assignmentText);
|
localAssignmentMarkdown.parseMarkdown(assignmentText);
|
||||||
if (
|
if (
|
||||||
@@ -33,16 +34,16 @@ export default function EditAssignment({
|
|||||||
localAssignmentMarkdown.toMarkdown(updatedAssignment)
|
localAssignmentMarkdown.toMarkdown(updatedAssignment)
|
||||||
) {
|
) {
|
||||||
console.log("updating assignment");
|
console.log("updating assignment");
|
||||||
try {
|
|
||||||
updateAssignment.mutate({
|
updateAssignment.mutate({
|
||||||
assignment: updatedAssignment,
|
assignment: updatedAssignment,
|
||||||
moduleName,
|
moduleName,
|
||||||
assignmentName,
|
assignmentName,
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
setError("");
|
||||||
} catch (e: any) {
|
} catch (e: any) {
|
||||||
setError(e.toString());
|
setError(e.toString());
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}, delay);
|
}, delay);
|
||||||
|
|
||||||
return () => {
|
return () => {
|
||||||
@@ -68,9 +69,7 @@ export default function EditAssignment({
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="p-5">
|
<div className="p-5">
|
||||||
<button>
|
<button>Add to canvas....</button>
|
||||||
Add to canvas....
|
|
||||||
</button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -35,22 +35,23 @@ export default function EditPage({
|
|||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const delay = 500;
|
const delay = 500;
|
||||||
const handler = setTimeout(() => {
|
const handler = setTimeout(() => {
|
||||||
|
try {
|
||||||
const updatedPage = localPageMarkdownUtils.parseMarkdown(pageText);
|
const updatedPage = localPageMarkdownUtils.parseMarkdown(pageText);
|
||||||
if (
|
if (
|
||||||
localPageMarkdownUtils.toMarkdown(page) !==
|
localPageMarkdownUtils.toMarkdown(page) !==
|
||||||
localPageMarkdownUtils.toMarkdown(updatedPage)
|
localPageMarkdownUtils.toMarkdown(updatedPage)
|
||||||
) {
|
) {
|
||||||
console.log("updating assignment");
|
console.log("updating page");
|
||||||
try {
|
|
||||||
updatePage.mutate({
|
updatePage.mutate({
|
||||||
page: updatedPage,
|
page: updatedPage,
|
||||||
moduleName,
|
moduleName,
|
||||||
pageName,
|
pageName,
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
setError("");
|
||||||
} catch (e: any) {
|
} catch (e: any) {
|
||||||
setError(e.toString());
|
setError(e.toString());
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}, delay);
|
}, delay);
|
||||||
|
|
||||||
return () => {
|
return () => {
|
||||||
|
|||||||
@@ -23,21 +23,24 @@ export default function EditQuiz({
|
|||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const delay = 500;
|
const delay = 500;
|
||||||
const handler = setTimeout(() => {
|
const handler = setTimeout(() => {
|
||||||
|
try {
|
||||||
if (
|
if (
|
||||||
quizMarkdownUtils.toMarkdown(quiz) !==
|
quizMarkdownUtils.toMarkdown(quiz) !==
|
||||||
quizMarkdownUtils.toMarkdown(quizMarkdownUtils.parseMarkdown(quizText))
|
quizMarkdownUtils.toMarkdown(
|
||||||
|
quizMarkdownUtils.parseMarkdown(quizText)
|
||||||
|
)
|
||||||
) {
|
) {
|
||||||
try {
|
|
||||||
const updatedQuiz = quizMarkdownUtils.parseMarkdown(quizText);
|
const updatedQuiz = quizMarkdownUtils.parseMarkdown(quizText);
|
||||||
updateQuizMutation.mutate({
|
updateQuizMutation.mutate({
|
||||||
quiz: updatedQuiz,
|
quiz: updatedQuiz,
|
||||||
moduleName,
|
moduleName,
|
||||||
quizName,
|
quizName,
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
setError("");
|
||||||
} catch (e: any) {
|
} catch (e: any) {
|
||||||
setError(e.toString());
|
setError(e.toString());
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}, delay);
|
}, delay);
|
||||||
|
|
||||||
return () => {
|
return () => {
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import ModuleList from "./modules/ModuleList";
|
|||||||
import DraggingContextProvider from "./context/DraggingContextProvider";
|
import DraggingContextProvider from "./context/DraggingContextProvider";
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
import CourseTitle from "./CourseTitle";
|
import CourseTitle from "./CourseTitle";
|
||||||
|
import { CourseNavigation } from "./CourseNavigation";
|
||||||
|
|
||||||
export default async function CoursePage({}: {}) {
|
export default async function CoursePage({}: {}) {
|
||||||
return (
|
return (
|
||||||
@@ -13,12 +14,7 @@ export default async function CoursePage({}: {}) {
|
|||||||
<div className="flex flex-row min-h-0">
|
<div className="flex flex-row min-h-0">
|
||||||
<DraggingContextProvider>
|
<DraggingContextProvider>
|
||||||
<div className="flex-1 min-h-0">
|
<div className="flex-1 min-h-0">
|
||||||
<div className="pb-1 ps-5">
|
<CourseNavigation />
|
||||||
<Link href={"/"} className="btn">
|
|
||||||
Back to Course List
|
|
||||||
</Link>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<CourseCalendar />
|
<CourseCalendar />
|
||||||
</div>
|
</div>
|
||||||
<div className="w-96 p-3">
|
<div className="w-96 p-3">
|
||||||
|
|||||||
Reference in New Issue
Block a user