Skip to content
Snippets Groups Projects
Verified Commit 091797f8 authored by Jonathan Weth's avatar Jonathan Weth :keyboard:
Browse files

Use LessonEventLinkIterator for substitutions table

parent c0e6c1bc
No related branches found
No related tags found
1 merge request!394Show events with current changes in substitutions table
...@@ -11,6 +11,18 @@ export default { ...@@ -11,6 +11,18 @@ export default {
required: false, required: false,
default: "name", default: "name",
}, },
alternativeAttr: {
type: String,
required: false,
default: null,
},
},
methods: {
getAttr(item) {
let val = item[this.attr];
if (val) return val;
return this.alternativeAttr ? item[this.alternativeAttr] : val;
},
}, },
}; };
</script> </script>
...@@ -19,7 +31,7 @@ export default { ...@@ -19,7 +31,7 @@ export default {
<span v-bind="$attrs"> <span v-bind="$attrs">
<span v-for="(item, idx) in items" :key="idx"> <span v-for="(item, idx) in items" :key="idx">
<!-- eslint-disable-next-line @intlify/vue-i18n/no-raw-text --> <!-- eslint-disable-next-line @intlify/vue-i18n/no-raw-text -->
{{ item[attr] }}{{ idx + 1 < items.length ? "," : "" }} {{ getAttr(item) }}{{ idx + 1 < items.length ? "," : "" }}
</span> </span>
</span> </span>
</template> </template>
...@@ -99,14 +99,30 @@ import DateSelectFooter from "aleksis.core/components/generic/DateSelectFooter.v ...@@ -99,14 +99,30 @@ import DateSelectFooter from "aleksis.core/components/generic/DateSelectFooter.v
<!-- component and reuse? --> <!-- component and reuse? -->
<template #groups="{ item: { oldGroups, newGroups } }"> <template #groups="{ item: { oldGroups, newGroups } }">
<span v-if="newGroups.length > 0"> <span v-if="newGroups.length > 0">
<span class="strike-through" v-for="g in oldGroups" :key="g.id">{{ <span class="strike-through">
g.shortName <lesson-event-link-iterator
}}</span> :items="oldGroups"
attr="shortName"
alternative-attr="name"
/>
</span>
<!-- eslint-disable-next-line @intlify/vue-i18n/no-raw-text --> <!-- eslint-disable-next-line @intlify/vue-i18n/no-raw-text -->
<span>&nbsp;&nbsp;</span> <span>&nbsp;&nbsp;</span>
<strong v-for="g in newGroups" :key="g.id">{{ g.shortName }}</strong> <strong>
<lesson-event-link-iterator
:items="newGroups"
attr="shortName"
alternative-attr="name"
/>
</strong>
</span>
<span v-else>
<lesson-event-link-iterator
:items="oldGroups"
attr="shortName"
alternative-attr="name"
/>
</span> </span>
<span v-else v-for="g in oldGroups" :key="g.id">{{ g.shortName }}</span>
</template> </template>
<template #time="{ item: { startSlot, endSlot, startTime, endTime } }"> <template #time="{ item: { startSlot, endSlot, startTime, endTime } }">
<span v-if="startSlot && endSlot && startSlot === endSlot"> <span v-if="startSlot && endSlot && startSlot === endSlot">
...@@ -124,17 +140,29 @@ import DateSelectFooter from "aleksis.core/components/generic/DateSelectFooter.v ...@@ -124,17 +140,29 @@ import DateSelectFooter from "aleksis.core/components/generic/DateSelectFooter.v
</template> </template>
<template #teachers="{ item: { oldTeachers, newTeachers } }"> <template #teachers="{ item: { oldTeachers, newTeachers } }">
<span v-if="newTeachers.length > 0"> <span v-if="newTeachers.length > 0">
<span class="strike-through" v-for="t in oldTeachers" :key="t.id"> <span class="strike-through">
{{ t.shortName || t.fullName }} <lesson-event-link-iterator
:items="oldTeachers"
attr="shortName"
alternative-attr="fullName"
/>
</span> </span>
<!-- eslint-disable-next-line @intlify/vue-i18n/no-raw-text --> <!-- eslint-disable-next-line @intlify/vue-i18n/no-raw-text -->
<span>&nbsp;&nbsp;</span> <span>&nbsp;&nbsp;</span>
<strong v-for="t in newTeachers" :key="t.id"> <strong>
{{ t.shortName || t.fullName }} <lesson-event-link-iterator
:items="newTeachers"
attr="shortName"
alternative-attr="fullName"
/>
</strong> </strong>
</span> </span>
<span v-else v-for="t in oldTeachers" :key="t.id"> <span v-else>
{{ t.shortName || t.fullName }} <lesson-event-link-iterator
:items="oldTeachers"
attr="shortName"
alternative-attr="fullName"
/>
</span> </span>
</template> </template>
<template #subject="{ item: { oldSubject, newSubject } }"> <template #subject="{ item: { oldSubject, newSubject } }">
...@@ -151,18 +179,30 @@ import DateSelectFooter from "aleksis.core/components/generic/DateSelectFooter.v ...@@ -151,18 +179,30 @@ import DateSelectFooter from "aleksis.core/components/generic/DateSelectFooter.v
</template> </template>
<template #rooms="{ item: { oldRooms, newRooms } }"> <template #rooms="{ item: { oldRooms, newRooms } }">
<span v-if="newRooms.length > 0"> <span v-if="newRooms.length > 0">
<span class="strike-through" v-for="r in oldRooms" :key="r.id">{{ <span class="strike-through">
r.shortName || r.name <lesson-event-link-iterator
}}</span> :items="oldRooms"
attr="shortName"
alternative-attr="name"
/>
</span>
<!-- eslint-disable-next-line @intlify/vue-i18n/no-raw-text --> <!-- eslint-disable-next-line @intlify/vue-i18n/no-raw-text -->
<span>&nbsp;&nbsp;</span> <span>&nbsp;&nbsp;</span>
<strong v-for="r in newRooms" :key="r.id">{{ <strong>
r.shortName || r.name <lesson-event-link-iterator
}}</strong> :items="newRooms"
attr="shortName"
alternative-attr="name"
/>
</strong>
</span>
<span v-else>
<lesson-event-link-iterator
:items="oldRooms"
attr="shortName"
alternative-attr="name"
/>
</span> </span>
<span v-else v-for="r in oldRooms" :key="r.id">{{
r.shortName || r.name
}}</span>
</template> </template>
<template #notes="{ item: { cancelled, notes } }"> <template #notes="{ item: { cancelled, notes } }">
<v-chip v-if="cancelled" color="green" text-color="white" small> <v-chip v-if="cancelled" color="green" text-color="white" small>
...@@ -189,8 +229,11 @@ import DateSelectFooter from "aleksis.core/components/generic/DateSelectFooter.v ...@@ -189,8 +229,11 @@ import DateSelectFooter from "aleksis.core/components/generic/DateSelectFooter.v
import { substitutionsForDate } from "./substitutions.graphql"; import { substitutionsForDate } from "./substitutions.graphql";
import { DateTime } from "luxon"; import { DateTime } from "luxon";
import LessonEventLinkIterator from "./LessonEventLinkIterator.vue";
export default { export default {
name: "Substitutions", name: "Substitutions",
components: { LessonEventLinkIterator },
props: { props: {
date: { date: {
type: String, type: String,
......
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