From 3a06e3121dd540e7c26fa691b967717a9300731a Mon Sep 17 00:00:00 2001
From: alex <alex@alexloehr.net>
Date: Fri, 11 Jul 2025 08:14:01 +0000
Subject: [PATCH] adding tn by rolle

---
 vue/src/pages/KursDetail.vue |  122 ++++++++++++++++++++++++++++++----------
 1 files changed, 91 insertions(+), 31 deletions(-)

diff --git a/vue/src/pages/KursDetail.vue b/vue/src/pages/KursDetail.vue
index 1393176..54d88ac 100644
--- a/vue/src/pages/KursDetail.vue
+++ b/vue/src/pages/KursDetail.vue
@@ -2,13 +2,16 @@
 
 import {useRoute} from 'vue-router'
 import {onMounted, reactive, ref} from "vue"
-import {getKurs, getKursItems, getKursTn} from "../lib/api.js"
+import {getKurs, getKursItems, getKursTn, getKursTnByRole, iliasBase, routerBase} from "../lib/api.js"
+import LinkExtern from "../components/LinkExtern.vue"
+import dayjs from "dayjs"
 
 const route = useRoute()
 const kursId = route.params.kursId
 const kurs = ref(null)
 const kursItems = ref(null)
 const kursTn = ref(null)
+const kursTnByRolle = ref(null)
 const error = ref(null)
 
 onMounted(init)
@@ -27,7 +30,14 @@
    const dataKursTn = await getKursTn(kursId)
    console.log(dataKursTn)
    kursTn.value = dataKursTn
+
+   const dataKursTnByRolle = await getKursTnByRole(kursId)
+   console.log(dataKursTnByRolle)
+   kursTnByRolle.value = dataKursTnByRolle
+
 }
+
+const aaa = import.meta.env.VITE_TST
 
 </script>
 
@@ -37,7 +47,6 @@
       <h1>
          Kurs
          <small>{{ kurs?.title }}</small>
-         <!--         <small>{{ user?.firstname }} {{ user?.lastname }}</small>-->
       </h1>
       <p v-if="error">{{ error }}</p>
 
@@ -45,7 +54,12 @@
       <div class="user" v-if="kurs">
 
          <span>ref_id</span>
-         <div>{{ kurs.ref_id }}</div>
+         <div>
+            <a :href="`${iliasBase}/goto.php?target=${kurs.type}_${kurs.ref_id}`" target="_blank">
+               {{ kurs.ref_id }}
+               <LinkExtern />
+            </a>
+         </div>
 
          <span>obj_id</span>
          <div>{{ kurs.obj_id }}</div>
@@ -64,17 +78,24 @@
       </h2>
       <table>
          <thead>
-            <th>parent_id</th>
-            <th>ref_id</th>
-            <th>obj_id</th>
-            <th>title</th>
-            <th>type</th>
+            <tr>
+               <th>parent_id</th>
+               <th>ref_id</th>
+               <th>obj_id</th>
+               <th>title</th>
+               <th>type</th>
+            </tr>
          </thead>
          <tbody>
             <!-- TODO verlinken auf Ziel in ILAS | goto.php?target=crs_ID -->
             <tr v-for="item in kursItems">
                <td>{{ item.parent_id }}</td>
-               <td>{{ item.ref_id }}</td>
+               <td>
+                  <a :href="`${iliasBase}/goto.php?target=${item.type}_${item.ref_id}`" target="_blank">
+                     {{ item.ref_id }}
+                     <LinkExtern />
+                  </a>
+               </td>
                <td>{{ item.obj_id }}</td>
                <td>{{ item.title }}</td>
                <td>{{ item.type }}</td>
@@ -82,33 +103,72 @@
          </tbody>
       </table>
 
-      <h2>
-         KursTn
-         <small>({{ kursTn?.length }})</small>
-      </h2>
-      <div :style="{columns: kursTn?.length > 16 ? 3 : 1}">
-         <table>
-            <thead>
-               <th>usr_id</th>
-               <th>login</th>
-               <th>firstname</th>
-               <th>lastname</th>
-            </thead>
-            <tbody>
-               <tr v-for="tn in kursTn">
-                  <td>{{ tn.usr_id }}</td>
-                  <td>{{ tn.login }}</td>
-                  <td>{{ tn.firstname }}</td>
-                  <td>{{ tn.lastname }}</td>
-               </tr>
-            </tbody>
-         </table>
+      <!--      <div :style="{columns: kursTn?.length > 16 ? 1 : 1}">-->
+      <div id="teilnehmer">
+         <div>
+            <h2>KursTn by Members <small>({{ kursTn?.length }})</small></h2>
+            <table>
+               <thead>
+                  <tr>
+                     <th>usr_id</th>
+                     <th>login</th>
+                     <th>firstname</th>
+                     <th>lastname</th>
+                     <th>passed</th>
+                     <th>status</th>
+                     <th>status_changed</th>
+                  </tr>
+               </thead>
+               <tbody>
+                  <tr v-for="tn in kursTn">
+                     <td>
+                        <RouterLink :to="`${routerBase}/ui/user/${tn.usr_id}`">{{ tn.usr_id }}</RouterLink>
+                     </td>
+                     <td>{{ tn.login }}</td>
+                     <td>{{ tn.firstname }}</td>
+                     <td>{{ tn.lastname }}</td>
+                     <td>{{ tn.passed }}</td>
+                     <td>{{ tn.status }}</td>
+                     <td>{{ dayjs(tn.status_changed).format("DD.MM.YYYY HH:mm:ss") }}</td>
+                  </tr>
+               </tbody>
+            </table>
+         </div>
+
+         <div>
+            <h2>KursTnByRole <small>({{ kursTnByRolle?.length }})</small></h2>
+            <table>
+               <thead>
+                  <tr>
+                     <th>role_id</th>
+                     <th>usr_id</th>
+                     <th>firstname</th>
+                     <th>lastname</th>
+                  </tr>
+               </thead>
+               <tbody>
+                  <tr v-for="tn in kursTnByRolle">
+                     <td>{{ tn.role_id }}</td>
+                     <td>
+                        <RouterLink :to="`${routerBase}/ui/user/${tn.usr_id}`">{{ tn.usr_id }}</RouterLink>
+                     </td>
+                     <td>{{ tn.firstname }}</td>
+                     <td>{{ tn.lastname }}</td>
+                  </tr>
+               </tbody>
+            </table>
+         </div>
+
       </div>
 
    </div>
 
 </template>
 
-<style scoped>
+<style scoped lang="stylus">
+
+#teilnehmer
+   display flex;
+   gap 2em
 
 </style>

--
Gitblit v1.8.0