REST Service for POPCORN - ILIAS
alex
2025-07-11 770082c6d51439f1b8b8ed9b84745e9b9cb02301
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
<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'
import KursTnByRole from '../components/KursTnByRole.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>
            <KursTnByRole :kursTnByRolle="kursTnByRolle" />
         </div>
 
      </div>
 
   </div>
 
</template>
 
<style scoped lang="stylus">
 
.cols
   display flex;
   gap 2em
 
</style>