diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue b/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue index 4e673db88090f473f2bc036bd128881327d21fc3..1403a38bb524c7fa407ba94f8193cbda00e8b6ba 100644 --- a/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue +++ b/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue @@ -34,6 +34,7 @@ @init="transition" :key="'day-' + date" ref="days" + :extra-marks="extraMarks" /> <coursebook-loader /> @@ -73,6 +74,7 @@ import { documentationsForCoursebook } from "./coursebook.graphql"; import CoursebookFilters from "./CoursebookFilters.vue"; import CoursebookLoader from "./CoursebookLoader.vue"; import CoursebookEmptyMessage from "./CoursebookEmptyMessage.vue"; +import { extraMarks } from "../extra_marks/extra_marks.graphql"; export default { name: "Coursebook", @@ -132,8 +134,15 @@ export default { initDate: false, currentDate: "", hashUpdater: false, + extraMarks: [], }; }, + apollo: { + extraMarks: { + query: extraMarks, + update: (data) => data.items, + }, + }, computed: { // Assertion: Should only fire on page load or selection change. // Resets date range. diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/CoursebookDay.vue b/aleksis/apps/alsijil/frontend/components/coursebook/CoursebookDay.vue index 2f15c3fd031c62ff9fc96cf5c35042f2274d3321..c4a677c9f5f72227537f7d842baa51902d9859ac 100644 --- a/aleksis/apps/alsijil/frontend/components/coursebook/CoursebookDay.vue +++ b/aleksis/apps/alsijil/frontend/components/coursebook/CoursebookDay.vue @@ -12,6 +12,7 @@ > <documentation-modal :documentation="doc" + :extra-marks="extraMarks" :affected-query="lastQuery" /> </v-list-item> @@ -45,6 +46,10 @@ export default { required: false, default: false, }, + extraMarks: { + type: Array, + required: true, + }, }, emits: ["init"], methods: { diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/documentation/DocumentationModal.vue b/aleksis/apps/alsijil/frontend/components/coursebook/documentation/DocumentationModal.vue index 460f39f97fc15b61d0476dd99ed33d29cf43029c..c10a5eb55cc662a0bd8ea6d8f3e26c61a98c0579 100644 --- a/aleksis/apps/alsijil/frontend/components/coursebook/documentation/DocumentationModal.vue +++ b/aleksis/apps/alsijil/frontend/components/coursebook/documentation/DocumentationModal.vue @@ -4,7 +4,7 @@ <mobile-fullscreen-dialog v-model="popup" max-width="500px"> <template #activator="activator"> <!-- list view -> activate dialog --> - <documentation compact v-bind="$attrs" :dialog-activator="activator" /> + <documentation compact v-bind="$attrs" :dialog-activator="activator" :extra-marks="extraMarks" /> </template> <!-- dialog view -> deactivate dialog --> <!-- cancel | save (through lesson-summary) --> @@ -27,5 +27,11 @@ export default { popup: false, }; }, + props: { + extraMarks: { + type: Array, + required: true, + }, + }, }; </script> diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/documentation/documentationPartMixin.js b/aleksis/apps/alsijil/frontend/components/coursebook/documentation/documentationPartMixin.js index 88a8e852f8cc6e333303034fb5f590d174708886..35243ee3ca5e055c0d2fd5375fba614bbbd6e246 100644 --- a/aleksis/apps/alsijil/frontend/components/coursebook/documentation/documentationPartMixin.js +++ b/aleksis/apps/alsijil/frontend/components/coursebook/documentation/documentationPartMixin.js @@ -33,6 +33,13 @@ export default { required: false, default: () => ({ attrs: {}, on: {} }), }, + /** + * Once loaded list of all extra marks to avoid excessive network and database queries + */ + extraMarks: { + type: Array, + required: true, + }, }, computed: { @@ -46,6 +53,7 @@ export default { compact: this.compact, dialogActivator: this.dialogActivator, affectedQuery: this.affectedQuery, + extraMarks: this.extraMarks, }; }, }, diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/personal_notes/ExtraMarksNote.vue b/aleksis/apps/alsijil/frontend/components/coursebook/personal_notes/ExtraMarksNote.vue index d94a02f73a9f895cb475c6821d090d146a2ef758..177b21e803f073e7965815662a00727b8b8a24e4 100644 --- a/aleksis/apps/alsijil/frontend/components/coursebook/personal_notes/ExtraMarksNote.vue +++ b/aleksis/apps/alsijil/frontend/components/coursebook/personal_notes/ExtraMarksNote.vue @@ -13,17 +13,6 @@ export default { required: true, }, }, - data() { - return { - extraMarks: [], - }; - }, - apollo: { - extraMarks: { - query: extraMarks, - update: (data) => data.items, - }, - }, }; </script>