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:
@@ -567,7 +567,7 @@ class Profil extends FHCAPI_Controller
|
||||
*/
|
||||
private function getStudentInfo($uid)
|
||||
{
|
||||
$this->StudentModel->addSelect(['tbl_studiengang.bezeichnung as studiengang', 'tbl_student.semester', 'tbl_student.verband', 'tbl_student.gruppe', 'tbl_student.matrikelnr as personenkennzeichen']);
|
||||
$this->StudentModel->addSelect(['tbl_studiengang.bezeichnung as studiengang', 'tbl_studiengang.studiengang_kz as studiengang_kz', 'tbl_student.semester', 'tbl_student.verband', 'tbl_student.gruppe', 'tbl_student.matrikelnr as personenkennzeichen']);
|
||||
$this->StudentModel->addJoin('tbl_studiengang', "tbl_studiengang.studiengang_kz=tbl_student.studiengang_kz");
|
||||
|
||||
$student_res = $this->StudentModel->load([$uid]);
|
||||
|
||||
@@ -31,6 +31,7 @@ class Studgang extends FHCAPI_Controller
|
||||
]);
|
||||
|
||||
$this->load->model('organisation/Studiengang_model', 'StudiengangModel');
|
||||
$this->load->model('ressource/mitarbeiter_model', 'MitarbeiterModel');
|
||||
|
||||
// Loads phrases system
|
||||
$this->loadPhrases([
|
||||
@@ -43,7 +44,12 @@ class Studgang extends FHCAPI_Controller
|
||||
// Public methods
|
||||
|
||||
public function getStudiengangInfo(){
|
||||
// fetches the Studiengang Information which is used next the the news
|
||||
$isMitarbeiter = $this->MitarbeiterModel->isMitarbeiter(getAuthUID());
|
||||
if($isMitarbeiter) {
|
||||
$this->terminateWithSuccess();
|
||||
}
|
||||
|
||||
// fetches the Studiengang Information which is used next to the news
|
||||
$studiengangInfo = $this->StudiengangModel->getStudiengangInfoForNews();
|
||||
$studiengangInfo= $this->getDataOrTerminateWithError($studiengangInfo);
|
||||
$this->terminateWithSuccess($studiengangInfo);
|
||||
|
||||
@@ -656,6 +656,7 @@ class Studiengang_model extends DB_Model
|
||||
|
||||
$this->load->model('person/Benutzerfunktion_model', 'BenutzerfunktionModel');
|
||||
$this->load->model('person/Person_model', 'PersonModel');
|
||||
$this->load->model('crm/Student_model', 'StudentModel');
|
||||
|
||||
$addEmailProperty= function(&$benutzerfunktionen){
|
||||
if(count($benutzerfunktionen) && defined('DOMAIN'))
|
||||
@@ -691,11 +692,6 @@ class Studiengang_model extends DB_Model
|
||||
if (isError($student))
|
||||
return error($student);
|
||||
if (getData($student)) {
|
||||
//TODO: if a mitarbeiter requests this site, empty data should be returned
|
||||
if(count($student) == 0)
|
||||
{
|
||||
return new stdClass();
|
||||
}
|
||||
$student = current(getData($student));
|
||||
$studiengang_kz = $student->studiengang_kz;
|
||||
$semester = $student->semester;
|
||||
|
||||
@@ -10,7 +10,7 @@ $includesArray = array(
|
||||
'primevue3' => true,
|
||||
'customCSSs' => array(
|
||||
'public/css/components/verticalsplit.css',
|
||||
'public/css/components/searchbar.css',
|
||||
'public/css/components/searchbar/searchbar.css',
|
||||
'public/css/Fhc.css',
|
||||
'public/css/components/dashboard.css',
|
||||
'public/css/components/calendar.css',
|
||||
@@ -38,4 +38,4 @@ $this->load->view('templates/CISVUE-Header', $includesArray);
|
||||
:view-data='<?php echo json_encode($viewData) ?>'
|
||||
></router-view>
|
||||
</div>
|
||||
<?php $this->load->view('templates/CISVUE-Footer', $includesArray); ?>
|
||||
<?php $this->load->view('templates/CISVUE-Footer', $includesArray); ?>
|
||||
|
||||
@@ -131,11 +131,6 @@ const app = Vue.createApp({
|
||||
},
|
||||
});
|
||||
|
||||
router.beforeEach((to,from) => {
|
||||
console.log('to', to)
|
||||
console.log('from', from)
|
||||
})
|
||||
|
||||
// kind of a bandaid for bad css on some pages to avoid horizontal scroll
|
||||
setScrollbarWidth();
|
||||
app.use(router);
|
||||
|
||||
@@ -198,6 +198,15 @@ export default {
|
||||
editable() {
|
||||
return this.data?.editAllowed ?? false;
|
||||
},
|
||||
getTelefonValue() {
|
||||
if(this.data.standort_telefon?.kontakt) {
|
||||
return this.data.standort_telefon.kontakt + " " + this.data.telefonklappe
|
||||
} else if(this.data.standort_telefon) {
|
||||
return this.data.standort_telefon + " " + this.data.telefonklappe
|
||||
} else {
|
||||
return this.data.telefonklappe
|
||||
}
|
||||
},
|
||||
filteredEditData() {
|
||||
return this.editDataFilter
|
||||
? this.editData.data[this.editDataFilter]
|
||||
@@ -226,13 +235,36 @@ export default {
|
||||
}
|
||||
|
||||
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,
|
||||
geburtsdatum: {
|
||||
label: `${this.$p.t('profil','Geburtsdatum')}`,
|
||||
value: this.data.gebdatum
|
||||
},
|
||||
geburtsort: {
|
||||
label: `${this.$p.t('profil','Geburtsort')}`,
|
||||
value: this.data.gebort
|
||||
},
|
||||
personenkennzeichen: {
|
||||
label: `${this.$p.t('profil','Kurzzeichen')}`,
|
||||
value: this.data.kurzbz
|
||||
},
|
||||
telefon: {
|
||||
label: `${this.$p.t('profil','Telefon')}`,
|
||||
value: this.getTelefonValue
|
||||
},
|
||||
office: {
|
||||
label: `${this.$p.t('profil','Büro')}`,
|
||||
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,
|
||||
// };
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
@@ -93,6 +93,15 @@ export default {
|
||||
},
|
||||
|
||||
computed: {
|
||||
getTelefonValue() {
|
||||
if(this.data.standort_telefon?.kontakt) {
|
||||
return this.data.standort_telefon.kontakt + " " + this.data.telefonklappe
|
||||
} else if(this.data.standort_telefon) {
|
||||
return this.data.standort_telefon + " " + this.data.telefonklappe
|
||||
} else {
|
||||
return this.data.telefonklappe
|
||||
}
|
||||
},
|
||||
editable() {
|
||||
return this.data?.editAllowed ?? false;
|
||||
},
|
||||
@@ -122,15 +131,37 @@ export default {
|
||||
if (!this.data) {
|
||||
return {};
|
||||
}
|
||||
|
||||
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,
|
||||
geburtsdatum: {
|
||||
label: `${this.$p.t('profil','Geburtsdatum')}`,
|
||||
value: this.data.gebdatum
|
||||
},
|
||||
geburtsort: {
|
||||
label: `${this.$p.t('profil','Geburtsort')}`,
|
||||
value: this.data.gebort
|
||||
},
|
||||
personenkennzeichen: {
|
||||
label: `${this.$p.t('profil','Kurzzeichen')}`,
|
||||
value: this.data.kurzbz
|
||||
},
|
||||
telefon: {
|
||||
label: `${this.$p.t('profil','Telefon')}`,
|
||||
value: this.getTelefonValue
|
||||
},
|
||||
office: {
|
||||
label: `${this.$p.t('profil','Büro')}`,
|
||||
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,
|
||||
// };
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
@@ -355,7 +355,6 @@ export const Profil = {
|
||||
}
|
||||
},
|
||||
uid (newVal, oldVal) {
|
||||
console.log('watch uid', newVal)
|
||||
this.load()
|
||||
}
|
||||
},
|
||||
|
||||
@@ -10,7 +10,25 @@ export default {
|
||||
type: String,
|
||||
}
|
||||
},
|
||||
computed: {},
|
||||
inject: [
|
||||
'studiengang_kz', // inject info that should not be displayed
|
||||
],
|
||||
computed: {
|
||||
getLinkGruppeListe() {
|
||||
return this.data.gruppe?.value && this.data.verband?.value && this.data.semester?.value ? FHC_JS_DATA_STORAGE_OBJECT.app_root
|
||||
+ 'cis/private/stud_in_grp.php?kz='+this.studiengang_kz+'&sem=' + this.data.semester.value
|
||||
+ '&verband=' + this.data.verband.value + '&grp=' + this.data.gruppe.value : ''
|
||||
},
|
||||
getLinkVerbandListe() {
|
||||
return this.data.verband?.value && this.data.semester?.value ? FHC_JS_DATA_STORAGE_OBJECT.app_root
|
||||
+ 'cis/private/stud_in_grp.php?kz='+this.studiengang_kz+'&sem=' + this.data.semester.value
|
||||
+ '&verband=' + this.data.verband.value : ''
|
||||
},
|
||||
getLinkSemesterListe() {
|
||||
return this.data.semester?.value ? FHC_JS_DATA_STORAGE_OBJECT.app_root
|
||||
+ 'cis/private/stud_in_grp.php?kz='+this.studiengang_kz+'&sem=' + this.data.semester.value : ''
|
||||
}
|
||||
},
|
||||
created() {
|
||||
//TODO: check if data.Telefon is a valid telefon number to call before using it as a tel: link
|
||||
},
|
||||
@@ -19,16 +37,40 @@ export default {
|
||||
<div class="card-header">{{title}}</div>
|
||||
<div class="card-body">
|
||||
<div class="gy-3 row">
|
||||
<div v-for="(wert,bez) in data" class="col-md-6 col-sm-12 ">
|
||||
<div v-for="(entry, key) in data" class="col-md-6 col-sm-12 ">
|
||||
|
||||
<div class="form-underline">
|
||||
<div class="form-underline-titel">{{bez }}</div>
|
||||
<div class="form-underline-titel">{{entry.label }}</div>
|
||||
|
||||
<!-- print Telefon link -->
|
||||
<a v-if="bez=='Telefon'" :href="data.Telefon?'tel:'+data.Telefon:null" :class="{'form-underline-content':true,'text-decoration-none':!data.Telefon,'text-body':!data.Telefon}">{{wert?wert:'-'}}</a>
|
||||
<a v-if="key == 'telefon'" :href="entry.value ?'tel:'+entry.value:null" :class="{'form-underline-content':true,'text-decoration-none':!entry.value,'text-body':!entry.value}">{{entry.value ?? '-'}}</a>
|
||||
|
||||
<!-- print semester link -->
|
||||
<span v-else-if="key == 'semester' && entry.value" class="form-underline-content">
|
||||
{{ entry.value }}
|
||||
<a class="ms-auto mb-2" target="_blank" :href="getLinkSemesterListe">
|
||||
<i class="fa fa-arrow-up-right-from-square me-1"></i>
|
||||
</a>
|
||||
</span>
|
||||
|
||||
<!-- print verband link -->
|
||||
<span v-else-if="key =='verband' && entry.value" class="form-underline-content">
|
||||
{{ entry.value }}
|
||||
<a class="ms-auto mb-2" target="_blank" :href="getLinkVerbandListe">
|
||||
<i class="fa fa-arrow-up-right-from-square me-1"></i>
|
||||
</a>
|
||||
</span>
|
||||
|
||||
<!-- print gruppe link -->
|
||||
<span v-else-if="key == 'gruppe' && entry.value" class="form-underline-content">
|
||||
{{ entry.value }}
|
||||
<a class="ms-auto mb-2" target="_blank" :href="getLinkGruppeListe">
|
||||
<i class="fa fa-arrow-up-right-from-square me-1"></i>
|
||||
</a>
|
||||
</span>
|
||||
|
||||
<!-- else print information -->
|
||||
<span v-else class="form-underline-content">{{wert?wert:'-'}}</span>
|
||||
<span v-else class="form-underline-content">{{ entry.value ?? '-'}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -84,6 +84,11 @@ export default {
|
||||
data: Object,
|
||||
editData: Object,
|
||||
},
|
||||
provide() {
|
||||
return {
|
||||
studiengang_kz: Vue.computed({ get: () => this.data.studiengang_kz }),
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
||||
betriebsmittelTableBuilt: function () {
|
||||
@@ -172,14 +177,46 @@ export default {
|
||||
}
|
||||
|
||||
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(),
|
||||
geburtsdatum: {
|
||||
label: `${this.$p.t('profil','Geburtsdatum')}`,
|
||||
value: this.data.gebdatum
|
||||
},
|
||||
geburtsort: {
|
||||
label: `${this.$p.t('profil','Geburtsort')}`,
|
||||
value: this.data.gebort
|
||||
},
|
||||
personenkennzeichen: {
|
||||
label: `${this.$p.t('person','personenkennzeichen')}`,
|
||||
value: this.data.personenkennzeichen
|
||||
},
|
||||
studiengang: {
|
||||
label: `${this.$p.t('lehre','studiengang')}`,
|
||||
value: this.data.studiengang
|
||||
},
|
||||
semester: {
|
||||
label: `${this.$p.t('lehre','semester')}`,
|
||||
value: this.data.semester
|
||||
},
|
||||
verband: {
|
||||
label: `${this.$p.t('lehre','lehrverband')}`,
|
||||
value: this.data.verband
|
||||
},
|
||||
gruppe: {
|
||||
label: `${this.$p.t('lehre','gruppe')}`,
|
||||
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() {
|
||||
|
||||
@@ -17,6 +17,12 @@ export default {
|
||||
},
|
||||
|
||||
props: ["data"],
|
||||
provide() {
|
||||
return {
|
||||
studiengang_kz: Vue.computed({ get: () => this.data.studiengang_kz }),
|
||||
}
|
||||
},
|
||||
|
||||
methods: {},
|
||||
|
||||
computed: {
|
||||
@@ -49,15 +55,47 @@ export default {
|
||||
return {};
|
||||
}
|
||||
|
||||
|
||||
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(),
|
||||
geburtsdatum: {
|
||||
label: `${this.$p.t('profil','Geburtsdatum')}`,
|
||||
value: this.data.gebdatum
|
||||
},
|
||||
geburtsort: {
|
||||
label: `${this.$p.t('profil','Geburtsort')}`,
|
||||
value: this.data.gebort
|
||||
},
|
||||
personenkennzeichen: {
|
||||
label: `${this.$p.t('person','Geburtsort')}`,
|
||||
value: this.data.personenkennzeichen
|
||||
},
|
||||
studiengang: {
|
||||
label: `${this.$p.t('lehre','Geburtsort')}`,
|
||||
value: this.data.studiengang
|
||||
},
|
||||
semester: {
|
||||
label: `${this.$p.t('lehre','Geburtsort')}`,
|
||||
value: this.data.semester
|
||||
},
|
||||
verband: {
|
||||
label: `${this.$p.t('lehre','Geburtsort')}`,
|
||||
value: this.data.verband
|
||||
},
|
||||
gruppe: {
|
||||
label: `${this.$p.t('lehre','Geburtsort')}`,
|
||||
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(),
|
||||
// };
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
@@ -96,7 +96,8 @@ export default {
|
||||
}
|
||||
}
|
||||
else {
|
||||
placeholders.push({ x: x, y: y, w: 1, h: 1, placeholder: true });
|
||||
placeholders.push({ x: x, y: y, w: 1, h: 1, placeholder: true,
|
||||
data: { id: 'placeholder_' + String(placeholders.length).padStart(4, "0") } });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -359,8 +359,8 @@ export default {
|
||||
@mouseleave="mouseLeave">
|
||||
<TransitionGroup tag="div">
|
||||
<grid-item
|
||||
v-for="item in (mode == 0 && active? placedItems_withPlaceholders : placedItems)"
|
||||
:key="item.id"
|
||||
v-for="item in (mode == 0 && active ? placedItems_withPlaceholders : placedItems)"
|
||||
:key="item.data.id"
|
||||
:item="item"
|
||||
@start-move="startMove"
|
||||
@start-resize="startResize"
|
||||
@@ -378,7 +378,7 @@ export default {
|
||||
paddingRight: 'var(--fhc-dg-item-padding-horizontal)'
|
||||
}">
|
||||
<template v-slot="item">
|
||||
<slot v-bind="item.data" v-bind="item" :x="item.x" :y="item.y" ></slot>
|
||||
<slot v-bind="{...item, ...item.data}" :x="item.x" :y="item.y" ></slot>
|
||||
</template>
|
||||
</grid-item>
|
||||
</TransitionGroup>
|
||||
|
||||
@@ -26876,6 +26876,26 @@ array(
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'profil',
|
||||
'phrase' => 'MOBIL',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Mobiltelefonnummer',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'Cell phone number',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'profil',
|
||||
|
||||
Reference in New Issue
Block a user