From 7cda6e6fd46eaf60a141ffaed89f9cfd874da70d Mon Sep 17 00:00:00 2001
From: Michael Bauer <michael-bauer@posteo.de>
Date: Wed, 17 Apr 2024 19:33:33 +0200
Subject: [PATCH] Parameterize coursebook loading component

---
 .../components/coursebook/Coursebook.vue         |  7 ++++++-
 .../components/coursebook/CoursebookLoader.vue   | 16 ++++++++++++++--
 2 files changed, 20 insertions(+), 3 deletions(-)

diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue b/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue
index 9c4ee9244..de8afbe8d 100644
--- a/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue
+++ b/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue
@@ -45,6 +45,9 @@
     </template>
     <template #loading>
       <coursebook-loader
+        :number-of-days="10"
+        :number-of-docs="5"
+      />
     </template>
 
     <template #no-data>
@@ -220,7 +223,9 @@ export default {
       });
     },
     setDate(date) {
-      this.$router.replace({ hash: date })
+      if (!(this.$route.hash.substring(1) === date)) {
+        this.$router.replace({ hash: date })
+      }
     },
     fixScrollPos(height, top) {
       console.log('fix @', top, document.documentElement.scrollTop, height, document.documentElement.scrollHeight);
diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/CoursebookLoader.vue b/aleksis/apps/alsijil/frontend/components/coursebook/CoursebookLoader.vue
index a99df0588..dfcfe81a6 100644
--- a/aleksis/apps/alsijil/frontend/components/coursebook/CoursebookLoader.vue
+++ b/aleksis/apps/alsijil/frontend/components/coursebook/CoursebookLoader.vue
@@ -1,12 +1,12 @@
 <template>
   <div>
-    <v-list-item v-for="i in 10" :key="'i-' + i">
+    <v-list-item v-for="i in numberOfDays" :key="'i-' + i">
       <v-list-item-content>
         <v-list-item-title>
           <v-skeleton-loader type="heading" />
         </v-list-item-title>
         <v-list max-width="100%">
-          <v-list-item v-for="j in 5" :key="'j-' + j">
+          <v-list-item v-for="j in numberOfDocs" :key="'j-' + j">
             <DocumentationLoader />
           </v-list-item>
         </v-list>
@@ -20,5 +20,17 @@ import DocumentationLoader from "./documentation/DocumentationLoader.vue";
 export default {
   name: "CoursebookLoader",
   components: { DocumentationLoader },
+  props: {
+    numberOfDays: {
+      type: Number,
+      required: false,
+      default: 1
+    },
+    numberOfDocs: {
+      type: Number,
+      required: false,
+      default: 1
+    },
+  },
 };
 </script>
-- 
GitLab