From 098834b766a3097918c7763c8f3d7efa17c76917 Mon Sep 17 00:00:00 2001
From: Julian Leucker <leuckerj@gmail.com>
Date: Tue, 15 Aug 2023 22:43:19 +0200
Subject: [PATCH] Replace validityRange with timeGrid in Mini plans

---
 .../timetables/MiniTimeTable.vue               | 18 ++++++++++++++----
 .../timetables/RoomTimeTable.vue               |  4 ++--
 .../timetables/TeacherTimeTable.vue            |  4 ++--
 .../timetables/timetables.graphql              |  8 ++++----
 4 files changed, 22 insertions(+), 12 deletions(-)

diff --git a/aleksis/apps/lesrooster/frontend/components/timetable_management/timetables/MiniTimeTable.vue b/aleksis/apps/lesrooster/frontend/components/timetable_management/timetables/MiniTimeTable.vue
index 51b51da1..a097e292 100644
--- a/aleksis/apps/lesrooster/frontend/components/timetable_management/timetables/MiniTimeTable.vue
+++ b/aleksis/apps/lesrooster/frontend/components/timetable_management/timetables/MiniTimeTable.vue
@@ -2,12 +2,13 @@
 import { defineComponent } from "vue";
 import { slots } from "../../breaks_and_slots/slot.graphql";
 import LessonCard from "../LessonCard.vue";
+import MessageBox from "aleksis.core/components/generic/MessageBox.vue";
 
 export default defineComponent({
   name: "MiniTimeTable",
-  components: { LessonCard },
+  components: { LessonCard, MessageBox },
   props: {
-    validityRange: {
+    timeGrid: {
       type: Object,
       required: true,
     },
@@ -24,12 +25,12 @@ export default defineComponent({
       variables() {
         return {
           filters: JSON.stringify({
-            validity_range: this.validityRange.id,
+            time_grid: this.timeGrid.id,
           }),
         };
       },
       skip() {
-        return this.validityRange === null;
+        return this.timeGrid === null;
       },
       update: (data) => data.items,
       result({ data: { items } }) {
@@ -79,6 +80,8 @@ export default defineComponent({
 
 <template>
   <div class="timetable">
+    <!-- Empty div to fill top-left corner -->
+    <div></div>
     <v-card
       v-for="period in periods"
       :style="{
@@ -102,6 +105,13 @@ export default defineComponent({
       :style="styleForLesson(lesson)"
       :key="lesson.id"
     />
+
+    <message-box type="info" v-if="!lessons || lessons.length === 0">
+      {{ $t("lesrooster.timetable_management.no_lessons") }}
+    </message-box>
+    <message-box type="warning" v-if="!slots || slots.length === 0">
+      {{ $t("lesrooster.timetable_management.no_slots") }}
+    </message-box>
   </div>
 </template>
 
diff --git a/aleksis/apps/lesrooster/frontend/components/timetable_management/timetables/RoomTimeTable.vue b/aleksis/apps/lesrooster/frontend/components/timetable_management/timetables/RoomTimeTable.vue
index 37309760..a50154bb 100644
--- a/aleksis/apps/lesrooster/frontend/components/timetable_management/timetables/RoomTimeTable.vue
+++ b/aleksis/apps/lesrooster/frontend/components/timetable_management/timetables/RoomTimeTable.vue
@@ -22,12 +22,12 @@ export default defineComponent({
       query: lessonsRoom,
       variables() {
         return {
-          validityRange: this.validityRange.id,
+          timeGrid: this.timeGrid.id,
           room: this.roomId,
         };
       },
       skip() {
-        return this.validityRange === null;
+        return this.timeGrid === null;
       },
     },
   },
diff --git a/aleksis/apps/lesrooster/frontend/components/timetable_management/timetables/TeacherTimeTable.vue b/aleksis/apps/lesrooster/frontend/components/timetable_management/timetables/TeacherTimeTable.vue
index 6811c383..5ed32111 100644
--- a/aleksis/apps/lesrooster/frontend/components/timetable_management/timetables/TeacherTimeTable.vue
+++ b/aleksis/apps/lesrooster/frontend/components/timetable_management/timetables/TeacherTimeTable.vue
@@ -22,12 +22,12 @@ export default defineComponent({
       query: lessonsTeacher,
       variables() {
         return {
-          validityRange: this.validityRange.id,
+          timeGrid: this.timeGrid.id,
           teacher: this.teacherId,
         };
       },
       skip() {
-        return this.validityRange === null;
+        return this.timeGrid === null;
       },
     },
   },
diff --git a/aleksis/apps/lesrooster/frontend/components/timetable_management/timetables/timetables.graphql b/aleksis/apps/lesrooster/frontend/components/timetable_management/timetables/timetables.graphql
index 36648d1a..9011b59a 100644
--- a/aleksis/apps/lesrooster/frontend/components/timetable_management/timetables/timetables.graphql
+++ b/aleksis/apps/lesrooster/frontend/components/timetable_management/timetables/timetables.graphql
@@ -1,7 +1,7 @@
-query lessonsTeacher($teacher: ID!, $validityRange: ID!) {
+query lessonsTeacher($teacher: ID!, $timeGrid: ID!) {
   lessonsTeacher: lessonObjectsForTeacher(
     teacher: $teacher
-    validityRange: $validityRange
+    timeGrid: $timeGrid
   ) {
     id
     slotStart {
@@ -56,10 +56,10 @@ query lessonsTeacher($teacher: ID!, $validityRange: ID!) {
   }
 }
 
-query lessonsRoom($room: ID!, $validityRange: ID!) {
+query lessonsRoom($room: ID!, $timeGrid: ID!) {
   lessonsRoom: lessonObjectsForRoom(
     room: $room
-    validityRange: $validityRange
+    timeGrid: $timeGrid
   ) {
     id
     slotStart {
-- 
GitLab