mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 12:19:28 +00:00
Merge branch 'feature-68767/FHC4_Studierendenverwaltung_Details_4spaltig_ma0080' into vv_und_studvw_2026_02_rc4_ma0080
This commit is contained in:
@@ -108,6 +108,10 @@ class Student extends FHCAPI_Controller
|
||||
$this->PrestudentModel->addSelect('p.matr_nr');
|
||||
$this->PrestudentModel->addSelect('p.anrede');
|
||||
$this->PrestudentModel->addSelect('p.zugangscode');
|
||||
if($this->permissionlib->isBerechtigt('student/bpk'))
|
||||
{
|
||||
$this->PrestudentModel->addSelect('p.bpk');
|
||||
}
|
||||
|
||||
if (defined('ACTIVE_ADDONS') && strpos(ACTIVE_ADDONS, 'bewerbung') !== false) {
|
||||
$this->PrestudentModel->addSelect(
|
||||
|
||||
@@ -12,22 +12,22 @@ html {
|
||||
font-size: .875em;
|
||||
}
|
||||
html.fs_xx-small {
|
||||
font-size: .5em;
|
||||
font-size: .625em;
|
||||
}
|
||||
html.fs_x-small {
|
||||
font-size: .625em;
|
||||
font-size: .6875em;
|
||||
}
|
||||
html.fs_small {
|
||||
font-size: .75em;
|
||||
}
|
||||
html.fs_normal {
|
||||
font-size: .875em;
|
||||
font-size: .8125em;
|
||||
}
|
||||
html.fs_big {
|
||||
font-size: 1em;
|
||||
font-size: .875em;
|
||||
}
|
||||
html.fs_huge {
|
||||
font-size: 1.125em;
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
#appMenu {
|
||||
@@ -200,3 +200,84 @@ html.fs_huge {
|
||||
.tiny-90 div.tox.tox-tinymce {
|
||||
height: 90% !important;
|
||||
}
|
||||
|
||||
/* slim begin */
|
||||
.stv .form-label {
|
||||
margin-bottom: .15rem;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.stv .form-control,
|
||||
.stv .form-select,
|
||||
.stv .input-group-text {
|
||||
padding-top: .15rem;
|
||||
padding-bottom: .15rem;
|
||||
}
|
||||
|
||||
:root {
|
||||
--bs-body-line-height: 1.2;
|
||||
}
|
||||
|
||||
.stv .tabulator-row .tabulator-cell,
|
||||
.stv .tabulator-header-filter input {
|
||||
padding-top: 1px !important;
|
||||
padding-bottom: 1px !important;
|
||||
}
|
||||
|
||||
.stv .tabulator-row {
|
||||
min-height: 18px;
|
||||
}
|
||||
|
||||
.stv .btn {
|
||||
--bs-btn-padding-y: 0.25rem;
|
||||
--bs-btn-line-height: 1.2;
|
||||
}
|
||||
|
||||
.stv .p-button.p-button-icon-only {
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
.stv .p-tabview .p-tabview-nav li .p-tabview-nav-link {
|
||||
padding: 0.25rem .5rem;
|
||||
}
|
||||
|
||||
.stv .p-tabview .p-tabview-panels {
|
||||
background-color: #e5eff5;
|
||||
}
|
||||
|
||||
.stv .p-tabview .p-tabview-nav li.p-highlight .p-tabview-nav-link {
|
||||
background: #e5eff5;
|
||||
border-color: #dee2e6 #dee2e6 #e5eff5 #dee2e6;
|
||||
}
|
||||
|
||||
.stv-details-details-foto img {
|
||||
max-height: 120px;
|
||||
}
|
||||
|
||||
.stv .tabulator-row .tabulator-frozen,
|
||||
.stv .tabulator-row .tabulator-cell {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
/*
|
||||
.stv .p-treetable .p-treetable-thead > tr > th,
|
||||
.stv .p-treetable .p-treetable-tbody > tr {
|
||||
background-color: #e5eff5;
|
||||
}
|
||||
|
||||
.stv .p-treetable .p-treetable-tbody > tr.p-highlight {
|
||||
background: #007bff;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.stv .p-treetable.p-treetable-hoverable-rows .p-treetable-tbody > tr:not(.p-highlight):hover {
|
||||
background: #fff;
|
||||
color: #212529;
|
||||
}
|
||||
|
||||
.tabulator-row.tabulator-row-even .tabulator-cell {
|
||||
background-color: #e5eff5;
|
||||
}
|
||||
*/
|
||||
/* slim ende */
|
||||
|
||||
@@ -182,7 +182,7 @@ export default {
|
||||
}
|
||||
},
|
||||
template: `
|
||||
<div class="core-header d-flex justify-content-start align-items-center w-100 overflow-auto pb-3 gap-3" style="max-height:9rem; min-width: 37.5rem;">
|
||||
<div class="core-header d-flex justify-content-start align-items-center w-100 overflow-auto pb-2 gap-3" style="max-height:9rem; min-width: 37.5rem;">
|
||||
|
||||
<modal-upload-foto
|
||||
v-if="person_id"
|
||||
@@ -207,8 +207,8 @@ export default {
|
||||
class="foto-container d-flex flex-column align-items-center h-100 position-relative d-inline-block"
|
||||
>
|
||||
<img
|
||||
class="d-block h-100 rounded"
|
||||
style="height: 84px;"
|
||||
class="d-block rounded"
|
||||
style="height: 75px;"
|
||||
alt="Profilbild"
|
||||
:src="getFotoSrc(person.foto)"
|
||||
/>
|
||||
|
||||
@@ -364,7 +364,7 @@ export default {
|
||||
|
||||
<div class="row">
|
||||
<!--table-->
|
||||
<div class="col-sm-6 pt-6">
|
||||
<div class="col-sm-6 pt-1">
|
||||
<core-filter-cmpt
|
||||
ref="table"
|
||||
:tabulator-options="tabulatorOptions"
|
||||
@@ -380,9 +380,9 @@ export default {
|
||||
</div>
|
||||
|
||||
<!--preview wysiwyg-window-->
|
||||
<div class="col-sm-6 pt-6">
|
||||
<br><br><br><br>
|
||||
<div ref="preview">
|
||||
<div class="col-sm-6 pt-5">
|
||||
<div class="msg-preview-spacer pt-2" aria-hidden="true"></div>
|
||||
<div ref="preview" class="bg-white">
|
||||
<div v-html="previewBody" class="p-3 border rounded overflow-scroll twoColumns"></div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -164,17 +164,17 @@ export default {
|
||||
this.updateStudent(this.modelValue);
|
||||
},
|
||||
template: `
|
||||
<core-form ref="form" class="stv-details-details" @submit.prevent="save">
|
||||
<core-form ref="form" class="stv-details-details mb-4" @submit.prevent="save">
|
||||
<div class="position-sticky top-0 z-1">
|
||||
<button type="submit" class="btn btn-primary position-absolute top-0 end-0" :disabled="!changedLength">{{$p.t('ui', 'speichern')}}</button>
|
||||
</div>
|
||||
<fieldset class="overflow-hidden">
|
||||
<fieldset class="overflow-hidden mb-2">
|
||||
<legend>Person</legend>
|
||||
<template v-if="data">
|
||||
<div class="row mb-3">
|
||||
<div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 row-cols-xl-4 gx-3 gy-1 mb-1">
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('person_id')"
|
||||
container-class="col-4 stv-details-details-person_id"
|
||||
container-class="col stv-details-details-person_id"
|
||||
:label="$p.t('person', 'person_id')"
|
||||
type="text"
|
||||
v-model="data.person_id"
|
||||
@@ -182,7 +182,7 @@ export default {
|
||||
readonly
|
||||
>
|
||||
</form-input>
|
||||
<div v-if="showZugangscode && !config.hiddenFields.includes('zugangscode')" class="col-4 stv-details-details-zugangscode">
|
||||
<div v-if="showZugangscode && !config.hiddenFields.includes('zugangscode')" class="col stv-details-details-zugangscode">
|
||||
<label>{{$p.t('global', 'zugangscode')}}</label>
|
||||
<div class="align-self-center">
|
||||
<span class="form-text">
|
||||
@@ -192,7 +192,7 @@ export default {
|
||||
</div>
|
||||
<form-input
|
||||
v-if="showBpk && !config.hiddenFields.includes('bpk')"
|
||||
container-class="col-4 stv-details-details-bpk"
|
||||
container-class="col stv-details-details-bpk"
|
||||
:label="$p.t('person', 'bpk')"
|
||||
type="text"
|
||||
v-model="data.bpk"
|
||||
@@ -200,11 +200,21 @@ export default {
|
||||
maxlength="28"
|
||||
>
|
||||
</form-input>
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('ersatzkennzeichen')"
|
||||
container-class="col stv-details-details-ersatzkennzeichen"
|
||||
:label="$p.t('person', 'ersatzkennzeichen')"
|
||||
type="text"
|
||||
v-model="data.ersatzkennzeichen"
|
||||
name="ersatzkennzeichen"
|
||||
maxlength="10"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 row-cols-xl-4 gx-3 gy-1 mb-1">
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('anrede')"
|
||||
container-class="col-4 stv-details-details-anrede"
|
||||
container-class="col stv-details-details-anrede"
|
||||
:label="$p.t('person', 'anrede')"
|
||||
type="text"
|
||||
v-model="data.anrede"
|
||||
@@ -214,7 +224,7 @@ export default {
|
||||
</form-input>
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('titelpre')"
|
||||
container-class="col-4 stv-details-details-titelpre"
|
||||
container-class="col stv-details-details-titelpre"
|
||||
:label="$p.t('person', 'titelpre')"
|
||||
type="text"
|
||||
v-model="data.titelpre"
|
||||
@@ -224,7 +234,7 @@ export default {
|
||||
</form-input>
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('titelpost')"
|
||||
container-class="col-4 stv-details-details-titelpost"
|
||||
container-class="col stv-details-details-titelpost"
|
||||
:label="$p.t('person', 'titelpost')"
|
||||
type="text"
|
||||
v-model="data.titelpost"
|
||||
@@ -233,10 +243,10 @@ export default {
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 row-cols-xl-4 gx-3 gy-1 mb-1">
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('nachname')"
|
||||
container-class="col-4 stv-details-details-nachname"
|
||||
container-class="col stv-details-details-nachname"
|
||||
:label="$p.t('person', 'nachname')"
|
||||
type="text"
|
||||
v-model="data.nachname"
|
||||
@@ -246,7 +256,7 @@ export default {
|
||||
</form-input>
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('vorname')"
|
||||
container-class="col-4 stv-details-details-vorname"
|
||||
container-class="col stv-details-details-vorname"
|
||||
:label="$p.t('person', 'vorname')"
|
||||
type="text"
|
||||
v-model="data.vorname"
|
||||
@@ -256,7 +266,7 @@ export default {
|
||||
</form-input>
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('vornamen')"
|
||||
container-class="col-4 stv-details-details-vornamen"
|
||||
container-class="col stv-details-details-vornamen"
|
||||
:label="$p.t('person', 'vornamen')"
|
||||
type="text"
|
||||
v-model="data.vornamen"
|
||||
@@ -264,11 +274,9 @@ export default {
|
||||
maxlength="128"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('wahlname')"
|
||||
container-class="col-4 stv-details-details-wahlname"
|
||||
container-class="col stv-details-details-wahlname"
|
||||
:label="$p.t('person', 'wahlname')"
|
||||
type="text"
|
||||
v-model="data.wahlname"
|
||||
@@ -276,11 +284,12 @@ export default {
|
||||
maxlength="128"
|
||||
>
|
||||
</form-input>
|
||||
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 row-cols-xl-4 gx-3 gy-1 mb-1">
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('gebdatum')"
|
||||
container-class="col-4 stv-details-details-gebdatum"
|
||||
container-class="col stv-details-details-gebdatum"
|
||||
:label="$p.t('person', 'geburtsdatum')"
|
||||
type="DatePicker"
|
||||
v-model="data.gebdatum"
|
||||
@@ -297,7 +306,7 @@ export default {
|
||||
</form-input>
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('gebort')"
|
||||
container-class="col-4 stv-details-details-gebort"
|
||||
container-class="col stv-details-details-gebort"
|
||||
:label="$p.t('person', 'geburtsort')"
|
||||
type="text"
|
||||
v-model="data.gebort"
|
||||
@@ -307,7 +316,7 @@ export default {
|
||||
</form-input>
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('geburtsnation')"
|
||||
container-class="col-4 stv-details-details-geburtsnation"
|
||||
container-class="col stv-details-details-geburtsnation"
|
||||
:label="$p.t('person', 'geburtsnation')"
|
||||
type="select"
|
||||
v-model="data.geburtsnation"
|
||||
@@ -316,23 +325,9 @@ export default {
|
||||
<option value="">-- {{$p.t('fehlermonitoring', 'keineAuswahl')}} --</option>
|
||||
<option v-for="nation in lists.nations" :key="nation.nation_code" :value="nation.nation_code" :disabled="nation.sperre">{{nation.kurztext}}</option>
|
||||
</form-input>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('ersatzkennzeichen')"
|
||||
container-class="col-4 stv-details-details-ersatzkennzeichen"
|
||||
:label="$p.t('person', 'ersatzkennzeichen')"
|
||||
type="text"
|
||||
v-model="data.ersatzkennzeichen"
|
||||
name="ersatzkennzeichen"
|
||||
maxlength="10"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('staatsbuergerschaft')"
|
||||
container-class="col-4 stv-details-details-staatsbuergerschaft"
|
||||
container-class="col stv-details-details-staatsbuergerschaft"
|
||||
:label="$p.t('person', 'staatsbuergerschaft')"
|
||||
type="select"
|
||||
v-model="data.staatsbuergerschaft"
|
||||
@@ -341,9 +336,12 @@ export default {
|
||||
<option value="">-- {{$p.t('fehlermonitoring', 'keineAuswahl')}} --</option>
|
||||
<option v-for="nation in lists.nations" :key="nation.nation_code" :value="nation.nation_code" :disabled="nation.sperre">{{nation.kurztext}}</option>
|
||||
</form-input>
|
||||
</div>
|
||||
<div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 row-cols-xl-4 gx-3 gy-1 mb-1">
|
||||
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('matr_nr')"
|
||||
container-class="col-4 stv-details-details-matr_nr"
|
||||
container-class="col stv-details-details-matr_nr"
|
||||
:label="$p.t('person', 'matrikelnummer')"
|
||||
type="text"
|
||||
v-model="data.matr_nr"
|
||||
@@ -353,7 +351,7 @@ export default {
|
||||
</form-input>
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('sprache')"
|
||||
container-class="col-4 stv-details-details-sprache"
|
||||
container-class="col stv-details-details-sprache"
|
||||
:label="$p.t('person', 'sprache')"
|
||||
type="select"
|
||||
v-model="data.sprache"
|
||||
@@ -361,11 +359,9 @@ export default {
|
||||
>
|
||||
<option v-for="sprache in lists.sprachen" :key="sprache.sprache" :value="sprache.sprache">{{sprache.sprache}}</option>
|
||||
</form-input>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('geschlecht')"
|
||||
container-class="col-4 stv-details-details-geschlecht"
|
||||
container-class="col stv-details-details-geschlecht"
|
||||
:label="$p.t('person', 'geschlecht')"
|
||||
type="select"
|
||||
v-model="data.geschlecht"
|
||||
@@ -375,7 +371,7 @@ export default {
|
||||
</form-input>
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('familienstand')"
|
||||
container-class="col-4 stv-details-details-familienstand"
|
||||
container-class="col stv-details-details-familienstand"
|
||||
:label="$p.t('person', 'familienstand')"
|
||||
type="select"
|
||||
v-model="data.familienstand"
|
||||
@@ -384,10 +380,10 @@ export default {
|
||||
<option v-for="(bezeichnung, key) in familienstaende" :key="key" :value="key">{{bezeichnung}}</option>
|
||||
</form-input>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 row-cols-xl-4 gx-3 gy-1 mb-1">
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('foto')"
|
||||
container-class="col-4 stv-details-details-foto"
|
||||
container-class="col stv-details-details-foto"
|
||||
:label="$p.t('person', 'foto')"
|
||||
type="UploadImage"
|
||||
v-model="data.foto"
|
||||
@@ -397,7 +393,7 @@ export default {
|
||||
</form-input>
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('anmerkung')"
|
||||
container-class="col-4 stv-details-details-anmerkung"
|
||||
container-class="col stv-details-details-anmerkung"
|
||||
:label="$p.t('global', 'anmerkung')"
|
||||
type="textarea"
|
||||
v-model="data.anmerkung"
|
||||
@@ -407,7 +403,7 @@ export default {
|
||||
</form-input>
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('homepage')"
|
||||
container-class="col-4 stv-details-details-homepage"
|
||||
container-class="col stv-details-details-homepage"
|
||||
:label="$p.t('person', 'homepage')"
|
||||
type="text"
|
||||
v-model="data.homepage"
|
||||
@@ -424,19 +420,19 @@ export default {
|
||||
v-if="!config.hideUDFs"
|
||||
@load="udfsLoaded"
|
||||
v-model="data"
|
||||
class="row-cols-3 g-3 mb-3"
|
||||
class="row-cols-1 row-cols-md-2 row-cols-lg-3 row-cols-xl-4 gx-3 gy-1 mb-1"
|
||||
ci-model="person/person"
|
||||
:pk="{person_id:modelValue.person_id}"
|
||||
>
|
||||
</core-udf>
|
||||
</fieldset>
|
||||
<fieldset v-if="data?.student_uid" class="overflow-hidden">
|
||||
<fieldset v-if="data?.student_uid" class="overflow-hidden mb-2">
|
||||
<legend>{{$p.t('person', 'studentIn')}}</legend>
|
||||
<template v-if="data">
|
||||
<div class="row mb-3">
|
||||
<div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 row-cols-xl-4 gx-3 gy-1 mb-1">
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('student_uid')"
|
||||
container-class="col-4 stv-details-details-student_uid"
|
||||
container-class="col stv-details-details-student_uid"
|
||||
:label="$p.t('person', 'uid')"
|
||||
type="text"
|
||||
v-model="data.student_uid"
|
||||
@@ -446,7 +442,7 @@ export default {
|
||||
</form-input>
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('matrikelnr')"
|
||||
container-class="col-4 stv-details-details-matrikelnr"
|
||||
container-class="col stv-details-details-matrikelnr"
|
||||
:label="$p.t('person', 'personenkennzeichen')"
|
||||
type="text"
|
||||
v-model="data.matrikelnr"
|
||||
@@ -454,22 +450,31 @@ export default {
|
||||
readonly
|
||||
>
|
||||
</form-input>
|
||||
<div class="col-4 pt-4 d-flex align-items-center">
|
||||
<template class="col-4 pt-4 d-flex align-items-center">
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('aktiv')"
|
||||
container-class="form-check stv-details-details-aktiv"
|
||||
container-class="col form-check stv-details-details-aktiv"
|
||||
:label="$p.t('person', 'aktiv')"
|
||||
type="checkbox"
|
||||
v-model="data.aktiv"
|
||||
name="aktiv"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</template>
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('alias')"
|
||||
:label="$p.t('person', 'alias')"
|
||||
type="text"
|
||||
v-model="data.alias"
|
||||
name="alias"
|
||||
:disabled="aliasNotAllowed"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 row-cols-xl-4 gx-3 gy-1 mb-1">
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('semester')"
|
||||
container-class="col-4 stv-details-details-semester"
|
||||
container-class="col stv-details-details-semester"
|
||||
:label="$p.t('lehre', 'semester')"
|
||||
type="text"
|
||||
v-model="data.semester"
|
||||
@@ -479,7 +484,7 @@ export default {
|
||||
</form-input>
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('verband')"
|
||||
container-class="col-4 stv-details-details-verband"
|
||||
container-class="col stv-details-details-verband"
|
||||
:label="$p.t('lehre', 'verband')"
|
||||
type="text"
|
||||
v-model="data.verband"
|
||||
@@ -489,7 +494,7 @@ export default {
|
||||
</form-input>
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('gruppe')"
|
||||
container-class="col-4 stv-details-details-gruppe"
|
||||
container-class="col stv-details-details-gruppe"
|
||||
:label="$p.t('lehre', 'gruppe')"
|
||||
type="text"
|
||||
v-model="data.gruppe"
|
||||
@@ -498,19 +503,7 @@ export default {
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('alias')"
|
||||
container-class="col-4 stv-details-details-alias"
|
||||
:label="$p.t('person', 'alias')"
|
||||
type="text"
|
||||
v-model="data.alias"
|
||||
name="alias"
|
||||
:disabled="aliasNotAllowed"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</template>
|
||||
</template>
|
||||
<div v-else>
|
||||
{{$p.t('ui', 'dropdownLoading')}}...
|
||||
</div>
|
||||
|
||||
@@ -260,12 +260,12 @@ export default {
|
||||
<div class="position-sticky top-0 z-1">
|
||||
<button type="submit" class="btn btn-primary position-absolute top-0 end-0" :disabled="!deltaLength">Speichern</button>
|
||||
</div>
|
||||
<fieldset class="overflow-hidden">
|
||||
<fieldset class="overflow-hidden mb-2">
|
||||
<legend>{{$p.t('lehre', 'title_zgv')}} {{modelValue.nachname}} {{modelValue.vorname}}</legend>
|
||||
<div class="row mb-3">
|
||||
<div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 row-cols-xl-4 gx-3 gy-1 mb-1">
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('prestudent_id')"
|
||||
container-class="col-3 stv-details-prestudent-prestudent_id"
|
||||
container-class="col stv-details-prestudent-prestudent_id"
|
||||
:label="$p.t('ui', 'prestudent_id')"
|
||||
type="text"
|
||||
v-model="data.prestudent_id"
|
||||
@@ -275,7 +275,7 @@ export default {
|
||||
</form-input>
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('person_id')"
|
||||
container-class="col-3 stv-details-prestudent-person_id"
|
||||
container-class="col stv-details-prestudent-person_id"
|
||||
:label="$p.t('person', 'person_id')"
|
||||
type="text"
|
||||
v-model="data.person_id"
|
||||
@@ -284,10 +284,10 @@ export default {
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 row-cols-xl-4 gx-3 gy-1 mb-1">
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('zgv_code')"
|
||||
container-class="col-3 stv-details-prestudent-zgv_code"
|
||||
container-class="col stv-details-prestudent-zgv_code"
|
||||
label="ZGV"
|
||||
type="autocomplete"
|
||||
v-model="selectedZgv"
|
||||
@@ -312,7 +312,7 @@ export default {
|
||||
</form-input>
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('zgvOrt')"
|
||||
container-class="col-3 stv-details-prestudent-zgvOrt"
|
||||
container-class="col stv-details-prestudent-zgvOrt"
|
||||
:label="$p.t('infocenter', 'zgvOrt')"
|
||||
type="text"
|
||||
v-model="data.zgvort"
|
||||
@@ -321,7 +321,7 @@ export default {
|
||||
</form-input>
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('zgvDatum')"
|
||||
container-class="col-3 stv-details-prestudent-zgvDatum"
|
||||
container-class="col stv-details-prestudent-zgvDatum"
|
||||
:label="$p.t('infocenter', 'zgvDatum')"
|
||||
type="DatePicker"
|
||||
v-model="data.zgvdatum"
|
||||
@@ -337,7 +337,7 @@ export default {
|
||||
</form-input>
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('zgvNation')"
|
||||
container-class="col-3 stv-details-prestudent-zgvNation"
|
||||
container-class="col stv-details-prestudent-zgvNation"
|
||||
:label="$p.t('infocenter', 'zgvNation')"
|
||||
type="select"
|
||||
v-model="data.zgvnation"
|
||||
@@ -348,10 +348,10 @@ export default {
|
||||
<option v-for="nation in lists.nations" :key="nation.nation_code" :value="nation.nation_code" :disabled="nation.sperre">{{nation.kurztext}}</option>
|
||||
</form-input>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 row-cols-xl-4 gx-3 gy-1 mb-1">
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('zgvmas_code')"
|
||||
container-class="col-3 stv-details-prestudent-zgvmas_code"
|
||||
container-class="col stv-details-prestudent-zgvmas_code"
|
||||
:label="$p.t('lehre', 'zgvMaster')"
|
||||
type="autocomplete"
|
||||
v-model="selectedMasterZgv"
|
||||
@@ -376,7 +376,7 @@ export default {
|
||||
</form-input>
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('zgvmaort')"
|
||||
container-class="col-3 stv-details-prestudent-zgvmaort"
|
||||
container-class="col stv-details-prestudent-zgvmaort"
|
||||
:label="$p.t('lehre', 'zgvMasterOrt')"
|
||||
type="text"
|
||||
v-model="data.zgvmaort"
|
||||
@@ -385,7 +385,7 @@ export default {
|
||||
</form-input>
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('zgvmadatum')"
|
||||
container-class="col-3 stv-details-prestudent-zgvmadatum"
|
||||
container-class="col stv-details-prestudent-zgvmadatum"
|
||||
:label="$p.t('lehre', 'zgvMasterDatum')"
|
||||
type="DatePicker"
|
||||
v-model="data.zgvmadatum"
|
||||
@@ -401,7 +401,7 @@ export default {
|
||||
</form-input>
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('zgvmanation')"
|
||||
container-class="col-3 stv-details-prestudent-zgvmanation"
|
||||
container-class="col stv-details-prestudent-zgvmanation"
|
||||
:label="$p.t('lehre', 'zgvMasterNation')"
|
||||
type="select"
|
||||
v-model="data.zgvmanation"
|
||||
@@ -413,10 +413,10 @@ export default {
|
||||
</form-input>
|
||||
</div>
|
||||
<!--ZGV Doktor-->
|
||||
<div class="row mb-3">
|
||||
<div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 row-cols-xl-4 gx-3 gy-1 mb-1">
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('zgvdoktor_code')"
|
||||
container-class="col-3 stv-details-prestudent-zgvdoktor_code"
|
||||
container-class="col stv-details-prestudent-zgvdoktor_code"
|
||||
:label="$p.t('lehre', 'zgvDoktor')"
|
||||
type="autocomplete"
|
||||
v-model="selectedDoktorZgv"
|
||||
@@ -441,7 +441,7 @@ export default {
|
||||
</form-input>
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('zgvdoktorort')"
|
||||
container-class="col-3 stv-details-prestudent-zgvdoktorort"
|
||||
container-class="col stv-details-prestudent-zgvdoktorort"
|
||||
:label="$p.t('lehre', 'zgvDoktorOrt')"
|
||||
type="text"
|
||||
v-model="data.zgvdoktorort"
|
||||
@@ -450,7 +450,7 @@ export default {
|
||||
</form-input>
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('zgvdoktordatum')"
|
||||
container-class="col-3 stv-details-prestudent-zgvdoktordatum"
|
||||
container-class="col stv-details-prestudent-zgvdoktordatum"
|
||||
:label="$p.t('lehre', 'zgvDoktorDatum')"
|
||||
type="DatePicker"
|
||||
v-model="data.zgvdoktordatum"
|
||||
@@ -466,7 +466,7 @@ export default {
|
||||
</form-input>
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('zgvdoktornation')"
|
||||
container-class="col-3 stv-details-prestudent-zgvdoktornation"
|
||||
container-class="col stv-details-prestudent-zgvdoktornation"
|
||||
:label="$p.t('lehre', 'zgvDoktorNation')"
|
||||
type="select"
|
||||
v-model="data.zgvdoktornation"
|
||||
@@ -477,11 +477,13 @@ export default {
|
||||
<option v-for="nation in lists.nations" :key="nation.nation_code" :value="nation.nation_code" :disabled="nation.sperre">{{nation.kurztext}}</option>
|
||||
</form-input>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<div class="col-3 pt-4 d-flex align-items-center">
|
||||
|
||||
<div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 row-cols-xl-4 gx-3 gy-1 mb-1">
|
||||
<div
|
||||
class="col pt-4 d-flex align-items-center"
|
||||
v-if="!config.hiddenFields.includes('zgv_erfuellt')"
|
||||
>
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('zgv_erfuellt')"
|
||||
container-class="form-check stv-details-prestudent-zgv_erfuellt"
|
||||
:label="$p.t('infocenter', 'zgvErfuellt')"
|
||||
type="checkbox"
|
||||
@@ -490,9 +492,11 @@ export default {
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
<div class="col-3 pt-4 d-flex align-items-center">
|
||||
<div
|
||||
class="col pt-4 d-flex align-items-center"
|
||||
v-if="!config.hiddenFields.includes('zgvmas_erfuellt')"
|
||||
>
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('zgvmas_erfuellt')"
|
||||
container-class="form-check stv-details-prestudent-zgvmas_erfuellt"
|
||||
:label="$p.t('lehre', 'zgvMasterErfuellt')"
|
||||
type="checkbox"
|
||||
@@ -501,9 +505,11 @@ export default {
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
<div class="col-3 pt-4 d-flex align-items-center">
|
||||
<div
|
||||
class="col pt-4 d-flex align-items-center"
|
||||
v-if="!config.hiddenFields.includes('zgvdoktor_erfuellt')"
|
||||
>
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('zgvdoktor_erfuellt')"
|
||||
container-class="form-check stv-details-prestudent-zgvdoktor_erfuellt"
|
||||
:label="$p.t('lehre', 'zgvDoktorErfuellt')"
|
||||
type="checkbox"
|
||||
@@ -514,12 +520,12 @@ export default {
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<fieldset class="overflow-hidden">
|
||||
<fieldset class="overflow-hidden mb-2">
|
||||
<legend>PrestudentIn</legend>
|
||||
<div class="row mb-3">
|
||||
<div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 row-cols-xl-3 gx-3 gy-1 mb-1">
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('aufmerksamdurch_kurzbz')"
|
||||
container-class="col-4 stv-details-prestudent-aufmerksamdurch_kurzbz"
|
||||
container-class="col stv-details-prestudent-aufmerksamdurch_kurzbz"
|
||||
:label="$p.t('person', 'aufmerksamDurch')"
|
||||
type="select"
|
||||
v-model="data.aufmerksamdurch_kurzbz"
|
||||
@@ -529,7 +535,7 @@ export default {
|
||||
</form-input>
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('berufstaetigkeit_code')"
|
||||
container-class="col-4 stv-details-prestudent-berufstaetigkeit_code"
|
||||
container-class="col stv-details-prestudent-berufstaetigkeit_code"
|
||||
:label="$p.t('person', 'berufstaetigkeit')"
|
||||
type="select"
|
||||
v-model="data.berufstaetigkeit_code"
|
||||
@@ -540,7 +546,7 @@ export default {
|
||||
</form-input>
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('ausbildungcode')"
|
||||
container-class="col-4 stv-details-prestudent-ausbildungcode"
|
||||
container-class="col stv-details-prestudent-ausbildungcode"
|
||||
:label="$p.t('person', 'ausbildung')"
|
||||
type="select"
|
||||
v-model="data.ausbildungcode"
|
||||
@@ -551,10 +557,10 @@ export default {
|
||||
</form-input>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 row-cols-xl-3 gx-3 gy-1 mb-1">
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('aufnahmeschluessel')"
|
||||
container-class="col-4 stv-details-prestudent-aufnahmeschluessel"
|
||||
container-class="col stv-details-prestudent-aufnahmeschluessel"
|
||||
label="Aufnahmeschlüssel"
|
||||
type="text"
|
||||
v-model="data.aufnahmeschluessel"
|
||||
@@ -563,9 +569,11 @@ export default {
|
||||
>
|
||||
</form-input>
|
||||
|
||||
<div class="col-4 pt-4 d-flex align-items-center">
|
||||
<div
|
||||
v-if="!config.hiddenFields.includes('facheinschlaegigBerufstaetig')"
|
||||
class="col pt-4 d-flex align-items-center"
|
||||
>
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('facheinschlaegigBerufstaetig')"
|
||||
container-class="form-check stv-details-prestudent-facheinschlaegigBerufstaetig"
|
||||
:label="$p.t('person', 'facheinschlaegigBerufstaetig')"
|
||||
type="checkbox"
|
||||
@@ -577,7 +585,7 @@ export default {
|
||||
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('standort_code')"
|
||||
container-class="col-4 stv-details-prestudent-standort_code"
|
||||
container-class="col stv-details-prestudent-standort_code"
|
||||
:label="$p.t('person', 'bisstandort')"
|
||||
type="select"
|
||||
v-model="data.standort_code"
|
||||
@@ -587,10 +595,10 @@ export default {
|
||||
</form-input>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 row-cols-xl-3 gx-3 gy-1 mb-1">
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('studiengang_kz')"
|
||||
container-class="col-4 stv-details-prestudent-studiengang_kz"
|
||||
container-class="col stv-details-prestudent-studiengang_kz"
|
||||
:label="$p.t('lehre', 'studiengang')"
|
||||
type="select"
|
||||
v-model="data.studiengang_kz"
|
||||
@@ -601,7 +609,7 @@ export default {
|
||||
</form-input>
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('gsstudientyp_kurzbz')"
|
||||
container-class="col-4 stv-details-prestudent-gsstudientyp_kurzbz"
|
||||
container-class="col stv-details-prestudent-gsstudientyp_kurzbz"
|
||||
:label="$p.t('lehre', 'studientyp')"
|
||||
type="select"
|
||||
v-model="data.gsstudientyp_kurzbz"
|
||||
@@ -611,66 +619,77 @@ export default {
|
||||
</form-input>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 row-cols-xl-3 gx-3 gy-1 mb-1">
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('anmerkung')"
|
||||
container-class="col-4 stv-details-prestudent-anmerkung"
|
||||
container-class="col stv-details-prestudent-anmerkung"
|
||||
:label="$p.t('global', 'anmerkung')"
|
||||
type="text"
|
||||
v-model="data.anmerkung"
|
||||
name="anmerkung"
|
||||
>
|
||||
</form-input>
|
||||
<div class="col-2 pt-4 d-flex align-items-center">
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('bismelden')"
|
||||
container-class="form-check stv-details-prestudent-bismelden"
|
||||
:label="$p.t('person', 'bismelden')"
|
||||
type="checkbox"
|
||||
v-model="data.bismelden"
|
||||
name="bismelden"
|
||||
:disabled="!hasBismeldenPermission"
|
||||
<div class="col">
|
||||
<div class="row g-3 align-items-center mb-3">
|
||||
<div
|
||||
class="col-12 col-md-6 pt-4 d-flex align-items-center"
|
||||
v-if="!config.hiddenFields.includes('bismelden')"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
<div class="col-2 pt-4 d-flex align-items-center">
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('dual')"
|
||||
container-class="form-check stv-details-prestudent-dual"
|
||||
:label="$p.t('lehre', 'dual')"
|
||||
type="checkbox"
|
||||
v-model="data.dual"
|
||||
name="dual"
|
||||
<form-input
|
||||
container-class="col form-check stv-details-prestudent-bismelden"
|
||||
:label="$p.t('person', 'bismelden')"
|
||||
type="checkbox"
|
||||
v-model="data.bismelden"
|
||||
name="bismelden"
|
||||
:disabled="!hasBismeldenPermission"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
<div
|
||||
class="col-12 col-md-6 pt-4 d-flex align-items-center"
|
||||
v-if="!config.hiddenFields.includes('dual')"
|
||||
>
|
||||
</form-input>
|
||||
<form-input
|
||||
container-class="col form-check stv-details-prestudent-dual"
|
||||
:label="$p.t('lehre', 'dual')"
|
||||
type="checkbox"
|
||||
v-model="data.dual"
|
||||
name="dual"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<form-input
|
||||
container-class="col-3"
|
||||
:label="$p.t('lehre', 'foerderrelevant')"
|
||||
type="select"
|
||||
v-model="data.foerderrelevant"
|
||||
name="foerderrelevant"
|
||||
>
|
||||
<option v-for="entry in listFoerderrelevant" :value="entry.value">{{entry.text}}</option>
|
||||
</form-input>
|
||||
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('priorisierung')"
|
||||
container-class="col-1"
|
||||
:label="$p.t('lehre', 'prioritaet')"
|
||||
type="text"
|
||||
v-model="data.priorisierung"
|
||||
name="priorisierung"
|
||||
:disabled="!hasPrestudentPermission"
|
||||
>
|
||||
</form-input>
|
||||
<div class="col">
|
||||
<div class="row g-3 align-items-center">
|
||||
<form-input
|
||||
container-class="col-12 col-md-6"
|
||||
:label="$p.t('lehre', 'foerderrelevant')"
|
||||
type="select"
|
||||
v-model="data.foerderrelevant"
|
||||
name="foerderrelevant"
|
||||
>
|
||||
<option v-for="entry in listFoerderrelevant" :value="entry.value">{{entry.text}}</option>
|
||||
</form-input>
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('priorisierung')"
|
||||
container-class="col-12 col-md-6"
|
||||
:label="$p.t('lehre', 'prioritaet')"
|
||||
type="text"
|
||||
v-model="data.priorisierung"
|
||||
name="priorisierung"
|
||||
:disabled="!hasPrestudentPermission"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<core-udf
|
||||
v-if="!config.hideUDFs"
|
||||
@load="udfsLoaded"
|
||||
v-model="data"
|
||||
class="row-cols-3 g-3 mb-3"
|
||||
class="row-cols-3 gx-3 gy-1 mb-1"
|
||||
ci-model="crm/prestudent"
|
||||
:pk="{prestudent_id:modelValue.prestudent_id}"
|
||||
>
|
||||
|
||||
@@ -85,7 +85,7 @@ export default{
|
||||
},
|
||||
},
|
||||
template: `
|
||||
<div class="stv-details-prestudent-history h-100 pt-3">
|
||||
<div class="stv-details-prestudent-history h-100">
|
||||
<core-filter-cmpt
|
||||
ref="table"
|
||||
:tabulator-options="tabulatorOptions"
|
||||
|
||||
@@ -608,8 +608,8 @@ export default {
|
||||
</template>
|
||||
|
||||
<template #filter>
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="card mt-2">
|
||||
<div class="card-body p-2">
|
||||
<list-filter ref="listfilter" @change="updateFilter" :filterActive="filter.length"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -109,7 +109,7 @@ export default {
|
||||
:key="i"
|
||||
v-model="filters[i]"
|
||||
:filter-config="filterConfig"
|
||||
class="mt-3"
|
||||
class="mt-2"
|
||||
@remove="remove(i)"
|
||||
/>
|
||||
</div>`
|
||||
|
||||
@@ -219,13 +219,14 @@ export default {
|
||||
:scrollable="true"
|
||||
:lazy="true"
|
||||
:activeIndex="calcActiveIndex"
|
||||
:pt="{navContainer:{style: 'flex: 0 0 auto;'}, panelContainer:{class: 'overflow-y-scroll', style: 'flex: 1 1 auto;'}}"
|
||||
:pt="{navContainer:{style: 'flex: 0 0 auto;'}, panelContainer:{class: 'overflow-y-scroll p-2', style: 'flex: 1 1 auto;'}}"
|
||||
@tab-click="handleTabClick"
|
||||
>
|
||||
<tabpanel
|
||||
v-for="tab in tabs"
|
||||
:key="tab.key"
|
||||
:header="tab.title + ((tab.value.showSuffix && tab.value.suffix !== '') ? ' ' + tab.value.suffix : '')"
|
||||
:pt="{headerAction:{class: 'px-2 py-1'}}"
|
||||
>
|
||||
<keep-alive>
|
||||
<component
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 41 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 88 KiB |
Reference in New Issue
Block a user