🚸 Add text if there is no entry for selected day
- Overlay if substitutions / history view is still loading - Overlay if no substitution exists for current day - Overlay if no history exists for current day
This commit is contained in:
@@ -3,6 +3,9 @@ import { history } from "../store";
|
||||
import { getSubstitutionText } from "../util";
|
||||
import { computed } from "vue";
|
||||
import dayjs from "dayjs";
|
||||
import InfoCard from "./info-card.vue";
|
||||
import ClockIconBig from "./icons/clock-icon-big.vue";
|
||||
import ClockOffIcon from "./icons/clock-off-icon.vue";
|
||||
|
||||
const props = defineProps({
|
||||
date: {
|
||||
@@ -22,45 +25,55 @@ const chars = {
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="history">
|
||||
<template v-for="event in historyOfDate" :key="event">
|
||||
<div
|
||||
class="change"
|
||||
:style="`background-color: var(--substitution-background-${event.type}`"
|
||||
>
|
||||
<span class="hour">{{ event.lesson }}{{ chars[event.type] }}</span>
|
||||
<div class="infos">
|
||||
<!-- If the entry is a change show which values changed -->
|
||||
<span class="text" v-if="event.type == 'change'">
|
||||
<template v-for="(change, key) in event.change" :key="key">
|
||||
<p>
|
||||
{{ key }}:
|
||||
<s>{{ change.before }}</s>
|
||||
{{ change.after }}
|
||||
</p>
|
||||
</template>
|
||||
<InfoCard
|
||||
v-show="typeof historyOfDate == 'undefined'"
|
||||
:icon="ClockIconBig"
|
||||
:title="$t('infoCard.titles.loading')"
|
||||
:text="$t('infoCard.texts.loading')"
|
||||
/>
|
||||
<InfoCard
|
||||
v-show="typeof historyOfDate == 'object' && historyOfDate.length == 0"
|
||||
:icon="ClockOffIcon"
|
||||
:title="$t('infoCard.titles.noHistory')"
|
||||
:text="$t('infoCard.texts.noHistory')"
|
||||
/>
|
||||
<template v-for="event in historyOfDate" :key="event">
|
||||
<div
|
||||
class="change"
|
||||
:style="`background-color: var(--substitution-background-${event.type}`"
|
||||
>
|
||||
<span class="hour">{{ event.lesson }}{{ chars[event.type] }}</span>
|
||||
<div class="infos">
|
||||
<!-- If the entry is a change show which values changed -->
|
||||
<span class="text" v-if="event.type == 'change'">
|
||||
<template v-for="(change, key) in event.change" :key="key">
|
||||
<p>
|
||||
{{ key }}:
|
||||
<s>{{ change.before }}</s>
|
||||
{{ change.after }}
|
||||
</p>
|
||||
</template>
|
||||
</span>
|
||||
<!-- If the entry is an addition or deletion generate a text -->
|
||||
<span class="text" v-else
|
||||
>{{
|
||||
$t(getSubstitutionText(event.change), {
|
||||
subject: event.change.change.subject,
|
||||
class: event.change.class.join(", "),
|
||||
teacher: event.change.teacher,
|
||||
new_teacher: event.change.change.teacher,
|
||||
room: event.change.change.room,
|
||||
})
|
||||
}}<span class="notes" v-if="event.change.notes">
|
||||
{{ $t("timetable.notes") }} {{ event.change.notes }}
|
||||
</span>
|
||||
<!-- If the entry is an addition or deletion generate a text -->
|
||||
<span class="text" v-else
|
||||
>{{
|
||||
$t(getSubstitutionText(event.change), {
|
||||
subject: event.change.change.subject,
|
||||
class: event.change.class.join(", "),
|
||||
teacher: event.change.teacher,
|
||||
new_teacher: event.change.change.teacher,
|
||||
room: event.change.change.room,
|
||||
})
|
||||
}}<span class="notes" v-if="event.change.notes">
|
||||
{{ $t("timetable.notes") }} {{ event.change.notes }}
|
||||
</span>
|
||||
</span>
|
||||
<span class="notes">
|
||||
{{ dayjs(event.updatedAt).format("DD.MM.YYYY, HH:mm") }}
|
||||
</span>
|
||||
</div>
|
||||
</span>
|
||||
<span class="notes">
|
||||
{{ dayjs(event.updatedAt).format("DD.MM.YYYY, HH:mm") }}
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
|
||||
Reference in New Issue
Block a user