import {CHANGES, SAVED, UPDATING} from "../../alsijil/UpdateStatuses.js"; export default { 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) } }, props: ["lessonId"], name: "course-book", data: () => { return { ping: "ping", status: SAVED, // lessonId: 352 } }, template: ` <ApolloQuery :query="gql => gql\` query CourseBook($lessonId: ID!) { excuseTypes { name shortName } lesson: lessonsById(id: $lessonId) { groups { name shortName members { id fullName } } subject { name } } lessonDocumentations: lessonDocumentationsByLessonId(id: $lessonId) { id topic homework groupNote period date personalNotes { id person { id fullName } late absent excused excuseType { name shortName } remarks extraMarks { name shortName } } } extraMarks { name shortName } } \`" :variables="{ 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-row v-if="data.lessonDocumentations.length > 0"> <v-col v-for="item in data.lessonDocumentations" cols="12" v-bind:key="item.id"> <lesson-documentation v-bind:key="item.id" :id="item.id" :groups="data.lesson.groups" :excuse-types="data.excuseTypes" :extra-marks="data.extraMarks" :period="item.period" :personal-notes="item.personalNotes" @change-personal-notes="processDataChange" :date="item.date" @change-date="processDataChange" :topic="item.topic" @change-topic="processDataChange" :homework="item.homework" @change-homework="processDataChange" :group-note="item.groupNote" @change-group-note="processDataChange" ></lesson-documentation> </v-col> </v-row> <message-box v-else type="info">No coursebook for you :(</message-box> </div> <!-- No result or Loading --> <div v-else> <v-progress-circular indeterminate color="primary" class="ma-auto" ></v-progress-circular> </div> </template> </ApolloQuery>` }