@hed-hog/lms 0.0.268 → 0.0.270
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/hedhog/data/menu.yaml +8 -1
- package/hedhog/frontend/app/classes/[id]/page.tsx.ejs +1387 -0
- package/hedhog/frontend/app/classes/page.tsx.ejs +4 -4
- package/hedhog/frontend/app/courses/[id]/page.tsx.ejs +1237 -0
- package/hedhog/frontend/app/courses/[id]/structure/page.tsx.ejs +2642 -0
- package/hedhog/frontend/app/courses/page.tsx.ejs +825 -727
- package/hedhog/frontend/app/exams/[id]/attempt/page.tsx.ejs +976 -0
- package/hedhog/frontend/app/exams/[id]/questions/page.tsx.ejs +931 -0
- package/hedhog/frontend/app/exams/page.tsx.ejs +9 -7
- package/hedhog/frontend/app/training/page.tsx.ejs +3 -3
- package/hedhog/frontend/messages/en.json +703 -14
- package/hedhog/frontend/messages/pt.json +863 -174
- package/hedhog/query/triggers.sql +0 -0
- package/hedhog/table/certificate.yaml +89 -0
- package/hedhog/table/certificate_template.yaml +24 -0
- package/hedhog/table/course.yaml +67 -1
- package/hedhog/table/course_category.yaml +22 -0
- package/hedhog/table/course_class_attendance.yaml +34 -0
- package/hedhog/table/course_class_group.yaml +58 -0
- package/hedhog/table/course_class_session.yaml +38 -0
- package/hedhog/table/course_class_session_instructor.yaml +27 -0
- package/hedhog/table/course_enrollment.yaml +45 -0
- package/hedhog/table/course_image.yaml +33 -0
- package/hedhog/table/course_lesson.yaml +35 -0
- package/hedhog/table/course_lesson_file.yaml +23 -0
- package/hedhog/table/course_lesson_instructor.yaml +27 -0
- package/hedhog/table/course_lesson_progress.yaml +40 -0
- package/hedhog/table/course_lesson_question.yaml +24 -0
- package/hedhog/table/course_module.yaml +25 -0
- package/hedhog/table/course_prerequisite.yaml +48 -0
- package/hedhog/table/evaluation_rating.yaml +30 -0
- package/hedhog/table/evaluation_topic.yaml +68 -0
- package/hedhog/table/exam.yaml +91 -0
- package/hedhog/table/exam_answer.yaml +40 -0
- package/hedhog/table/exam_attempt.yaml +51 -0
- package/hedhog/table/exam_image.yaml +33 -0
- package/hedhog/table/exam_option.yaml +25 -0
- package/hedhog/table/exam_question.yaml +24 -0
- package/hedhog/table/image_type.yaml +28 -0
- package/hedhog/table/instructor.yaml +23 -0
- package/hedhog/table/learning_path.yaml +49 -0
- package/hedhog/table/learning_path_enrollment.yaml +33 -0
- package/hedhog/table/learning_path_image.yaml +33 -0
- package/hedhog/table/learning_path_step.yaml +43 -0
- package/hedhog/table/question.yaml +15 -0
- package/package.json +9 -6
- package/src/index.ts +1 -1
- package/src/lms.module.ts +15 -15
- package/hedhog/table/classes.yaml +0 -3
- package/hedhog/table/exams.yaml +0 -3
- package/hedhog/table/reports.yaml +0 -3
- package/hedhog/table/training.yaml +0 -3
|
@@ -389,7 +389,7 @@ export default function ExamesPage() {
|
|
|
389
389
|
if (existing) {
|
|
390
390
|
clearTimeout(existing);
|
|
391
391
|
clickTimers.current.delete(exame.id);
|
|
392
|
-
router.push(`/
|
|
392
|
+
router.push(`/lms/exams/${exame.id}/questions`);
|
|
393
393
|
} else {
|
|
394
394
|
const t = setTimeout(() => clickTimers.current.delete(exame.id), 300);
|
|
395
395
|
clickTimers.current.set(exame.id, t);
|
|
@@ -451,7 +451,7 @@ export default function ExamesPage() {
|
|
|
451
451
|
toast.success(t('toasts.examCreated'));
|
|
452
452
|
setSaving(false);
|
|
453
453
|
setSheetOpen(false);
|
|
454
|
-
setTimeout(() => router.push(`/
|
|
454
|
+
setTimeout(() => router.push(`/lms/exams/${newExame.id}/questions`), 400);
|
|
455
455
|
return;
|
|
456
456
|
}
|
|
457
457
|
setSaving(false);
|
|
@@ -585,7 +585,7 @@ export default function ExamesPage() {
|
|
|
585
585
|
</div>
|
|
586
586
|
|
|
587
587
|
{/* Search bar */}
|
|
588
|
-
<form onSubmit={handleSearch} className="mb-
|
|
588
|
+
<form onSubmit={handleSearch} className="-mt-4 mb-2">
|
|
589
589
|
<div className="flex flex-col gap-3 sm:flex-row sm:items-center">
|
|
590
590
|
<div className="relative flex-1">
|
|
591
591
|
<Search className="absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground" />
|
|
@@ -704,7 +704,7 @@ export default function ExamesPage() {
|
|
|
704
704
|
<Button
|
|
705
705
|
variant="ghost"
|
|
706
706
|
size="icon"
|
|
707
|
-
className="size-8 shrink-0
|
|
707
|
+
className="size-8 shrink-0 -mr-2 -mt-1"
|
|
708
708
|
onClick={(e) => e.stopPropagation()}
|
|
709
709
|
aria-label={t('cards.actions.label')}
|
|
710
710
|
>
|
|
@@ -715,7 +715,9 @@ export default function ExamesPage() {
|
|
|
715
715
|
<DropdownMenuItem
|
|
716
716
|
onClick={(e) => {
|
|
717
717
|
e.stopPropagation();
|
|
718
|
-
router.push(
|
|
718
|
+
router.push(
|
|
719
|
+
`/lms/exams/${exame.id}/questions`
|
|
720
|
+
);
|
|
719
721
|
}}
|
|
720
722
|
>
|
|
721
723
|
<ListChecks className="mr-2 size-4" />{' '}
|
|
@@ -724,7 +726,7 @@ export default function ExamesPage() {
|
|
|
724
726
|
<DropdownMenuItem
|
|
725
727
|
onClick={(e) => {
|
|
726
728
|
e.stopPropagation();
|
|
727
|
-
router.push(`/
|
|
729
|
+
router.push(`/lms/exams/${exame.id}/attempt`);
|
|
728
730
|
}}
|
|
729
731
|
>
|
|
730
732
|
<Play className="mr-2 size-4" />{' '}
|
|
@@ -1068,7 +1070,7 @@ export default function ExamesPage() {
|
|
|
1068
1070
|
)}
|
|
1069
1071
|
/>
|
|
1070
1072
|
</label>
|
|
1071
|
-
<SheetFooter className="mt-auto shrink-0 gap-2 pt-4">
|
|
1073
|
+
<SheetFooter className="mt-auto shrink-0 gap-2 pt-4 px-0">
|
|
1072
1074
|
<Button type="submit" disabled={saving} className="gap-2">
|
|
1073
1075
|
{saving && <Loader2 className="size-4 animate-spin" />}
|
|
1074
1076
|
{editingExame
|
|
@@ -604,7 +604,7 @@ export default function TrainingPage() {
|
|
|
604
604
|
</div>
|
|
605
605
|
|
|
606
606
|
{/* Search bar */}
|
|
607
|
-
<form onSubmit={handleSearch} className="mb-
|
|
607
|
+
<form onSubmit={handleSearch} className="-mt-4 mb-2">
|
|
608
608
|
<div className="flex flex-col gap-3 sm:flex-row sm:items-center">
|
|
609
609
|
<div className="relative flex-1">
|
|
610
610
|
<Search className="absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground" />
|
|
@@ -741,7 +741,7 @@ export default function TrainingPage() {
|
|
|
741
741
|
<Button
|
|
742
742
|
variant="ghost"
|
|
743
743
|
size="icon"
|
|
744
|
-
className="size-
|
|
744
|
+
className="size-8 shrink-0 -mr-2 -mt-1"
|
|
745
745
|
onClick={(e) => e.stopPropagation()}
|
|
746
746
|
aria-label={t('cards.actions.label')}
|
|
747
747
|
>
|
|
@@ -1110,7 +1110,7 @@ export default function TrainingPage() {
|
|
|
1110
1110
|
)}
|
|
1111
1111
|
</Field>
|
|
1112
1112
|
|
|
1113
|
-
<SheetFooter className="mt-auto shrink-0 gap-2 pt-4">
|
|
1113
|
+
<SheetFooter className="mt-auto shrink-0 gap-2 pt-4 px-0">
|
|
1114
1114
|
<Button type="submit" disabled={saving} className="gap-2">
|
|
1115
1115
|
{saving && <Loader2 className="size-4 animate-spin" />}
|
|
1116
1116
|
{editingFormacao
|