<script setup>
|
|
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 () {
|
|
const dataKurs = await getKurs(kursId)
|
console.log(dataKurs)
|
kurs.value = dataKurs
|
|
const dataKursItems = await getKursItems(kursId)
|
console.log(dataKursItems)
|
kursItems.value = dataKursItems
|
|
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>
|
|
<template>
|
|
<div>
|
<h1>
|
Kurs
|
<small>{{ kurs?.title }}</small>
|
</h1>
|
<p v-if="error">{{ error }}</p>
|
|
|
<div class="user" v-if="kurs">
|
|
<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>obj_id</span>
|
<div>{{ kurs.obj_id }}</div>
|
|
<span style="margin-top: 1em;">title</span>
|
<div style="grid-column: span 3; margin-top: 1em">{{ kurs.title }}</div>
|
|
<span>description</span>
|
<div style="grid-column: span 3">{{ kurs.description }}</div>
|
|
</div>
|
|
<div class="cols">
|
|
<div>
|
<h2>KursItems <small>({{ kursItems?.length }})</small></h2>
|
<KursItems :kursItems="kursItems" />
|
</div>
|
|
<div>
|
<h2>KursRoles <small>({{ kursRoles?.length }})</small></h2>
|
<KursRoles :kursRoles="kursRoles" />
|
</div>
|
|
</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>
|
|
</div>
|
|
</template>
|
|
<style scoped lang="stylus">
|
|
.cols
|
display flex;
|
gap 2em
|
|
</style>
|