mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-20 00:12:15 +00:00
refactors the LvMenu into its own component and removes debugging prints
This commit is contained in:
@@ -86,7 +86,6 @@ Vue.createApp({
|
||||
return Vue.$fhcapi.Search.search(searchsettings);
|
||||
},
|
||||
updatesearchtypes: function(newValues){
|
||||
console.log(newValues,"this are the new values")
|
||||
this.selectedtypes= newValues;
|
||||
|
||||
},
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
import MylvStudent from "../../../components/Cis/Mylv/Student.js";
|
||||
import Phrasen from "../../../plugin/Phrasen.js";
|
||||
|
||||
Vue.createApp({
|
||||
components: {
|
||||
MylvStudent
|
||||
}
|
||||
}).mount('#content');
|
||||
}).use(Phrasen).mount('#content');
|
||||
@@ -1,118 +1,123 @@
|
||||
import BsModal from "../Bootstrap/Modal.js";
|
||||
import Alert from "../Bootstrap/Alert.js";
|
||||
import LvMenu from "../Cis/Mylv/LvMenu.js"
|
||||
|
||||
export default {
|
||||
components: {
|
||||
BsModal,
|
||||
Alert,
|
||||
},
|
||||
mixins: [BsModal],
|
||||
props: {
|
||||
event:Object,
|
||||
title:{
|
||||
type:String,
|
||||
default:"title"
|
||||
},
|
||||
/*
|
||||
* NOTE(chris):
|
||||
* Hack to expose in "emits" declared events to $props which we use
|
||||
* in the v-bind directive to forward all events.
|
||||
* @see: https://github.com/vuejs/core/issues/3432
|
||||
*/
|
||||
onHideBsModal: Function,
|
||||
onHiddenBsModal: Function,
|
||||
onHidePreventedBsModal: Function,
|
||||
onShowBsModal: Function,
|
||||
onShownBsModal: Function,
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
data:this.event,
|
||||
menu: [],
|
||||
result: false,
|
||||
info: null,
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
start_time: function(){
|
||||
if(!this.data.start) return 'N/A';
|
||||
return this.data.start.getHours() + ":" + this.data.start.getMinutes();
|
||||
},
|
||||
end_time: function(){
|
||||
if(!this.data.end) return 'N/A';
|
||||
return this.data.end.getHours() + ":" + this.data.end.getMinutes();
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
onModalShow: function(){
|
||||
console.log(this.event)
|
||||
if (this.event.type == 'lehreinheit') {
|
||||
this.$fhcApi.factory.stundenplan.getLehreinheitStudiensemester(this.event.lehreinheit_id[0]).then(
|
||||
res=>res.data
|
||||
).then(
|
||||
studiensemester_kurzbz =>{
|
||||
this.$fhcApi.factory.addons.getLvMenu(this.data.lehrveranstaltung_id, studiensemester_kurzbz).then(res => {
|
||||
//this.$fhcApi.factory.addons.getLvMenu(750, "WS2005").then(res =>{
|
||||
if (res.data) {
|
||||
this.menu = res.data;
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
)
|
||||
components: {
|
||||
BsModal,
|
||||
Alert,
|
||||
LvMenu,
|
||||
},
|
||||
mixins: [BsModal],
|
||||
props: {
|
||||
event:Object,
|
||||
title:{
|
||||
type:String,
|
||||
default:"title"
|
||||
},
|
||||
/*
|
||||
* NOTE(chris):
|
||||
* Hack to expose in "emits" declared events to $props which we use
|
||||
* in the v-bind directive to forward all events.
|
||||
* @see: https://github.com/vuejs/core/issues/3432
|
||||
*/
|
||||
onHideBsModal: Function,
|
||||
onHiddenBsModal: Function,
|
||||
onHidePreventedBsModal: Function,
|
||||
onShowBsModal: Function,
|
||||
onShownBsModal: Function,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
data:this.event,
|
||||
menu: [],
|
||||
result: false,
|
||||
info: null,
|
||||
isMenuSelected:false,
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
start_time: function(){
|
||||
if(!this.data.start) return 'N/A';
|
||||
return this.data.start.getHours() + ":" + this.data.start.getMinutes();
|
||||
},
|
||||
end_time: function(){
|
||||
if(!this.data.end) return 'N/A';
|
||||
return this.data.end.getHours() + ":" + this.data.end.getMinutes();
|
||||
}
|
||||
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.modal = this.$refs.modalContainer.modal;
|
||||
},
|
||||
popup(options) {
|
||||
return BsModal.popup.bind(this)(null, options);
|
||||
},
|
||||
template: /*html*/ `
|
||||
<bs-modal ref="modalContainer" @showBsModal="onModalShow" v-bind="$props" body-class="" dialog-class="modal-lg" class="bootstrap-alert" backdrop="false" >
|
||||
<template v-slot:title>
|
||||
<template v-if="data.titel">{{ data.titel + ' - ' + data.lehrfach_bez + ' [' + data.ort_kurzbz+']'}}</template>
|
||||
<template v-else>{{ data.lehrfach_bez + ' [' + data.ort_kurzbz+']'}}</template>
|
||||
</template>
|
||||
<template v-slot:default>
|
||||
<div class="row">
|
||||
<div class="offset-3 col-4"><span>Datum:</span></div>
|
||||
<div class=" col"><span>{{data.datum}}</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="offset-3 col-4"><span>Raum:</span></div>
|
||||
<div class=" col"><span>{{data.ort_kurzbz}}</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="offset-3 col-4"><span>LV:</span></div>
|
||||
<div class=" col"><span>{{'('+data.lehrform+') ' + data.lehrfach_bez}}</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="offset-3 col-4"><span>Lektor:</span></div>
|
||||
<div class=" col"><span>{{data.lektor.map(lektor=>lektor.kurzbz).join("/")}}</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="offset-3 col-4"><span>Zeitraum:</span></div>
|
||||
<div class=" col"><span>{{start_time + ' - ' + end_time}}</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class=" col"><h2>LvMenu:</h2></div>
|
||||
</div>
|
||||
<div v-for="menuPunkt in menu" class="row">
|
||||
<div class="col">
|
||||
<a target="_blank" :href="menuPunkt.c4_link">{{menuPunkt.name}}</a>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<!-- optional footer -->
|
||||
<template v-slot:footer >
|
||||
|
||||
<button class="btn btn-outline-secondary " @click="hide">{{$p.t('ui','cancel')}}</button>
|
||||
</template>
|
||||
<!-- end of optional footer -->
|
||||
</bs-modal>`,
|
||||
},
|
||||
methods:{
|
||||
onModalShow: function(){
|
||||
if (this.event.type == 'lehreinheit') {
|
||||
this.$fhcApi.factory.stundenplan.getLehreinheitStudiensemester(this.event.lehreinheit_id[0]).then(
|
||||
res=>res.data
|
||||
).then(
|
||||
studiensemester_kurzbz =>{
|
||||
this.$fhcApi.factory.addons.getLvMenu(this.data.lehrveranstaltung_id, studiensemester_kurzbz).then(res => {
|
||||
if (res.data) {
|
||||
this.menu = res.data;
|
||||
}
|
||||
});
|
||||
}
|
||||
)
|
||||
}
|
||||
},
|
||||
onModalHide:function(){
|
||||
this.isMenuSelected = false;
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.modal = this.$refs.modalContainer.modal;
|
||||
},
|
||||
popup(options) {
|
||||
return BsModal.popup.bind(this)(null, options);
|
||||
},
|
||||
template: /*html*/ `
|
||||
<bs-modal ref="modalContainer" @showBsModal="onModalShow" @hideBsModal="onModalHide" v-bind="$props" :bodyClass="''" :dialogClass="{'modal-lg': !isMenuSelected, 'modal-fullscreen':isMenuSelected}" class="bootstrap-alert" backdrop="false" >
|
||||
<template v-slot:title>
|
||||
<template v-if="data.titel">{{ data.titel + ' - ' + data.lehrfach_bez + ' [' + data.ort_kurzbz+']'}}</template>
|
||||
<template v-else>{{ data.lehrfach_bez + ' [' + data.ort_kurzbz+']'}}</template>
|
||||
</template>
|
||||
<template v-slot:default>
|
||||
<template v-if="!isMenuSelected">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h3>Lehrveranstaltungs Informationen</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="offset-3 col-4"><span>Datum:</span></div>
|
||||
<div class=" col"><span>{{data.datum}}</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="offset-3 col-4"><span>Raum:</span></div>
|
||||
<div class=" col"><span>{{data.ort_kurzbz}}</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="offset-3 col-4"><span>LV:</span></div>
|
||||
<div class=" col"><span>{{'('+data.lehrform+') ' + data.lehrfach_bez}}</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="offset-3 col-4"><span>Lektor:</span></div>
|
||||
<div class=" col"><span>{{data.lektor.map(lektor=>lektor.kurzbz).join("/")}}</span></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="offset-3 col-4"><span>Zeitraum:</span></div>
|
||||
<div class=" col"><span>{{start_time + ' - ' + end_time}}</span></div>
|
||||
</div>
|
||||
<hr class="my-5">
|
||||
<div v-if="menu" class="row">
|
||||
<div class="col">
|
||||
<h3>Lehrveranstaltungs Menu</h3>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<lv-menu v-model:isMenuSelected="isMenuSelected" :menu="menu"></lv-menu>
|
||||
</template>
|
||||
<!-- optional footer -->
|
||||
<template v-slot:footer >
|
||||
<button class="btn btn-outline-secondary " @click="hide">{{$p.t('ui','cancel')}}</button>
|
||||
</template>
|
||||
<!-- end of optional footer -->
|
||||
</bs-modal>`,
|
||||
};
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
|
||||
export default {
|
||||
props:{
|
||||
isMenuSelected:{
|
||||
type:Boolean,
|
||||
default:false,
|
||||
},
|
||||
menu:{
|
||||
type:Array,
|
||||
default:null,
|
||||
},
|
||||
},
|
||||
data(){
|
||||
return{
|
||||
selectedMenu:null,
|
||||
}
|
||||
},
|
||||
watch:{
|
||||
isMenuSelected: function (newValue) {
|
||||
// if no Menu point has been selected, show all Menu options
|
||||
if (!newValue){
|
||||
this.selectedMenu = null;
|
||||
}
|
||||
}
|
||||
},
|
||||
emits:["update:isMenuSelected"],
|
||||
methods:{
|
||||
selectMenu: function (menuItem, index = null) {
|
||||
|
||||
// early return if link is #
|
||||
if (index != null && menuItem.c4_linkList[index][1] == '#') return;
|
||||
|
||||
switch (menuItem.id) {
|
||||
case "core_menu_mailanstudierende": window.location.href = menuItem.c4_link; break;
|
||||
default:
|
||||
this.selectedMenu = { ...menuItem };
|
||||
this.$emit("update:isMenuSelected", true);
|
||||
}
|
||||
|
||||
if (this.selectedMenu && index != null && menuItem.c4_linkList[index][1] != '#') {
|
||||
this.selectedMenu.c4_link = menuItem.c4_linkList[index][1];
|
||||
this.selectedMenu.name += ' - ' + menuItem.c4_linkList[index][0];
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
},
|
||||
template:/*html*/`
|
||||
<div v-if="selectedMenu" class="d-flex flex-column h-100">
|
||||
<div class="d-flex mb-2">
|
||||
<button v-if="selectedMenu" @click="$emit('update:isMenuSelected', false)" class="btn btn-secondary me-2"><i class="fa fa-chevron-left"></i> Back</button>
|
||||
<h2>{{selectedMenu.name}}</h2>
|
||||
</div>
|
||||
<iframe class="h-100 w-100" :src="selectedMenu.c4_link" :title="selectedMenu.name"></iframe>
|
||||
</div>
|
||||
<div v-else-if="!menu">No Menu available</div>
|
||||
<div v-else :style="{'display':'grid', 'row-gap':'10px', 'column-gap':'10px', 'grid-template-columns':'repeat(3,minmax(100px,1fr))', 'grid-template-rows':'repeat('+Math.ceil(menu.length / 3)+',minmax(100px,1fr))'} ">
|
||||
<div :title="menuItem.name" role="button" @click="selectMenu(menuItem)" class="lvUebersichtMenuPunkt border border-1 d-flex flex-column align-items-center justify-content-center p-1 text-center" v-for="(menuItem, index) in menu" :key="index">
|
||||
<img :src="menuItem.c4_icon" :alt="menuItem.name" ></img>
|
||||
<span @click="selectMenu(menuItem)" class="underline_hover mt-2">{{menuItem.name}}</span>
|
||||
<span v-for="([text,link],index) in menuItem.c4_linkList" @click.stop="selectMenu(menuItem,index)" :class="{'underline_hover':menuItem.c4_linkList[index][1] != '#'}" class="mt-1" :index="index">{{text}}</span>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
`
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
import BsModal from "../../Bootstrap/Modal";
|
||||
|
||||
import LvMenu from "./LvMenu";
|
||||
export default {
|
||||
|
||||
props:{
|
||||
@@ -13,42 +13,26 @@ export default {
|
||||
return {
|
||||
result: false,
|
||||
menu: [],
|
||||
selectedMenu:null,
|
||||
isMenuSelected:false,
|
||||
|
||||
}
|
||||
},
|
||||
mixins:[BsModal],
|
||||
components:{
|
||||
BsModal,
|
||||
LvMenu,
|
||||
},
|
||||
methods:{
|
||||
selectMenu: function(menuItem, index=null){
|
||||
|
||||
// early return if link is #
|
||||
if(index != null && menuItem.c4_linkList[index][1] == '#') return;
|
||||
|
||||
switch(menuItem.id){
|
||||
case "core_menu_mailanstudierende": window.location.href=menuItem.c4_link; break;
|
||||
default:
|
||||
this.selectedMenu= {...menuItem};
|
||||
}
|
||||
|
||||
if( this.selectedMenu && index != null && menuItem.c4_linkList[index][1] !='#'){
|
||||
this.selectedMenu.c4_link = menuItem.c4_linkList[index][1];
|
||||
this.selectedMenu.name += ' - ' + menuItem.c4_linkList[index][0];
|
||||
}
|
||||
},
|
||||
|
||||
hiddenModal: function(){
|
||||
this.selectedMenu = null;
|
||||
this.isMenuSelected = false;
|
||||
},
|
||||
showModal: function(){
|
||||
|
||||
this.$fhcApi.factory.addons.getLvMenu(this.event.lehrveranstaltung_id, this.event.studiensemester_kurzbz).then(res =>{
|
||||
//this.$fhcApi.factory.addons.getLvMenu(750, "WS2005").then(res =>{
|
||||
if(res.data){
|
||||
this.menu = res.data;
|
||||
}
|
||||
|
||||
});
|
||||
},
|
||||
},
|
||||
@@ -56,29 +40,14 @@ export default {
|
||||
this.modal = this.$refs.modalContainer;
|
||||
},
|
||||
template:/*html*/`
|
||||
<bs-modal :bodyClass="selectedMenu ? '' : 'px-4 py-5'" @showBsModal="showModal" @hiddenBsModal="hiddenModal" ref="modalContainer" :dialogClass="{'modal-lg': !selectedMenu, 'modal-fullscreen':selectedMenu}">
|
||||
<bs-modal :bodyClass="isMenuSelected ? '' : 'px-4 py-5'" @showBsModal="showModal" @hiddenBsModal="hiddenModal" ref="modalContainer" :dialogClass="{'modal-lg': !isMenuSelected, 'modal-fullscreen':isMenuSelected}">
|
||||
<template #title>
|
||||
<span v-if="event?.lehrfach_bez ">{{event?.lehrfach_bez + (event?.stg_kurzbzlang?' / ' + event?.stg_kurzbzlang:'')}}</span>
|
||||
<span v-else>Lehrveranstaltungs Übersicht</span>
|
||||
|
||||
|
||||
</template>
|
||||
<template #default>
|
||||
<div v-if="selectedMenu" class="d-flex flex-column h-100">
|
||||
<div class="d-flex mb-2">
|
||||
<button v-if="selectedMenu" @click="selectedMenu=null" class="btn btn-secondary me-2"><i class="fa fa-chevron-left"></i> Back</button>
|
||||
<h2>{{selectedMenu.name}}</h2>
|
||||
</div>
|
||||
<iframe class="h-100 w-100" :src="selectedMenu.c4_link" :title="selectedMenu.name"></iframe>
|
||||
</div>
|
||||
<div v-else-if="!menu">No Menu available</div>
|
||||
<div v-else :style="{'display':'grid', 'row-gap':'10px', 'column-gap':'10px', 'grid-template-columns':'repeat(3,minmax(100px,1fr))', 'grid-template-rows':'repeat('+Math.ceil(menu.length / 3)+',minmax(100px,1fr))'} ">
|
||||
<div :title="menuItem.name" role="button" @click="selectMenu(menuItem)" class="lvUebersichtMenuPunkt border border-1 d-flex flex-column align-items-center justify-content-center p-1 text-center" v-for="(menuItem, index) in menu" :key="index">
|
||||
<img :src="menuItem.c4_icon" :alt="menuItem.name" ></img>
|
||||
<span @click="selectMenu(menuItem)" class="underline_hover mt-2">{{menuItem.name}}</span>
|
||||
<span v-for="([text,link],index) in menuItem.c4_linkList" @click.stop="selectMenu(menuItem,index)" :class="{'underline_hover':menuItem.c4_linkList[index][1] != '#'}" class="mt-1" :index="index">{{text}}</span>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<lv-menu v-model:isMenuSelected="isMenuSelected" :menu="menu"></lv-menu>
|
||||
</template>
|
||||
|
||||
</bs-modal>
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
import BsModal from '../../../../../Bootstrap/Modal.js';
|
||||
import Phrasen from '../../../../../../mixins/Phrasen.js';
|
||||
import LvMenu from '../../../LvMenu.js';
|
||||
|
||||
const infos = {};
|
||||
|
||||
export default {
|
||||
components: {
|
||||
BsModal
|
||||
BsModal,
|
||||
LvMenu
|
||||
},
|
||||
mixins: [
|
||||
BsModal,
|
||||
@@ -35,7 +37,9 @@ export default {
|
||||
},
|
||||
data: () => ({
|
||||
result: true,
|
||||
info: null
|
||||
info: null,
|
||||
isMenuSelected: false,
|
||||
menu: [],
|
||||
}),
|
||||
computed: {
|
||||
lektorNames() {
|
||||
@@ -76,112 +80,130 @@ export default {
|
||||
}).catch(() => this.info = {});
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
onModelHide() {
|
||||
this.isMenuSelected = false;
|
||||
},
|
||||
onModalShow() {
|
||||
this.$fhcApi.factory.addons.getLvMenu(this.lehrveranstaltung_id, this.studien_semester)
|
||||
.then(res => {
|
||||
this.menu = res.data;
|
||||
})
|
||||
.catch((error) => this.$fhcAlert.handleSystemError);
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.modal = this.$refs.modalContainer.modal;
|
||||
},
|
||||
popup(options) {
|
||||
return BsModal.popup.bind(this)(null, options);
|
||||
},
|
||||
template: `<bs-modal ref="modalContainer" class="bootstrap-alert" v-bind="$props" body-class="" dialog-class="modal-lg">
|
||||
template: /*html*/`
|
||||
<bs-modal ref="modalContainer" @hideBsModal="onModelHide" @showBsModal="onModalShow" class="bootstrap-alert" v-bind="$props" body-class="" :dialogClass="{'modal-lg': !isMenuSelected, 'modal-fullscreen':isMenuSelected}">
|
||||
<template v-slot:title>
|
||||
{{p.t('lvinfo/lehrveranstaltungsinformationen')}}
|
||||
</template>
|
||||
<template v-slot:default>
|
||||
<div v-if="!info" class="text-center">
|
||||
<i class="fa-solid fa-spinner fa-pulse fa-3x"></i>
|
||||
</div>
|
||||
<table v-else class="table table-hover">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>{{p.t('lehre/lehrveranstaltung')}}</th>
|
||||
<td>{{bezeichnung}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{p.t('lehre/studiengang')}}</th>
|
||||
<td>{{studiengang_kuerzel}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{p.t('lehre/semester')}}</th>
|
||||
<td>{{semester}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{p.t('lehre/studiensemester')}}</th>
|
||||
<td>{{studien_semester}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{p.t('lehre/organisationsform')}}</th>
|
||||
<td>{{orgform_kurzbz}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{p.t('lehre/lehrbeauftragter')}}</th>
|
||||
<td>
|
||||
<ul v-if="lektorNames.length" class="list-unstyled mb-0">
|
||||
<li v-for="name in lektorNames" :key="name">
|
||||
<!-- TODO(chris): link? -->
|
||||
{{name}}
|
||||
</li>
|
||||
</ul>
|
||||
<template v-else>
|
||||
{{p.t('lehre/keinLektorZugeordnet')}}
|
||||
</template>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="lvLeitung">
|
||||
<th>{{p.t('lehre/lvleitung')}}</th>
|
||||
<td>
|
||||
<ul class="list-unstyled mb-0">
|
||||
<li v-for="name in lvLeitung" :key="name">
|
||||
<!-- TODO(chris): link? -->
|
||||
{{name}}
|
||||
</li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{p.t('global/sprache')}}</th>
|
||||
<td>{{sprache}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{p.t('lehre/ects')}}</th>
|
||||
<td>{{ects}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{p.t('lehre/incomingplaetze')}}</th>
|
||||
<td>{{incoming}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{p.t('lehre/organisationseinheit')}}</th>
|
||||
<td>
|
||||
{{oe}} <br>
|
||||
(
|
||||
<i>{{p.t('global/leitung')}}: </i>{{oeLeitung.join(', ')}}
|
||||
<template v-if="koordinator">
|
||||
<i>{{p.t('global/koordination')}}: </i>{{koordinator.join(', ')}}
|
||||
</template>
|
||||
)
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div v-if="info && info.lvinfo">
|
||||
<div v-if="Object.keys(info.lvinfo).length > 1" class="text-end">
|
||||
<div class="btn-group" role="group" :title="p.t('global/verfuegbareSprachen')" :aria-label="p.t('global/verfuegbareSprachen')">
|
||||
<template v-for="lang in info.sprachen" :key="lang.index">
|
||||
<button v-if="info.lvinfo[lang.sprache]" type="button" class="btn btn-outline-primary" :class="lang.sprache == currentLang ? 'active' : ''" @click.prevent="info.lastLang = lang.sprache">{{lang.bezeichnung[lang.index-1]}}</button>
|
||||
</template>
|
||||
</div>
|
||||
<template v-if="!isMenuSelected">
|
||||
<div v-if="!info" class="text-center">
|
||||
<i class="fa-solid fa-spinner fa-pulse fa-3x"></i>
|
||||
</div>
|
||||
<template v-for="i in info.lvinfo[currentLang]" :key="info">
|
||||
<h4>{{i.header}}</h4>
|
||||
<h6 v-if="i.subheader">{{i.subheader}}</h6>
|
||||
<ul v-if="Array.isArray(i.body)">
|
||||
<li v-for="e in i.body" :key="e">{{e}}</li>
|
||||
</ul>
|
||||
<p v-else>
|
||||
{{i.body}}
|
||||
</p>
|
||||
</template>
|
||||
</div>
|
||||
<table v-else class="table table-hover">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>{{p.t('lehre/lehrveranstaltung')}}</th>
|
||||
<td>{{bezeichnung}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{p.t('lehre/studiengang')}}</th>
|
||||
<td>{{studiengang_kuerzel}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{p.t('lehre/semester')}}</th>
|
||||
<td>{{semester}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{p.t('lehre/studiensemester')}}</th>
|
||||
<td>{{studien_semester}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{p.t('lehre/organisationsform')}}</th>
|
||||
<td>{{orgform_kurzbz}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{p.t('lehre/lehrbeauftragter')}}</th>
|
||||
<td>
|
||||
<ul v-if="lektorNames.length" class="list-unstyled mb-0">
|
||||
<li v-for="name in lektorNames" :key="name">
|
||||
<!-- TODO(chris): link? -->
|
||||
{{name}}
|
||||
</li>
|
||||
</ul>
|
||||
<template v-else>
|
||||
{{p.t('lehre/keinLektorZugeordnet')}}
|
||||
</template>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="lvLeitung">
|
||||
<th>{{p.t('lehre/lvleitung')}}</th>
|
||||
<td>
|
||||
<ul class="list-unstyled mb-0">
|
||||
<li v-for="name in lvLeitung" :key="name">
|
||||
<!-- TODO(chris): link? -->
|
||||
{{name}}
|
||||
</li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{p.t('global/sprache')}}</th>
|
||||
<td>{{sprache}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{p.t('lehre/ects')}}</th>
|
||||
<td>{{ects}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{p.t('lehre/incomingplaetze')}}</th>
|
||||
<td>{{incoming}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{p.t('lehre/organisationseinheit')}}</th>
|
||||
<td>
|
||||
{{oe}} <br>
|
||||
(
|
||||
<i>{{p.t('global/leitung')}}: </i>{{oeLeitung.join(', ')}}
|
||||
<template v-if="koordinator">
|
||||
<i>{{p.t('global/koordination')}}: </i>{{koordinator.join(', ')}}
|
||||
</template>
|
||||
)
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</template>
|
||||
<lv-menu v-model:isMenuSelected="isMenuSelected" :menu="menu"></lv-menu>
|
||||
<template v-if="!isMenuSelected">
|
||||
<div v-if="info && info.lvinfo">
|
||||
<div v-if="Object.keys(info.lvinfo).length > 1" class="text-end">
|
||||
<div class="btn-group" role="group" :title="p.t('global/verfuegbareSprachen')" :aria-label="p.t('global/verfuegbareSprachen')">
|
||||
<template v-for="lang in info.sprachen" :key="lang.index">
|
||||
<button v-if="info.lvinfo[lang.sprache]" type="button" class="btn btn-outline-primary" :class="lang.sprache == currentLang ? 'active' : ''" @click.prevent="info.lastLang = lang.sprache">{{lang.bezeichnung[lang.index-1]}}</button>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
<template v-for="i in info.lvinfo[currentLang]" :key="info">
|
||||
<h4>{{i.header}}</h4>
|
||||
<h6 v-if="i.subheader">{{i.subheader}}</h6>
|
||||
<ul v-if="Array.isArray(i.body)">
|
||||
<li v-for="e in i.body" :key="e">{{e}}</li>
|
||||
</ul>
|
||||
<p v-else>
|
||||
{{i.body}}
|
||||
</p>
|
||||
</template>
|
||||
</div>
|
||||
</template>
|
||||
</template>
|
||||
</bs-modal>`
|
||||
}
|
||||
|
||||
@@ -46,7 +46,6 @@ export default {
|
||||
let withFiles = false;
|
||||
|
||||
if (view === "TextInputDokument") {
|
||||
console.log("text input")
|
||||
data = {
|
||||
titel: updateRequest.topic,
|
||||
value: updateRequest.requested_change.value,
|
||||
|
||||
@@ -127,10 +127,6 @@ export default {
|
||||
"acceptUpdate"
|
||||
)}`,
|
||||
action: (e, column) => {
|
||||
console.log(
|
||||
"this is the data of the context menu action",
|
||||
column.getData()
|
||||
);
|
||||
this.$fhcApi.factory.profilUpdate.acceptProfilRequest(column.getData())
|
||||
.then((res) => {
|
||||
this.$refs.UpdatesTable.tabulator.setData();
|
||||
|
||||
@@ -73,7 +73,6 @@ export default {
|
||||
},
|
||||
created() {
|
||||
axios.get(this.apiurl + '/Dashboard').then(res => {
|
||||
//console.log(res.data.retval);
|
||||
this.dashboards = res.data.retval;
|
||||
}).catch(err => console.error('ERROR:', err));
|
||||
},
|
||||
|
||||
@@ -144,7 +144,6 @@ export default {
|
||||
},
|
||||
created() {
|
||||
axios.get(this.apiurl + '/Config/funktionen').then(res => {
|
||||
//console.log(res.data.retval);
|
||||
this.funktionen = {general: 'GENERAL'};
|
||||
res.data.retval.forEach(funktion => {
|
||||
this.funktionen[funktion.funktion_kurzbz] = funktion.beschreibung;
|
||||
|
||||
@@ -25,7 +25,6 @@ export default {
|
||||
axios.get(this.apiurl + '/Widget/getWidgetsForDashboard', {params:{
|
||||
db: this.dashboard
|
||||
}}).then(res => {
|
||||
//console.log(res.data.retval);
|
||||
res.data.retval.forEach(widget => {
|
||||
widget.arguments = JSON.parse(widget.arguments);
|
||||
widget.setup = JSON.parse(widget.setup);
|
||||
@@ -123,7 +122,6 @@ export default {
|
||||
axios.get(this.apiurl + '/Config', {params:{
|
||||
db: this.dashboard
|
||||
}}).then(res => {
|
||||
//console.log(res.data.retval);
|
||||
for (var name in res.data.retval.widgets) {
|
||||
let widgets = [];
|
||||
let remove = [];
|
||||
|
||||
@@ -18,7 +18,7 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
newPageEvent: function (data) {
|
||||
//console.log("hier", data.page);
|
||||
|
||||
},
|
||||
},
|
||||
mounted() {},
|
||||
|
||||
@@ -99,7 +99,7 @@ export default {
|
||||
this.suggestions = [];
|
||||
this.$refs.form.clearValidation();
|
||||
},
|
||||
loadSuggestions() {console.log('loadSuggestions');
|
||||
loadSuggestions() {
|
||||
if (this.abortController.suggestions)
|
||||
this.abortController.suggestions.abort();
|
||||
if (this.person !== null)
|
||||
|
||||
@@ -79,23 +79,12 @@ export default {
|
||||
watch:{
|
||||
'searchsettings.types'(newValue){
|
||||
this.search();
|
||||
|
||||
|
||||
},
|
||||
|
||||
},
|
||||
beforeMount: function() {
|
||||
this.updateSearchOptions();
|
||||
|
||||
},
|
||||
mounted(){
|
||||
window.addEventListener('resize', (event) =>{
|
||||
console.log(this.$refs.settings,"this is the refs of the settings")
|
||||
this.$refs.settings.hide();
|
||||
console.log("resizing")
|
||||
});
|
||||
//console.log(this.$refs.settings.show,"this are the refs")
|
||||
},
|
||||
methods: {
|
||||
getActionsForRoom: function(res){
|
||||
res.booklink= FHC_JS_DATA_STORAGE_OBJECT.app_root +
|
||||
@@ -132,7 +121,6 @@ export default {
|
||||
},
|
||||
calcSearchResultExtent: function() {
|
||||
var rect = this.$refs.searchbox.getBoundingClientRect();
|
||||
//console.log(window.innerWidth + ' ' + window.innerHeight + ' ' + JSON.stringify(rect));
|
||||
this.$refs.result.style.top = Math.floor(rect.bottom + 3) + 'px';
|
||||
this.$refs.result.style.right = Math.floor(window.innerWidth - rect.right) + 'px';
|
||||
this.$refs.result.style.width = Math.floor(window.innerWidth * 0.75) + 'px';
|
||||
|
||||
@@ -307,7 +307,6 @@ $(function(){
|
||||
{
|
||||
successCallback: function (data, textStatus, jqXHR)
|
||||
{
|
||||
console.log(data);
|
||||
if (data.error && data.retval != null)
|
||||
{
|
||||
// Print error message
|
||||
|
||||
Reference in New Issue
Block a user