diff --git a/application/controllers/api/frontend/v1/stv/Address.php b/application/controllers/api/frontend/v1/stv/Address.php
index 324e306f3..d14111e99 100644
--- a/application/controllers/api/frontend/v1/stv/Address.php
+++ b/application/controllers/api/frontend/v1/stv/Address.php
@@ -31,6 +31,11 @@ class Address extends FHCAPI_Controller
'getNations' => self::PERM_LOGGED,
'getPlaces' => self::PERM_LOGGED
]);
+
+ // Load language phrases
+ $this->loadPhrases([
+ 'ui'
+ ]);
}
public function getNations()
@@ -53,7 +58,11 @@ class Address extends FHCAPI_Controller
$this->form_validation->set_data(['address.plz' => $plz]);
- $this->form_validation->set_rules('address.plz', 'PLZ', 'required|numeric|less_than[10000]');
+ $this->form_validation->set_rules('address.plz', 'PLZ', 'required|numeric|less_than[10000]', [
+ 'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'PLZ']),
+ 'numeric' => $this->p->t('ui', 'error_fieldNotNumeric', ['field' => 'PLZ']),
+ 'less_than' => $this->p->t('ui', 'error_fieldLessThan10000', ['field' => 'PLZ'])
+ ]);
if (!$this->form_validation->run())
$this->terminateWithValidationErrors($this->form_validation->error_array());
diff --git a/application/controllers/api/frontend/v1/stv/Prestudent.php b/application/controllers/api/frontend/v1/stv/Prestudent.php
index ed48e6d9a..4d0aa5fe1 100644
--- a/application/controllers/api/frontend/v1/stv/Prestudent.php
+++ b/application/controllers/api/frontend/v1/stv/Prestudent.php
@@ -136,14 +136,19 @@ class Prestudent extends FHCAPI_Controller
$update_prestudent = array();
foreach ($array_allowed_props_prestudent as $prop)
{
- $val = $this->input->post($prop);
- if ($val !== null || $prop == 'foerderrelevant') {
+ $val = $this->input->post($prop, true);
+
+ if ($val !== null || $prop === 'foerderrelevant') {
$update_prestudent[$prop] = $val;
}
- if (($prop == 'zgvdatum' && $val == '')
- || ($prop == 'zgvmadatum' && $val == '')
- || ($prop == 'zgvdoktordatum' && $val == '')
- ) {
+
+ // allowed to be null, but has to be in postparameter
+ if (
+ in_array($prop, ['zgvdatum', 'zgvmadatum', 'zgvdoktordatum', 'zgv_code', 'zgvmas_code', 'zgvdoktor_code'])
+ && !isset($update_prestudent[$prop])
+ && array_key_exists($prop, $_POST)
+ )
+ {
$update_prestudent[$prop] = null;
}
}
diff --git a/application/controllers/api/frontend/v1/stv/Student.php b/application/controllers/api/frontend/v1/stv/Student.php
index 784227ae0..2518e9af9 100644
--- a/application/controllers/api/frontend/v1/stv/Student.php
+++ b/application/controllers/api/frontend/v1/stv/Student.php
@@ -97,6 +97,15 @@ class Student extends FHCAPI_Controller
$this->PrestudentModel->addSelect('v.verband');
$this->PrestudentModel->addSelect('v.gruppe');
$this->PrestudentModel->addSelect('b.alias');
+ $this->PrestudentModel->addSelect('p.geburtsnation');
+ $this->PrestudentModel->addSelect('p.sprache');
+ $this->PrestudentModel->addSelect('p.gebort');
+ $this->PrestudentModel->addSelect('p.homepage');
+ $this->PrestudentModel->addSelect('p.anmerkung');
+ $this->PrestudentModel->addSelect('p.familienstand');
+ $this->PrestudentModel->addSelect('p.staatsbuergerschaft');
+ $this->PrestudentModel->addSelect('p.matr_nr');
+ $this->PrestudentModel->addSelect('p.anrede');
if (defined('ACTIVE_ADDONS') && strpos(ACTIVE_ADDONS, 'bewerbung') !== false) {
$this->PrestudentModel->addSelect(
@@ -172,6 +181,7 @@ class Student extends FHCAPI_Controller
$this->load->model('crm/Student_model', 'StudentModel');
$this->load->model('crm/Prestudent_model', 'PrestudentModel');
$this->load->model('education/Studentlehrverband_model', 'StudentlehrverbandModel');
+ $this->load->model('organisation/Lehrverband_model', 'LehrverbandModel');
$this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel');
$this->load->library('form_validation');
@@ -186,7 +196,15 @@ class Student extends FHCAPI_Controller
$this->form_validation->set_rules('gebdatum', 'Geburtsdatum', 'is_valid_date');
- $this->form_validation->set_rules('semester', 'Semester', 'integer');
+ $this->form_validation->set_rules('semester', 'Semester', 'integer', [
+ 'integer' => $this->p->t('ui', 'error_fieldNotInteger')
+ ]
+ );
+
+ $this->form_validation->set_rules('alias', 'Alias', 'regex_match[/^[-a-z0-9\_\.]*[a-z0-9]{1,}\.[-a-z0-9\_]{1,}$/]',
+ [
+ 'regex_match' => $this->p->t('ui', 'error_fieldInvalidAlias')
+ ]);
$this->load->library('UDFLib');
@@ -298,11 +316,37 @@ class Student extends FHCAPI_Controller
// Do Updates
if (count($update_lehrverband)) {
+
$curstudlvb = $this->StudentlehrverbandModel->load([
'studiensemester_kurzbz' => $studiensemester_kurzbz,
'student_uid' => $uid
]);
+ $data = $this->getDataOrTerminateWithError($curstudlvb);
+ $data = current($data);
+
+ $verbandCurrent = $data->verband;
+ $studiengang_kz = $data->studiengang_kz;
+ $semesterCurrent = $data->semester;
+ $gruppeCurrent = $data->gruppe;
+
+ $verband = isset($update_lehrverband['verband']) ? $update_lehrverband['verband'] : $verbandCurrent;
+ $gruppe = isset($update_lehrverband['gruppe']) ? $update_lehrverband['gruppe'] : $gruppeCurrent;
+ $semester = isset($update_lehrverband['semester']) ? $update_lehrverband['semester'] : $semesterCurrent;
+
+ //check if existing Lehrverband of new data to avoid Error
+ $result = $this->LehrverbandModel->loadWhere([
+ 'verband' => $verband,
+ 'gruppe' => $gruppe,
+ 'semester' => $semester,
+ 'studiengang_kz' => $studiengang_kz,
+ ]);
+
+ if(!hasData($result))
+ {
+ $this->terminateWithError($this->p->t('lehre', 'error_noLehrverband'), self::ERROR_TYPE_GENERAL);
+ }
+
if(hasData($curstudlvb) && count(getData($curstudlvb)) > 0 )
{
$update_lehrverband['updatevon'] = $authuid;
diff --git a/public/js/components/Betriebsmittel/Betriebsmittel.js b/public/js/components/Betriebsmittel/Betriebsmittel.js
index d197c341e..502ede059 100644
--- a/public/js/components/Betriebsmittel/Betriebsmittel.js
+++ b/public/js/components/Betriebsmittel/Betriebsmittel.js
@@ -137,8 +137,6 @@ export default {
layout: 'fitColumns',
layoutColumnsOnNewData: false,
height: '550',
- selectableRangeMode: 'click',
- selectable: true,
persistenceID: 'core-betriebsmittel'
},
tabulatorEvents: [
@@ -317,6 +315,7 @@ export default {
table-only
:side-menu="false"
reload
+ :reload-btn-infotext="this.$p.t('table', 'reload')"
new-btn-show
:new-btn-label="this.$p.t('ui', 'betriebsmittel')"
@click:new="actionNewBetriebsmittel"
diff --git a/public/js/components/DetailHeader/DetailHeader.js b/public/js/components/DetailHeader/DetailHeader.js
index aa0bb549d..5c1573753 100644
--- a/public/js/components/DetailHeader/DetailHeader.js
+++ b/public/js/components/DetailHeader/DetailHeader.js
@@ -132,8 +132,7 @@ export default {
{{headerData[0].titelpre}}
{{headerData[0].vorname}}
- {{headerData[0].nachname}}
- ,
+ {{headerData[0].nachname}},
{{headerData[0].titelpost}}
diff --git a/public/js/components/Funktionen/Funktionen.js b/public/js/components/Funktionen/Funktionen.js
index 0b5a71155..e83eca7e4 100644
--- a/public/js/components/Funktionen/Funktionen.js
+++ b/public/js/components/Funktionen/Funktionen.js
@@ -444,6 +444,7 @@ export default {
table-only
:side-menu="false"
:reload= "!this.stylePv21"
+ :reload-btn-infotext="this.$p.t('table', 'reload')"
new-btn-show
:new-btn-class="this.newBtnStyle"
:new-btn-label="this.$p.t('person', 'funktion')"
diff --git a/public/js/components/Messages/Details/TableMessages.js b/public/js/components/Messages/Details/TableMessages.js
index 8d539983f..5095f4223 100644
--- a/public/js/components/Messages/Details/TableMessages.js
+++ b/public/js/components/Messages/Details/TableMessages.js
@@ -401,6 +401,7 @@ export default {
table-only
:side-menu="false"
reload
+ :reload-btn-infotext="this.$p.t('table', 'reload')"
new-btn-show
:new-btn-label="this.$p.t('global', 'nachricht')"
@click:new="actionNewMessage"
diff --git a/public/js/components/Notiz/Notiz.js b/public/js/components/Notiz/Notiz.js
index 8b37cd6e3..5a3944803 100644
--- a/public/js/components/Notiz/Notiz.js
+++ b/public/js/components/Notiz/Notiz.js
@@ -82,7 +82,7 @@ export default {
field: "text_stripped",
width: 250,
formatter: "html",
- clipContents: true,
+ //clipContents: true,
tooltip:function(e, cell, onRendered){
var el = document.createElement("div");
el.style.backgroundColor = "white";
@@ -178,8 +178,6 @@ export default {
layoutColumnsOnNewData: false,
//responsiveLayout: "collapse",
maxHeight: '200px',
- //selectableRangeMode: 'click',
- //selectable: true,
index: 'notiz_id',
persistenceID: 'core-notiz'
},
@@ -254,7 +252,7 @@ export default {
title: this.$p.t('global', 'text'),
width: 250,
tooltip: true,
- clipContents: true,
+ //clipContents: true,
});
// Force layout recalculation for handling overflow text
@@ -1268,6 +1266,7 @@ export default {
table-only
:side-menu="false"
reload
+ :reload-btn-infotext="this.$p.t('table', 'reload')"
new-btn-show
:new-btn-label="this.$p.t('global', 'notiz')"
@click:new="actionNewNotiz"
diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Abschlusspruefung/Abschlusspruefung.js b/public/js/components/Stv/Studentenverwaltung/Details/Abschlusspruefung/Abschlusspruefung.js
index a9cae9bc5..e5c4cade1 100644
--- a/public/js/components/Stv/Studentenverwaltung/Details/Abschlusspruefung/Abschlusspruefung.js
+++ b/public/js/components/Stv/Studentenverwaltung/Details/Abschlusspruefung/Abschlusspruefung.js
@@ -168,7 +168,6 @@ export default {
layoutColumnsOnNewData: false,
height: 'auto',
minHeight: '200',
- selectable: true,
index: 'abschlusspruefung_id',
persistenceID: 'stv-details-finalexam'
},
@@ -542,6 +541,7 @@ export default {
table-only
:side-menu="false"
reload
+ :reload-btn-infotext="this.$p.t('table', 'reload')"
new-btn-show
:new-btn-label="this.$p.t('stv', 'tab_finalexam')"
@click:new="actionNewAbschlusspruefung"
diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Anrechnungen/Anrechnungen.js b/public/js/components/Stv/Studentenverwaltung/Details/Anrechnungen/Anrechnungen.js
index 8f32479a9..4c29cec3e 100644
--- a/public/js/components/Stv/Studentenverwaltung/Details/Anrechnungen/Anrechnungen.js
+++ b/public/js/components/Stv/Studentenverwaltung/Details/Anrechnungen/Anrechnungen.js
@@ -357,6 +357,7 @@ export default {
table-only
:side-menu="false"
reload
+ :reload-btn-infotext="this.$p.t('table', 'reload')"
>
diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Archiv.js b/public/js/components/Stv/Studentenverwaltung/Details/Archiv.js
index 7f615f8b5..5bd20e154 100644
--- a/public/js/components/Stv/Studentenverwaltung/Details/Archiv.js
+++ b/public/js/components/Stv/Studentenverwaltung/Details/Archiv.js
@@ -130,6 +130,7 @@ export default {
let editButton = document.createElement('button');
editButton.className = 'btn btn-outline-secondary';
editButton.innerHTML = '';
+ editButton.title = this.$p.t('ui', 'bearbeiten');
editButton.addEventListener('click', () =>
this.$refs.edit.open(cell.getData())
);
@@ -139,6 +140,7 @@ export default {
let deleteButton = document.createElement('button');
deleteButton.className = 'btn btn-outline-secondary';
deleteButton.innerHTML = '';
+ deleteButton.title = this.$p.t('ui', 'loeschen');
deleteButton.addEventListener('click', evt => {
evt.stopPropagation();
this.$fhcAlert
@@ -262,6 +264,7 @@ export default {
:tabulator-options="tabulatorOptions"
:tabulator-events="tabulatorEvents"
reload
+ :reload-btn-infotext="this.$p.t('table', 'reload')"
>
diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Aufnahmetermine/Aufnahmetermine.js b/public/js/components/Stv/Studentenverwaltung/Details/Aufnahmetermine/Aufnahmetermine.js
index fe667aa74..955ca1a9d 100644
--- a/public/js/components/Stv/Studentenverwaltung/Details/Aufnahmetermine/Aufnahmetermine.js
+++ b/public/js/components/Stv/Studentenverwaltung/Details/Aufnahmetermine/Aufnahmetermine.js
@@ -358,6 +358,7 @@ export default {
table-only
:side-menu="false"
reload
+ :reload-btn-infotext="this.$p.t('table', 'reload')"
new-btn-show
:new-btn-label="this.$p.t('lehre', 'reihungstest')"
@click:new="actionNewPlacementTest"
diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Dokumente/List/Accepted.js b/public/js/components/Stv/Studentenverwaltung/Details/Dokumente/List/Accepted.js
index e07d1a45d..d8bd2ed82 100644
--- a/public/js/components/Stv/Studentenverwaltung/Details/Dokumente/List/Accepted.js
+++ b/public/js/components/Stv/Studentenverwaltung/Details/Dokumente/List/Accepted.js
@@ -336,6 +336,7 @@ export default {
table-only
:side-menu="false"
reload
+ :reload-btn-infotext="this.$p.t('table', 'reload')"
>
diff --git a/public/js/components/Stv/Studentenverwaltung/Details/JointStudies/JointStudies.js b/public/js/components/Stv/Studentenverwaltung/Details/JointStudies/JointStudies.js
index c24e4cba5..d8cd0aacd 100644
--- a/public/js/components/Stv/Studentenverwaltung/Details/JointStudies/JointStudies.js
+++ b/public/js/components/Stv/Studentenverwaltung/Details/JointStudies/JointStudies.js
@@ -329,6 +329,7 @@ export default {
table-only
:side-menu="false"
reload
+ :reload-btn-infotext="this.$p.t('table', 'reload')"
new-btn-show
:new-btn-label="this.$p.t('jointstudies', 'gemeinsamesStudium')"
@click:new="actionNewJointStudy"
diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Kontakt/Address.js b/public/js/components/Stv/Studentenverwaltung/Details/Kontakt/Address.js
index d0c7fbd04..7bb8080e1 100644
--- a/public/js/components/Stv/Studentenverwaltung/Details/Kontakt/Address.js
+++ b/public/js/components/Stv/Studentenverwaltung/Details/Kontakt/Address.js
@@ -123,7 +123,6 @@ export default{
},
],
height: 'auto',
- selectable: true,
index: 'adresse_id',
persistenceID: 'stv-details-kontakt-address'
},
@@ -610,6 +609,7 @@ export default{
table-only
:side-menu="false"
reload
+ :reload-btn-infotext="this.$p.t('table', 'reload')"
new-btn-show
:new-btn-label="this.$p.t('person', 'adresse')"
@click:new="actionNewAdress"
diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Kontakt/Bankaccount.js b/public/js/components/Stv/Studentenverwaltung/Details/Kontakt/Bankaccount.js
index 6c02677ce..d937d3d1c 100644
--- a/public/js/components/Stv/Studentenverwaltung/Details/Kontakt/Bankaccount.js
+++ b/public/js/components/Stv/Studentenverwaltung/Details/Kontakt/Bankaccount.js
@@ -87,7 +87,6 @@ export default{
},
],
height: 'auto',
- selectable: true,
index: 'bankverbindung_id',
persistenceID: 'stv-details-kontakt-bankaccount'
},
@@ -348,6 +347,7 @@ export default{
table-only
:side-menu="false"
reload
+ :reload-btn-infotext="this.$p.t('table', 'reload')"
new-btn-show
:new-btn-label="this.$p.t('person', 'bankverbindung')"
@click:new="actionNewBankverbindung"
diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Kontakt/Contact.js b/public/js/components/Stv/Studentenverwaltung/Details/Kontakt/Contact.js
index ee37427b1..e429e5933 100644
--- a/public/js/components/Stv/Studentenverwaltung/Details/Kontakt/Contact.js
+++ b/public/js/components/Stv/Studentenverwaltung/Details/Kontakt/Contact.js
@@ -95,7 +95,6 @@ export default{
},
],
height: 'auto',
- selectable: true,
index: 'kontakt_id',
persistenceID: 'stv-details-kontakt-contact'
},
@@ -449,6 +448,7 @@ export default{
table-only
:side-menu="false"
reload
+ :reload-btn-infotext="this.$p.t('table', 'reload')"
new-btn-show
:new-btn-label="this.$p.t('global', 'kontakt')"
@click:new="actionNewContact"
diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Konto.js b/public/js/components/Stv/Studentenverwaltung/Details/Konto.js
index a5532addc..54c1db6c4 100644
--- a/public/js/components/Stv/Studentenverwaltung/Details/Konto.js
+++ b/public/js/components/Stv/Studentenverwaltung/Details/Konto.js
@@ -248,6 +248,7 @@ export default {
:side-menu="false"
:tabulator-options="tabulatorOptions"
reload
+ :reload-btn-infotext="this.$p.t('table', 'reload')"
new-btn-show
:new-btn-label="$p.t('konto/buchung')"
:new-btn-disabled="stg_kz === ''"
diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Lehrveranstaltungstermine/ListLehrveranstaltungstermine.js b/public/js/components/Stv/Studentenverwaltung/Details/Lehrveranstaltungstermine/ListLehrveranstaltungstermine.js
index 0f1c2f2f0..20cb95fbd 100644
--- a/public/js/components/Stv/Studentenverwaltung/Details/Lehrveranstaltungstermine/ListLehrveranstaltungstermine.js
+++ b/public/js/components/Stv/Studentenverwaltung/Details/Lehrveranstaltungstermine/ListLehrveranstaltungstermine.js
@@ -175,6 +175,7 @@ export default {
table-only
:side-menu="false"
reload
+ :reload-btn-infotext="this.$p.t('table', 'reload')"
>