From 3619a948d3d42f63bfa7e330899fe8cddd03f55e Mon Sep 17 00:00:00 2001
From: alex <alex@alexloehr.net>
Date: Fri, 11 Jul 2025 13:22:54 +0000
Subject: [PATCH] GS-2174
---
vue/src/pages/KursDetail.vue | 159 +++++++++++++++++++++++++++++------------------------
1 files changed, 87 insertions(+), 72 deletions(-)
diff --git a/vue/src/pages/KursDetail.vue b/vue/src/pages/KursDetail.vue
index 2da1ab3..be99d9f 100644
--- a/vue/src/pages/KursDetail.vue
+++ b/vue/src/pages/KursDetail.vue
@@ -2,35 +2,55 @@
import {useRoute} from 'vue-router'
import {onMounted, reactive, ref} from "vue"
+import {getKurs, getKursItems, getKursRoles, getKursTn, getKursTnByRole, iliasBase, routerBase} from "../lib/api.js"
+import LinkExtern from "../components/LinkExtern.vue"
+import dayjs from "dayjs"
+import KursItems from '../components/KursItems.vue'
+import KursRoles from '../components/KursRoles.vue'
+import KursMembers from '../components/KursMembers.vue'
+
const route = useRoute()
const kursId = route.params.kursId
+document.title = `Kurs ${kursId} | globus-ilias-rest`
+
const kurs = ref(null)
const kursItems = ref(null)
const kursTn = ref(null)
+const kursTnByRolle = ref(null)
+const kursRoles = ref(null)
const error = ref(null)
onMounted(init)
/////////////////////////////////////////////////////////////////////////
+
async function init () {
- let resKurs = await fetch(`/api/kurs/${kursId}?token=jiuGfr432898D90290kjfsldkfn3hh8F`)
- let dataKurs = await resKurs.json()
+
+ const dataKurs = await getKurs(kursId)
console.log(dataKurs)
kurs.value = dataKurs
- let resKursItems = await fetch(`/api/kurs/items/${kursId}?token=jiuGfr432898D90290kjfsldkfn3hh8F`)
- let dataKursItems = await resKursItems.json()
+ const dataKursItems = await getKursItems(kursId)
console.log(dataKursItems)
kursItems.value = dataKursItems
- let resKursTn = await fetch(`/api/kurs/teilnehmer/${kursId}?token=jiuGfr432898D90290kjfsldkfn3hh8F`)
- let dataKursTn = await resKursTn.json()
+ const dataKursTn = await getKursTn(kursId)
console.log(dataKursTn)
kursTn.value = dataKursTn
+ const dataKursTnByRolle = await getKursTnByRole(kursId)
+ console.log(dataKursTnByRolle)
+ kursTnByRolle.value = dataKursTnByRolle
+
+ const dataKursRoles = await getKursRoles(kursId)
+ console.log(dataKursRoles)
+ kursRoles.value = dataKursRoles
+
}
+
+const aaa = import.meta.env.VITE_TST
</script>
@@ -38,92 +58,87 @@
<div>
<h1>
- Kurs {{ kursId }}
-<!-- <small>{{ user?.firstname }} {{ user?.lastname }}</small>-->
+ Kurs
+ <small>{{ kurs?.title }}</small>
</h1>
<p v-if="error">{{ error }}</p>
- <h2>Kurs</h2>
- <pre>{{kurs}}</pre>
- <h2>KursItems</h2>
- <pre>{{kursItems}}</pre>
- <h2>KursTn</h2>
- <pre>{{kursTn}}</pre>
-<!-- <pre>{{ user }}</pre>-->
+ <div class="user" v-if="kurs">
-<!-- <div class="user" v-if="user">-->
-<!-- <span>usr_id</span>-->
-<!-- <div>{{ user.usr_id }}</div>-->
+ <span>ref_id</span>
+ <div>
+ <a :href="`${iliasBase}/goto.php?target=${kurs.type}_${kurs.ref_id}`" target="_blank">
+ {{ kurs.ref_id }}
+ <LinkExtern />
+ </a>
+ </div>
-<!-- <span>login</span>-->
-<!-- <div>{{ user.login }}</div>-->
+ <span>obj_id</span>
+ <div>{{ kurs.obj_id }}</div>
-<!-- <span>firstname</span>-->
-<!-- <div>{{ user.firstname }}</div>-->
+ <span style="margin-top: 1em;">title</span>
+ <div style="grid-column: span 3; margin-top: 1em">{{ kurs.title }}</div>
-<!-- <span>lastname</span>-->
-<!-- <div>{{ user.lastname }}</div>-->
+ <span>description</span>
+ <div style="grid-column: span 3">{{ kurs.description }}</div>
-<!-- <span>gender</span>-->
-<!-- <div>{{ user.gender }}</div>-->
+ </div>
-<!-- <span>email</span>-->
-<!-- <div>{{ user.email }}</div>-->
+ <div class="cols">
-<!-- <span>Markt</span>-->
-<!-- <div>{{ user.Markt }}</div>-->
+ <div>
+ <h2>KursItems <small>({{ kursItems?.length }})</small></h2>
+ <KursItems :kursItems="kursItems" />
+ </div>
-<!-- <span>Marktnummer</span>-->
-<!-- <div>{{ user.Marktnummer }}</div>-->
+ <div>
+ <h2>KursRoles <small>({{ kursRoles?.length }})</small></h2>
+ <KursRoles :kursRoles="kursRoles" />
+ </div>
-<!-- <span>Personalnummer</span>-->
-<!-- <div>{{ user.Personalnummer }}</div>-->
+ </div>
-<!-- <span>department</span>-->
-<!-- <div>{{ user.department }}</div>-->
+ <div class="cols">
+ <div>
+ <h2>KursTn by Members <small>({{ kursTn?.length }})</small></h2>
+ <KursMembers :kursTn="kursTn" />
+ </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>-->
-
- <!-- <table v-if="user">-->
- <!-- <tbody>-->
- <!-- <tr>-->
- <!-- <td>user_id</td>-->
- <!-- <td>{{user.usr_id}}</td>-->
- <!-- <td>login</td>-->
- <!-- <td>{{user.login}}</td>-->
- <!-- </tr>-->
- <!-- <tr>-->
- <!-- <td>firstname</td>-->
- <!-- <td>{{user.firstname}}</td>-->
- <!-- <td>lastname</td>-->
- <!-- <td>{{user.lastname}}</td>-->
- <!-- </tr>-->
- <!-- <tr>-->
- <!-- <td>usr_id</td>-->
- <!-- <td>{{user.usr_id}}</td>-->
- <!-- </tr>-->
- <!-- <tr>-->
- <!-- <td>usr_id</td>-->
- <!-- <td>{{user.usr_id}}</td>-->
- <!-- </tr>-->
- <!-- <tr>-->
- <!-- <td>usr_id</td>-->
- <!-- <td>{{user.usr_id}}</td>-->
- <!-- </tr>-->
- <!-- <tr>-->
- <!-- <td>usr_id</td>-->
- <!-- <td>{{user.usr_id}}</td>-->
- <!-- </tr>-->
-
- <!-- </tbody>-->
- <!-- </table>-->
+ </div>
</div>
</template>
-<style scoped>
+<style scoped lang="stylus">
+
+.cols
+ display flex;
+ gap 2em
</style>
--
Gitblit v1.8.0