Skip to content
Snippets Groups Projects
Commit 4aa505f8 authored by Julian's avatar Julian
Browse files

Load extraMarks once for the coursebook

parent 1124843e
No related branches found
No related tags found
1 merge request!362Resolve "Add personal note management dialog in course book"
...@@ -34,6 +34,7 @@ ...@@ -34,6 +34,7 @@
@init="transition" @init="transition"
:key="'day-' + date" :key="'day-' + date"
ref="days" ref="days"
:extra-marks="extraMarks"
/> />
<coursebook-loader /> <coursebook-loader />
...@@ -73,6 +74,7 @@ import { documentationsForCoursebook } from "./coursebook.graphql"; ...@@ -73,6 +74,7 @@ import { documentationsForCoursebook } from "./coursebook.graphql";
import CoursebookFilters from "./CoursebookFilters.vue"; import CoursebookFilters from "./CoursebookFilters.vue";
import CoursebookLoader from "./CoursebookLoader.vue"; import CoursebookLoader from "./CoursebookLoader.vue";
import CoursebookEmptyMessage from "./CoursebookEmptyMessage.vue"; import CoursebookEmptyMessage from "./CoursebookEmptyMessage.vue";
import { extraMarks } from "../extra_marks/extra_marks.graphql";
export default { export default {
name: "Coursebook", name: "Coursebook",
...@@ -132,8 +134,15 @@ export default { ...@@ -132,8 +134,15 @@ export default {
initDate: false, initDate: false,
currentDate: "", currentDate: "",
hashUpdater: false, hashUpdater: false,
extraMarks: [],
}; };
}, },
apollo: {
extraMarks: {
query: extraMarks,
update: (data) => data.items,
},
},
computed: { computed: {
// Assertion: Should only fire on page load or selection change. // Assertion: Should only fire on page load or selection change.
// Resets date range. // Resets date range.
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
> >
<documentation-modal <documentation-modal
:documentation="doc" :documentation="doc"
:extra-marks="extraMarks"
:affected-query="lastQuery" :affected-query="lastQuery"
/> />
</v-list-item> </v-list-item>
...@@ -45,6 +46,10 @@ export default { ...@@ -45,6 +46,10 @@ export default {
required: false, required: false,
default: false, default: false,
}, },
extraMarks: {
type: Array,
required: true,
},
}, },
emits: ["init"], emits: ["init"],
methods: { methods: {
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<mobile-fullscreen-dialog v-model="popup" max-width="500px"> <mobile-fullscreen-dialog v-model="popup" max-width="500px">
<template #activator="activator"> <template #activator="activator">
<!-- list view -> activate dialog --> <!-- list view -> activate dialog -->
<documentation compact v-bind="$attrs" :dialog-activator="activator" /> <documentation compact v-bind="$attrs" :dialog-activator="activator" :extra-marks="extraMarks" />
</template> </template>
<!-- dialog view -> deactivate dialog --> <!-- dialog view -> deactivate dialog -->
<!-- cancel | save (through lesson-summary) --> <!-- cancel | save (through lesson-summary) -->
...@@ -27,5 +27,11 @@ export default { ...@@ -27,5 +27,11 @@ export default {
popup: false, popup: false,
}; };
}, },
props: {
extraMarks: {
type: Array,
required: true,
},
},
}; };
</script> </script>
...@@ -33,6 +33,13 @@ export default { ...@@ -33,6 +33,13 @@ export default {
required: false, required: false,
default: () => ({ attrs: {}, on: {} }), default: () => ({ attrs: {}, on: {} }),
}, },
/**
* Once loaded list of all extra marks to avoid excessive network and database queries
*/
extraMarks: {
type: Array,
required: true,
},
}, },
computed: { computed: {
...@@ -46,6 +53,7 @@ export default { ...@@ -46,6 +53,7 @@ export default {
compact: this.compact, compact: this.compact,
dialogActivator: this.dialogActivator, dialogActivator: this.dialogActivator,
affectedQuery: this.affectedQuery, affectedQuery: this.affectedQuery,
extraMarks: this.extraMarks,
}; };
}, },
}, },
......
...@@ -13,17 +13,6 @@ export default { ...@@ -13,17 +13,6 @@ export default {
required: true, required: true,
}, },
}, },
data() {
return {
extraMarks: [],
};
},
apollo: {
extraMarks: {
query: extraMarks,
update: (data) => data.items,
},
},
}; };
</script> </script>
......
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