Newer
Older
<template>
<ApolloQuery
:query="require('./CourseBook.graphql')"
:variables="{ lessonId: $route.params.lessonId }"
<template v-slot="{ result: { loading, error, data } }">
<!-- Error -->
<message-box v-if="error" type="error">An error occurred</message-box>
<!-- Result -->
<div v-else-if="data" class="result apollo">
<update-indicator @manual-update="updateManually()" ref="indicator" :status="status"></update-indicator>
<v-subheader>{{ data.lesson.subject.name }}</v-subheader>
<v-col cols="12">
<lesson-documentations
:lessonDocumentations="data.lessonDocumentations"
:plannedLessonperiodsDatetimes="data.lesson.plannedLessonperiodsDatetimes"
:excuseTypes="data.excuseTypes"
:extraMarks="data.extraMarks"
/>
</v-col>
</v-row>
</div>
<!-- No result or Loading -->
<div v-else>
<v-progress-circular
indeterminate
color="primary"
class="ma-auto"
></v-progress-circular>
</div>
</template>
</ApolloQuery>
</template>
<script>
import {CHANGES, SAVED, UPDATING} from "../../UpdateStatuses.js";
import UpdateIndicator from "./UpdateIndicator.vue";
import LessonDocumentations from "./LessonDocumentations.vue";
components: {
UpdateIndicator,
methods: {
processDataChange(event) {
this.status = CHANGES;
// alert("Probably save the data");
console.log(event);
setTimeout(() => {
this.status = UPDATING;
}, 500)
setTimeout(() => {
this.status = SAVED;
}, 1000)
},
updateManually(event) {
alert("Data sync triggered manually");
this.status = UPDATING;
setTimeout(() => {
this.status = SAVED;
}, 500)
}
},
name: "course-book",
data: () => {
return {
ping: "ping",
status: SAVED,
}
}