REST Service for POPCORN - ILIAS
alex
2025-12-08 82f18bd37dae283be0940416f3ab7684ad56044c
vue/src/pages/UserDetail.vue
@@ -2,27 +2,31 @@
import {useRoute} from 'vue-router'
import {onMounted, reactive, ref} from "vue"
import {getUser, getUserTeilnahmen, iliasBase, routerBase} from "@/lib/api"
import LinkExtern from "../components/LinkExtern.vue"
import dayjs from "dayjs"
const route = useRoute()
const userId = route.params.userId
const users = reactive({
})
document.title = `User ${userId} | globus-ilias-rest`
const error = ref(null)
const user = ref(null)
const teilnahmen = ref([])
onMounted(init)
/////////////////////////////////////////////////////////////////////////
async function init() {
   const res = await fetch(`/user/${userId}`)
   console.log(res)
   if(res.status === 200) {
      users = res.data
   }
   else {
async function init () {
   const data = await getUser(userId)
   console.log(data)
   user.value = data
   }
   console.log(3333)
   const tn = await getUserTeilnahmen(userId)
   console.log(tn)
   teilnahmen.value = tn
}
</script>
@@ -30,10 +34,93 @@
<template>
   <div>
      <h1>User Detail</h1>
      <p>{{userId}}</p>
      <p v-if="error">{{error}}</p>
      <pre>{{users}}</pre>
      <h1>
         User {{ userId }}
         <small class="ml-05">{{ user?.firstname }} {{ user?.lastname }}</small>
      </h1>
      <p v-if="error">{{ error }}</p>
      <!--      <pre>{{ user }}</pre>-->
      <div class="user" v-if="user">
         <span>usr_id</span>
         <div>
            <a :href="`${iliasBase}/ilias.php?obj_id=${user.usr_id}&ref_id=7&admin_mode=settings&cmd=view&cmdClass=ilobjusergui&baseClass=ilAdministrationGUI`" target="_blank">
               {{ user.usr_id }}
               <LinkExtern />
            </a>
         </div>
         <span>login</span>
         <div>{{ user.login }}</div>
         <span>firstname</span>
         <div>{{ user.firstname }}</div>
         <span>lastname</span>
         <div>{{ user.lastname }}</div>
         <span>gender</span>
         <div>{{ user.gender }}</div>
         <span>email</span>
         <div>{{ user.email }}</div>
         <span>Markt</span>
         <div>{{ user.Markt }}</div>
         <span>Marktnummer</span>
         <div>{{ user.Marktnummer }}</div>
         <span>Personalnummer</span>
         <div>{{ user.Personalnummer }}</div>
         <span>department</span>
         <div>{{ user.department }}</div>
      </div>
      <h2>Teilnahmen <small>({{teilnahmen?.length}})</small></h2>
      <table>
         <thead>
            <tr>
               <th>obj_id</th>
               <th>ref_id</th>
               <th>usr_id</th>
               <th>title</th>
               <th>passed</th>
               <th>status</th>
               <th>status_changed</th>
            </tr>
         </thead>
         <tbody>
            <tr v-for="tn in teilnahmen">
               <td>{{ tn.obj_id }}</td>
               <td class="nowrap">
                  <RouterLink :to="`${routerBase}/ui/kurs/${tn.ref_id}`">
                     {{ tn.ref_id }}
                  </RouterLink>
                  |
                  <a :href="`${iliasBase}/goto.php?target=crs_${tn.ref_id}`" target="_blank">
                     <!--                     {{ tn.ref_id }}-->
                     <LinkExtern />
                  </a>
               </td>
               <td>{{ tn.usr_id }}</td>
               <td>{{ tn.title }}</td>
               <td>{{ tn.passed }}</td>
               <td>{{ tn.status }}</td>
               <td class="nowrap">
                  <div v-if="tn.status_changed">
                     {{ dayjs(tn.status_changed).format("DD.MM.YYYY HH:mm:ss") }}
                  </div>
               </td>
            </tr>
         </tbody>
      </table>
      <!--      <pre>{{teilnahmen}}</pre>-->
   </div>
</template>