Skip to content
Snippets Groups Projects
Commit 6513a320 authored by permcu's avatar permcu
Browse files

Initialize coursebook frontend

parent 75514e71
No related branches found
No related tags found
2 merge requests!352Draft: Resolve "Add dialog with each lesson's students",!350Resolve "Add simple course book list"
<template>
<c-r-u-d-iterator
i18n-key="coursebook"
:gql-query="gqlQuery"
:gql-additional-query-args="gqlQueryArgs"
>
<template #default="{ items, groupedItems }">
{{ items }}
</template>
</c-r-u-d-iterator>
</template>
<script>
import CRUDIterator from "aleksis.core/components/generic/CRUDIterator.vue"
import gqlDocumentationsForCoursebook from "./coursebook.graphql"
export default {
name: "Coursebook",
components: {
CRUDIterator,
},
props: {
// Either as props OR route params
// TODO: Remove default?
courseId: {
type: [Number, String],
required: false,
default: 0,
},
// Next two in ISODate
dateStart: {
type: String,
required: false,
default: "",
},
dateEnd: {
type: String,
required: false,
default: "",
},
},
data() {
return {
gqlQuery: gqlDocumentationsForCoursebook,
};
},
computed: {
gqlQueryArgs() {
return {
// Assure courseId is a number
courseId: Number(this.courseId),
dateStart: this.dateStart,
dateEnd: this.dateEnd,
};
},
},
};
</script>
...@@ -2,6 +2,7 @@ import { ...@@ -2,6 +2,7 @@ import {
notLoggedInValidator, notLoggedInValidator,
hasPersonValidator, hasPersonValidator,
} from "aleksis.core/routeValidators"; } from "aleksis.core/routeValidators";
import { DateTime } from "luxon";
export default { export default {
meta: { meta: {
...@@ -392,5 +393,41 @@ export default { ...@@ -392,5 +393,41 @@ export default {
byTheGreatnessOfTheAlmightyAleksolotlISwearIAmWorthyOfUsingTheLegacyBaseTemplate: true, byTheGreatnessOfTheAlmightyAleksolotlISwearIAmWorthyOfUsingTheLegacyBaseTemplate: true,
}, },
}, },
{
path: "coursebook/:courseId(\\d+)/",
component: () => import("./components/Coursebook.vue"),
redirect: to => {
console.log('redirect to', to);
return { name: "alsijil.coursebook_by_course_id_and_date",
params: {
courseId: to.params.courseId,
dateStart: DateTime.now().toISODate(),
dateEnd: DateTime.now().plus({ weeks: 1 }).toISODate(),
},
};
},
name: "alsijil.coursebook_by_course_id",
props: true,
meta: {
inMenu: true,
icon: "mdi-calendar-outline",
iconActive: "mdi-calendar",
titleKey: "calendar.menu_title",
toolbarTitle: "calendar.menu_title",
permission: "core.view_calendar_feed_rule",
},
children: [
{
path: ":dateStart(\\d\\d\\d\\d-\\d\\d-\\d\\d)/:dateEnd(\\d\\d\\d\\d-\\d\\d-\\d\\d)/",
component: () => import("./components/Coursebook.vue"),
name: "alsijil.coursebook_by_course_id_and_date",
meta: {
titleKey: "calendar.menu_title",
toolbarTitle: "calendar.menu_title",
permission: "core.view_calendar_feed_rule",
},
},
],
},
], ],
}; };
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment