mirror of
https://github.com/alexmickelson/canvasManagement.git
synced 2026-03-25 23:28:33 -06:00
creating other things
This commit is contained in:
@@ -62,7 +62,7 @@ function CalendarWeek({
|
|||||||
monthNumber: number;
|
monthNumber: number;
|
||||||
}) {
|
}) {
|
||||||
return (
|
return (
|
||||||
<div className="grid grid-cols-7 m-3">
|
<div className="grid grid-cols-7 m-1">
|
||||||
{week.map((day, dayIndex) => (
|
{week.map((day, dayIndex) => (
|
||||||
<Day key={dayIndex} day={day} month={monthNumber} />
|
<Day key={dayIndex} day={day} month={monthNumber} />
|
||||||
))}
|
))}
|
||||||
|
|||||||
@@ -40,12 +40,12 @@ export default function Day({ day, month }: { day: string; month: number }) {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
className={" rounded-lg p-2 pb-4 m-1 " + todayClass + monthClass}
|
className={" rounded-lg pb-4 m-1 " + todayClass + monthClass}
|
||||||
onDrop={(e) => itemDrop(e, day)}
|
onDrop={(e) => itemDrop(e, day)}
|
||||||
onDragOver={(e) => e.preventDefault()}
|
onDragOver={(e) => e.preventDefault()}
|
||||||
>
|
>
|
||||||
{dayAsDate.getDate()}
|
<div className="ms-1">{dayAsDate.getDate()}</div>
|
||||||
<ul className="list-disc">
|
<div>
|
||||||
{todaysAssignments.map(({ assignment, moduleName }) => (
|
{todaysAssignments.map(({ assignment, moduleName }) => (
|
||||||
<DraggableListItem
|
<DraggableListItem
|
||||||
key={assignment.name}
|
key={assignment.name}
|
||||||
@@ -70,7 +70,7 @@ export default function Day({ day, month }: { day: string; month: number }) {
|
|||||||
item={page}
|
item={page}
|
||||||
/>
|
/>
|
||||||
))}
|
))}
|
||||||
</ul>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -122,7 +122,11 @@ function DraggableListItem({
|
|||||||
}) {
|
}) {
|
||||||
const { courseName } = useCourseContext();
|
const { courseName } = useCourseContext();
|
||||||
return (
|
return (
|
||||||
<li
|
<div
|
||||||
|
className={
|
||||||
|
" border rounded-sm px-1 mx-1 break-all " +
|
||||||
|
" border-slate-600 bg-slate-800 "
|
||||||
|
}
|
||||||
role="button"
|
role="button"
|
||||||
draggable="true"
|
draggable="true"
|
||||||
onDragStart={(e) => {
|
onDragStart={(e) => {
|
||||||
@@ -142,6 +146,6 @@ function DraggableListItem({
|
|||||||
>
|
>
|
||||||
{item.name}
|
{item.name}
|
||||||
</Link>
|
</Link>
|
||||||
</li>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ export default function ExpandableModule({
|
|||||||
<Modal buttonText="New Item">
|
<Modal buttonText="New Item">
|
||||||
{({ closeModal }) => (
|
{({ closeModal }) => (
|
||||||
<div>
|
<div>
|
||||||
<NewItemForm moduleName={moduleName} />
|
<NewItemForm moduleName={moduleName} onCreate={closeModal} />
|
||||||
<br />
|
<br />
|
||||||
<button onClick={closeModal}>close</button>
|
<button onClick={closeModal}>close</button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -11,7 +11,13 @@ import { LocalAssignmentGroup } from "@/models/local/assignment/localAssignmentG
|
|||||||
import { dateToMarkdownString } from "@/models/local/timeUtils";
|
import { dateToMarkdownString } from "@/models/local/timeUtils";
|
||||||
import React, { useState } from "react";
|
import React, { useState } from "react";
|
||||||
|
|
||||||
export default function NewItemForm({ moduleName }: { moduleName: string }) {
|
export default function NewItemForm({
|
||||||
|
moduleName,
|
||||||
|
onCreate = () => {},
|
||||||
|
}: {
|
||||||
|
moduleName: string;
|
||||||
|
onCreate?: () => void;
|
||||||
|
}) {
|
||||||
const [type, setType] = useState<"Assignment" | "Quiz" | "Page">(
|
const [type, setType] = useState<"Assignment" | "Quiz" | "Page">(
|
||||||
"Assignment"
|
"Assignment"
|
||||||
);
|
);
|
||||||
@@ -31,12 +37,14 @@ export default function NewItemForm({ moduleName }: { moduleName: string }) {
|
|||||||
className="flex flex-col gap-3"
|
className="flex flex-col gap-3"
|
||||||
onSubmit={(e) => {
|
onSubmit={(e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
const dueAt = dateToMarkdownString(new Date());
|
||||||
|
console.log("submitting");
|
||||||
if (type === "Assignment") {
|
if (type === "Assignment") {
|
||||||
createAssignment.mutate({
|
createAssignment.mutate({
|
||||||
assignment: {
|
assignment: {
|
||||||
name,
|
name,
|
||||||
description: "",
|
description: "",
|
||||||
dueAt: dateToMarkdownString(new Date()),
|
dueAt,
|
||||||
submissionTypes: [
|
submissionTypes: [
|
||||||
AssignmentSubmissionType.ONLINE_TEXT_ENTRY,
|
AssignmentSubmissionType.ONLINE_TEXT_ENTRY,
|
||||||
AssignmentSubmissionType.ONLINE_UPLOAD,
|
AssignmentSubmissionType.ONLINE_UPLOAD,
|
||||||
@@ -48,8 +56,32 @@ export default function NewItemForm({ moduleName }: { moduleName: string }) {
|
|||||||
assignmentName: name,
|
assignmentName: name,
|
||||||
});
|
});
|
||||||
} else if (type === "Quiz") {
|
} else if (type === "Quiz") {
|
||||||
|
createQuiz.mutate({
|
||||||
|
quiz: {
|
||||||
|
name,
|
||||||
|
description: "",
|
||||||
|
dueAt,
|
||||||
|
shuffleAnswers: true,
|
||||||
|
showCorrectAnswers: true,
|
||||||
|
oneQuestionAtATime: true,
|
||||||
|
allowedAttempts: -1,
|
||||||
|
questions: [],
|
||||||
|
},
|
||||||
|
moduleName: moduleName,
|
||||||
|
quizName: name,
|
||||||
|
});
|
||||||
} else if (type === "Page") {
|
} else if (type === "Page") {
|
||||||
|
createPage.mutate({
|
||||||
|
page: {
|
||||||
|
name,
|
||||||
|
text: "",
|
||||||
|
dueAt,
|
||||||
|
},
|
||||||
|
moduleName: moduleName,
|
||||||
|
pageName: name,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
onCreate();
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<div>
|
<div>
|
||||||
@@ -64,19 +96,21 @@ export default function NewItemForm({ moduleName }: { moduleName: string }) {
|
|||||||
<TextInput label={type + " Name"} value={name} setValue={setName} />
|
<TextInput label={type + " Name"} value={name} setValue={setName} />
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<ButtonSelect
|
{type !== "Page" && (
|
||||||
options={settings.assignmentGroups}
|
<ButtonSelect
|
||||||
getName={(g) => g?.name ?? ""}
|
options={settings.assignmentGroups}
|
||||||
setSelectedOption={setAssignmentGroup}
|
getName={(g) => g?.name ?? ""}
|
||||||
selectedOption={assignmentGroup}
|
setSelectedOption={setAssignmentGroup}
|
||||||
/>
|
selectedOption={assignmentGroup}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
{settings.assignmentGroups.length === 0 && (
|
{settings.assignmentGroups.length === 0 && (
|
||||||
<div>
|
<div>
|
||||||
No assignment groups created, create them in the course settings page
|
No assignment groups created, create them in the course settings page
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
<button>Create</button>
|
<button type="submit">Create</button>
|
||||||
{isPending && <Spinner />}
|
{isPending && <Spinner />}
|
||||||
</form>
|
</form>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ export default function NewCourseForm() {
|
|||||||
canvasId: selectedCanvasCourse.id,
|
canvasId: selectedCanvasCourse.id,
|
||||||
startDate: selectedTerm.start_at ?? "",
|
startDate: selectedTerm.start_at ?? "",
|
||||||
endDate: selectedTerm.end_at ?? "",
|
endDate: selectedTerm.end_at ?? "",
|
||||||
defaultDueTime: { hour: 11, minute: 59 },
|
defaultDueTime: { hour: 23, minute: 59 },
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
|
|||||||
@@ -30,6 +30,10 @@ export default function Modal({
|
|||||||
onClick={closeModal}
|
onClick={closeModal}
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
|
onClick={(e) => {
|
||||||
|
// e.preventDefault();
|
||||||
|
e.stopPropagation();
|
||||||
|
}}
|
||||||
className={
|
className={
|
||||||
` bg-slate-800 p-6 rounded-lg shadow-lg w-1/3 ` +
|
` bg-slate-800 p-6 rounded-lg shadow-lg w-1/3 ` +
|
||||||
` transition-all duration-400 ` +
|
` transition-all duration-400 ` +
|
||||||
|
|||||||
Reference in New Issue
Block a user