mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-20 00:12:15 +00:00
Merge branch 'feature-25999/C4_cleanup' into merge_FHC4_C4
This commit is contained in:
@@ -85,7 +85,7 @@ else
|
||||
}
|
||||
</style>
|
||||
|
||||
<div id="page-wrapper">
|
||||
<div cis4Reload="true" id="page-wrapper">
|
||||
<div class="container-fluid">
|
||||
<!-- header -->
|
||||
<div class="row">
|
||||
|
||||
@@ -33,7 +33,7 @@ export default {
|
||||
template: `<div class="card mb-3">
|
||||
<div class="card-body">
|
||||
<h4 class="card-title mb-3">{{bezeichnung}} - {{kuerzel}}
|
||||
<small>{{semester}}.{{p.t('lehre/semester')}}</small>
|
||||
<small>{{semester}}.{{$p.t('lehre/semester')}}</small>
|
||||
</h4>
|
||||
<div class="row">
|
||||
<div v-for="lv in lehrveranstaltungen" :key="lv.lehrveranstaltung_id" class="col-12 col-md-6 col-xl-4 col-xxl-3 mb-3">
|
||||
|
||||
@@ -91,7 +91,7 @@ export default {
|
||||
},
|
||||
template: `
|
||||
|
||||
<h2>{{p.t('lehre/myLV')}}</h2>
|
||||
<h2>{{$p.t('lehre/myLV')}}</h2>
|
||||
<hr>
|
||||
<div class="mylv-student" v-if="ready">
|
||||
<div v-if="currentSemester" class="row justify-content-center mb-3">
|
||||
|
||||
@@ -34,20 +34,15 @@ export default {
|
||||
|
||||
// tabulator options
|
||||
funktionen_table_options: {
|
||||
persistenceID: "filterTableMaProfilFunktionen",
|
||||
persistence: {
|
||||
columns: false
|
||||
},
|
||||
height: 300,
|
||||
layout: "fitColumns",
|
||||
responsiveLayout: "collapse",
|
||||
responsiveLayoutCollapseUseFormatters: false,
|
||||
responsiveLayoutCollapseFormatter: Vue.$collapseFormatter,
|
||||
data: [
|
||||
{
|
||||
Bezeichnung: "",
|
||||
Organisationseinheit: "",
|
||||
Gültig_von: "",
|
||||
Gültig_bis: "",
|
||||
Wochenstunden: "",
|
||||
},
|
||||
],
|
||||
columns: [
|
||||
{
|
||||
title:
|
||||
@@ -58,18 +53,21 @@ export default {
|
||||
formatter: "responsiveCollapse",
|
||||
maxWidth: 40,
|
||||
headerClick: this.collapseFunction,
|
||||
visible: true
|
||||
},
|
||||
{
|
||||
title: "Bezeichnung",
|
||||
field: "Bezeichnung",
|
||||
headerFilter: true,
|
||||
minWidth: 200,
|
||||
visible: true
|
||||
},
|
||||
{
|
||||
title: "Organisationseinheit",
|
||||
field: "Organisationseinheit",
|
||||
headerFilter: true,
|
||||
minWidth: 200,
|
||||
visible: true
|
||||
},
|
||||
{
|
||||
title: "Gültig_von",
|
||||
@@ -77,6 +75,7 @@ export default {
|
||||
headerFilter: true,
|
||||
resizable: true,
|
||||
minWidth: 200,
|
||||
visible: true
|
||||
},
|
||||
{
|
||||
title: "Gültig_bis",
|
||||
@@ -84,12 +83,14 @@ export default {
|
||||
headerFilter: true,
|
||||
resizable: true,
|
||||
minWidth: 200,
|
||||
visible: true
|
||||
},
|
||||
{
|
||||
title: "Wochenstunden",
|
||||
field: "Wochenstunden",
|
||||
headerFilter: true,
|
||||
minWidth: 200,
|
||||
visible: true
|
||||
},
|
||||
],
|
||||
},
|
||||
@@ -111,12 +112,14 @@ export default {
|
||||
formatter: "responsiveCollapse",
|
||||
maxWidth: 40,
|
||||
headerClick: this.collapseFunction,
|
||||
visible: true
|
||||
},
|
||||
{
|
||||
title: "Betriebsmittel",
|
||||
field: "betriebsmittel",
|
||||
headerFilter: true,
|
||||
minWidth: 200,
|
||||
visible: true
|
||||
},
|
||||
{
|
||||
title: "Nummer",
|
||||
@@ -124,15 +127,17 @@ export default {
|
||||
headerFilter: true,
|
||||
resizable: true,
|
||||
minWidth: 200,
|
||||
visible: true
|
||||
},
|
||||
{
|
||||
title: "Ausgegeben_am",
|
||||
field: "Ausgegeben_am",
|
||||
headerFilter: true,
|
||||
minWidth: 200,
|
||||
visible: true
|
||||
},
|
||||
],
|
||||
},
|
||||
}
|
||||
};
|
||||
},
|
||||
|
||||
@@ -140,7 +145,12 @@ export default {
|
||||
data: Object,
|
||||
editData: Object,
|
||||
},
|
||||
|
||||
'data.funktionen'(newVal) {
|
||||
if(this.$refs.funktionenTable) this.$refs.funktionenTable.tabulator.setData(newVal);
|
||||
},
|
||||
'data.mittel'(newVal) {
|
||||
if(this.$refs.betriebsmittelTable) this.$refs.betriebsmittelTable.tabulator.setData(newVal);
|
||||
},
|
||||
methods: {
|
||||
betriebsmittelTableBuilt: function () {
|
||||
this.$refs.betriebsmittelTable.tabulator.setData(this.data.mittel);
|
||||
@@ -256,15 +266,6 @@ export default {
|
||||
value: this.data.ort_kurzbz
|
||||
}
|
||||
};
|
||||
|
||||
// return {
|
||||
// [`${this.$p.t('profil', 'Geburtsdatum')}`]: this.data.gebdatum,
|
||||
// [`${this.$p.t('profil', 'Geburtsort')}`]: this.data.gebort,
|
||||
// [`${this.$p.t('profil', 'Kurzzeichen')}`]: this.data.kurzbz,
|
||||
// [`${this.$p.t('profil', 'Telefon')}`]:
|
||||
// (this.data.standort_telefon ? this.data.standort_telefon.kontakt + " " + this.data.telefonklappe : this.data.telefonklappe),
|
||||
// [`${this.$p.t('profil', 'Büro')}`]: this.data.ort_kurzbz,
|
||||
// };
|
||||
},
|
||||
},
|
||||
|
||||
@@ -390,11 +391,25 @@ export default {
|
||||
<div class="row">
|
||||
<div class="col-12 mb-4" >
|
||||
<!-- FUNKTIONEN TABELLE -->
|
||||
<core-filter-cmpt @tableBuilt="funktionenTableBuilt" :title="$p.t('person','funktionen')" ref="funktionenTable" :tabulator-options="funktionen_table_options" tableOnly :sideMenu="false" />
|
||||
<core-filter-cmpt
|
||||
@tableBuilt="funktionenTableBuilt"
|
||||
:title="$p.t('person','funktionen')"
|
||||
ref="funktionenTable"
|
||||
:tabulator-options="funktionen_table_options"
|
||||
tableOnly
|
||||
:sideMenu="false"
|
||||
/>
|
||||
</div>
|
||||
<div class="col-12 mb-4" >
|
||||
<!-- BETRIEBSMITTEL TABELLE -->
|
||||
<core-filter-cmpt @tableBuilt="betriebsmittelTableBuilt" :title="$p.t('profil','entlehnteBetriebsmittel')" ref="betriebsmittelTable" :tabulator-options="betriebsmittel_table_options" tableOnly :sideMenu="false" />
|
||||
<core-filter-cmpt
|
||||
@tableBuilt="betriebsmittelTableBuilt"
|
||||
:title="$p.t('profil','entlehnteBetriebsmittel')"
|
||||
ref="betriebsmittelTable"
|
||||
:tabulator-options="betriebsmittel_table_options"
|
||||
tableOnly
|
||||
:sideMenu="false"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -20,20 +20,15 @@ export default {
|
||||
collapseIconFunktionen: true,
|
||||
|
||||
funktionen_table_options: {
|
||||
persistenceID: "filterTableMaViewProfilFunktionen",
|
||||
persistence: {
|
||||
columns: false
|
||||
},
|
||||
height: 300,
|
||||
layout: "fitColumns",
|
||||
responsiveLayout: "collapse",
|
||||
responsiveLayoutCollapseUseFormatters: false,
|
||||
responsiveLayoutCollapseFormatter: Vue.$collapseFormatter,
|
||||
data: [
|
||||
{
|
||||
Bezeichnung: "",
|
||||
Organisationseinheit: "",
|
||||
Gültig_von: "",
|
||||
Gültig_bis: "",
|
||||
Wochenstunden: "",
|
||||
},
|
||||
],
|
||||
columns: [
|
||||
//? option when wanting to hide the collapsed list
|
||||
|
||||
@@ -46,18 +41,21 @@ export default {
|
||||
formatter: "responsiveCollapse",
|
||||
maxWidth: 40,
|
||||
headerClick: this.collapseFunction,
|
||||
visible: true
|
||||
},
|
||||
{
|
||||
title: "Bezeichnung",
|
||||
field: "Bezeichnung",
|
||||
headerFilter: true,
|
||||
minWidth: 200,
|
||||
visible: true
|
||||
},
|
||||
{
|
||||
title: "Organisationseinheit",
|
||||
field: "Organisationseinheit",
|
||||
headerFilter: true,
|
||||
minWidth: 200,
|
||||
visible: true
|
||||
},
|
||||
{
|
||||
title: "Gültig_von",
|
||||
@@ -65,6 +63,7 @@ export default {
|
||||
headerFilter: true,
|
||||
resizable: true,
|
||||
minWidth: 200,
|
||||
visible: true
|
||||
},
|
||||
{
|
||||
title: "Gültig_bis",
|
||||
@@ -72,12 +71,14 @@ export default {
|
||||
headerFilter: true,
|
||||
resizable: true,
|
||||
minWidth: 200,
|
||||
visible: true
|
||||
},
|
||||
{
|
||||
title: "Wochenstunden",
|
||||
field: "Wochenstunden",
|
||||
headerFilter: true,
|
||||
minWidth: 200,
|
||||
visible: true
|
||||
},
|
||||
],
|
||||
},
|
||||
@@ -91,7 +92,11 @@ export default {
|
||||
this.$refs.funktionenTable.tabulator.setData(this.data.funktionen);
|
||||
},
|
||||
},
|
||||
|
||||
watch: {
|
||||
'data.funktionen'(newVal) {
|
||||
if(this.$refs.funktionenTable) this.$refs.funktionenTable.tabulator.setData(newVal);
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
getTelefonValue() {
|
||||
if(this.data.standort_telefon?.kontakt) {
|
||||
@@ -153,15 +158,6 @@ export default {
|
||||
value: this.data.ort_kurzbz
|
||||
}
|
||||
};
|
||||
|
||||
// return {
|
||||
// [`${this.$p.t('profil', 'Geburtsdatum')}`]: this.data.gebdatum,
|
||||
// [`${this.$p.t('profil', 'Geburtsort')}`]: this.data.gebort,
|
||||
// [`${this.$p.t('profil', 'Kurzzeichen')}`]: this.data.kurzbz,
|
||||
// [`${this.$p.t('profil', 'Telefon')}`]:
|
||||
// (this.data.standort_telefon ? this.data.standort_telefon + " " + this.data.telefonklappe : this.data.telefonklappe),
|
||||
// [`${this.$p.t('profil', 'Büro')}`]: this.data.ort_kurzbz,
|
||||
// };
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
@@ -206,17 +206,6 @@ export default {
|
||||
value: this.data.gruppe.trim()
|
||||
}
|
||||
};
|
||||
|
||||
// so nicht
|
||||
// return {
|
||||
// [`${this.$p.t('profil','Geburtsdatum')}`]: this.data.gebdatum,
|
||||
// [`${this.$p.t('profil', 'Geburtsort')}`]: this.data.gebort,
|
||||
// [`${this.$p.t('person', 'personenkennzeichen')}`]: this.data.personenkennzeichen,
|
||||
// [`${this.$p.t('lehre', 'studiengang')}`]: this.data.studiengang,
|
||||
// [`${this.$p.t('lehre', 'semester')}`]: this.data.semester,
|
||||
// [`${this.$p.t('lehre', 'lehrverband')}`]: this.data.verband,
|
||||
// [`${this.$p.t('lehre', 'gruppe')}`]: this.data.gruppe.trim(),
|
||||
// };
|
||||
},
|
||||
},
|
||||
created() {
|
||||
|
||||
@@ -66,36 +66,26 @@ export default {
|
||||
value: this.data.gebort
|
||||
},
|
||||
personenkennzeichen: {
|
||||
label: `${this.$p.t('person','Geburtsort')}`,
|
||||
label: `${this.$p.t('person','personenkennzeichen')}`,
|
||||
value: this.data.personenkennzeichen
|
||||
},
|
||||
studiengang: {
|
||||
label: `${this.$p.t('lehre','Geburtsort')}`,
|
||||
label: `${this.$p.t('lehre','studiengang')}`,
|
||||
value: this.data.studiengang
|
||||
},
|
||||
semester: {
|
||||
label: `${this.$p.t('lehre','Geburtsort')}`,
|
||||
label: `${this.$p.t('lehre','semester')}`,
|
||||
value: this.data.semester
|
||||
},
|
||||
verband: {
|
||||
label: `${this.$p.t('lehre','Geburtsort')}`,
|
||||
label: `${this.$p.t('lehre','lehrverband')}`,
|
||||
value: this.data.verband
|
||||
},
|
||||
gruppe: {
|
||||
label: `${this.$p.t('lehre','Geburtsort')}`,
|
||||
label: `${this.$p.t('lehre','gruppe')}`,
|
||||
value: this.data.gruppe.trim()
|
||||
}
|
||||
};
|
||||
|
||||
// return {
|
||||
// Geburtsdatum: this.data.gebdatum,
|
||||
// Geburtsort: this.data.gebort,
|
||||
// Personenkennzeichen: this.data.personenkennzeichen,
|
||||
// Studiengang: this.data.studiengang,
|
||||
// Semester: this.data.semester,
|
||||
// Verband: this.data.verband,
|
||||
// Gruppe: this.data.gruppe.trim(),
|
||||
// };
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
@@ -9,11 +9,13 @@ export default {
|
||||
changeLanguage: function(lang){
|
||||
if(this.allActiveLanguages.some(l => l.sprache === lang))
|
||||
{
|
||||
const isReload = document.querySelector('[cis4Reload]')
|
||||
this.$p.setLanguage(lang, this.$fhcApi)
|
||||
.then(res => res.data)
|
||||
.then(data =>
|
||||
{
|
||||
this.$emit('languageChanged', lang);
|
||||
if(isReload) window.location.reload()
|
||||
else this.$emit('languageChanged', lang);
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
@@ -55,6 +55,7 @@ export default {
|
||||
}
|
||||
this.$refs.widgetpicker.getWidget().then(widget_id => {
|
||||
widget.widget = widget_id;
|
||||
widget.id = 'loading_' + String((new Date()).valueOf());
|
||||
let loading = {...widget};
|
||||
loading.loading = true;
|
||||
this.sections.forEach(section => {
|
||||
@@ -169,11 +170,11 @@ export default {
|
||||
},
|
||||
template: `
|
||||
<div class="core-dashboard">
|
||||
<h3>
|
||||
<h3 v-show="viewDataInternal?.name">
|
||||
{{ $p.t('global/personalGreeting', [ viewDataInternal?.name ]) }}
|
||||
<button style="margin-left: 8px;" class="btn" @click="editMode = !editMode"><i class="fa-solid fa-gear"></i></button>
|
||||
</h3>
|
||||
<dashboard-section v-for="(section, index) in sections" :key="section.name" :seperator="index" :name="section.name" :widgets="section.widgets" @widgetAdd="widgetAdd" @widgetUpdate="widgetUpdate" @widgetRemove="widgetRemove"></dashboard-section>
|
||||
<dashboard-widget-picker ref="widgetpicker" :widgets="widgets"></dashboard-widget-picker>
|
||||
</div>`
|
||||
}
|
||||
}
|
||||
|
||||
@@ -180,7 +180,7 @@ export default {
|
||||
</div>
|
||||
<template v-else-if="allEventsGrouped.size" v-for="([key, value], index) in allEventsGrouped" :key="index" style="margin-top: 8px;">
|
||||
<div class="card-header d-grid p-0">
|
||||
<button class="btn btn-link link-secondary text-decoration-none" @click="setCalendarMaximized">{{ key.format({dateStyle: "full"})}}</button>
|
||||
<button class="btn btn-link link-secondary text-decoration-none" @click="setCalendarMaximized">{{ key.format({dateStyle: "full"}, $p.user_locale.value)}}</button>
|
||||
</div>
|
||||
<div role="button" @click="showLvUebersicht(evt)" v-for="evt in value" :key="evt.id" class="list-group-item small" :style="getEventStyle(evt)">
|
||||
<b>{{evt.topic}}</b>
|
||||
|
||||
@@ -5,7 +5,7 @@ const loadingModules = {};
|
||||
let user_language = Vue.ref(FHC_JS_DATA_STORAGE_OBJECT.user_language);
|
||||
export let user_locale = Vue.computed(()=>{
|
||||
if(!user_language.value) return null;
|
||||
return FHC_JS_DATA_STORAGE_OBJECT.server_languages.find(language => language.sprache == user_language.value).locale;
|
||||
return FHC_JS_DATA_STORAGE_OBJECT.server_languages.find(language => language.sprache == user_language.value).LC_Time;
|
||||
});
|
||||
|
||||
function extractCategory(obj, category) {
|
||||
@@ -30,7 +30,6 @@ const phrasen = {
|
||||
setLanguage(language, api) {
|
||||
const catArray = Object.keys(categories)
|
||||
return api.factory.phrasen.setLanguage(catArray, language).then(res => {
|
||||
|
||||
res.data.forEach(row => {
|
||||
categories[row.category][row.phrase] = row.text
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user