Add support for multiple remote timetables

- Add timetable "title" column to db
- Make API return array of timetables
- Add settings page for selecting a timetable
- Add InfoCard if no timetable is selected
This commit is contained in:
2023-06-18 14:30:36 +02:00
parent dac0d09167
commit 48364d4c59
10 changed files with 176 additions and 30 deletions

View File

@ -1,11 +1,16 @@
<script setup>
import TimetableSetup from "@/components/timetable-setup.vue";
import { classList, classFilter, timetable, loadingFailed } from "@/store";
import {
classList,
classFilter,
timetable,
loadingFailed,
loading,
} from "@/store";
import DayCarousel from "@/components/day-carousel.vue";
import TimetableList from "@/components/timetable-list.vue";
import InfoCard from "@/components/info-card.vue";
import { ClockIcon } from "lucide-vue-next";
import { CloudOffIcon } from "lucide-vue-next";
import { ClockIcon, CloudOffIcon, CalendarOffIcon } from "lucide-vue-next";
</script>
<template>
@ -20,11 +25,18 @@ import { CloudOffIcon } from "lucide-vue-next";
>
<InfoCard
class="card"
v-if="!loadingFailed"
v-if="!loadingFailed && loading"
:icon="ClockIcon"
:title="$t('infoCard.titles.loading')"
:text="$t('infoCard.texts.loadingTimetable')"
/>
<InfoCard
class="card"
v-else-if="!loadingFailed && !loading"
:icon="CalendarOffIcon"
:title="$t('infoCard.titles.noTimetable')"
:text="$t('infoCard.texts.noTimetable')"
/>
<InfoCard
class="card"
v-else