diff --git a/application/config/stv.php b/application/config/stv.php new file mode 100644 index 000000000..78613cd40 --- /dev/null +++ b/application/config/stv.php @@ -0,0 +1,42 @@ + [ + //all fields can be configured to be hidden, see class attribute stv-details-details-name for name + 'hiddenFields' => [], + 'hideUDFs' => false + ], + + 'prestudent' => [ + + //all fields can be configured to be hidden, see class attribute stv-details-prestudent-name for name + 'hiddenFields' => [ + + //propably used by FH-Communities + 'aufnahmeschluessel', 'standort_code', 'facheinschlaegigBerufstaetig' + + ], + 'hideUDFs' => false + ] +]; + +// List of fields to show when ZGV_DOKTOR_ANZEIGEN is defined +$fieldsZgvDoktor = ['zgvdoktorort', 'zgvdoktordatum', 'zgvdoktornation', 'zgvdoktor_erfuellt', 'zgvdoktor_code']; + +// List of fields to show when ZGV_ERFUELLT_ANZEIGEN is defined +$fieldsZgvErfuellt = ['zgv_erfuellt', 'zgvmas_erfuellt','zgvdoktor_erfuellt']; + +//order important: to show zgf_erfuellt_doktor just in case visibility of doktor is true +if (!defined('ZGV_ERFUELLT_ANZEIGEN') || !ZGV_ERFUELLT_ANZEIGEN) { + $config['tabs']['prestudent']['hiddenFields'] = array_merge( + $config['tabs']['prestudent']['hiddenFields'], $fieldsZgvErfuellt + ); +} + +if (!defined('ZGV_DOKTOR_ANZEIGEN') || !ZGV_DOKTOR_ANZEIGEN) { + $config['tabs']['prestudent']['hiddenFields'] = array_merge( + $config['tabs']['prestudent']['hiddenFields'], + $fieldsZgvDoktor + ); +} diff --git a/application/controllers/api/frontend/v1/stv/Address.php b/application/controllers/api/frontend/v1/stv/Address.php index 7685fcd04..324e306f3 100644 --- a/application/controllers/api/frontend/v1/stv/Address.php +++ b/application/controllers/api/frontend/v1/stv/Address.php @@ -45,7 +45,7 @@ class Address extends FHCAPI_Controller $this->terminateWithSuccess($data); } - public function getPlaces($plz) + public function getPlaces($plz = null) { $this->load->model('codex/Gemeinde_model', 'GemeindeModel'); @@ -53,7 +53,7 @@ class Address extends FHCAPI_Controller $this->form_validation->set_data(['address.plz' => $plz]); - $this->form_validation->set_rules('address.plz', 'PLZ', 'numeric|less_than[10000]'); + $this->form_validation->set_rules('address.plz', 'PLZ', 'required|numeric|less_than[10000]'); if (!$this->form_validation->run()) $this->terminateWithValidationErrors($this->form_validation->error_array()); diff --git a/application/controllers/api/frontend/v1/stv/Config.php b/application/controllers/api/frontend/v1/stv/Config.php index c28c49485..fd318a79f 100644 --- a/application/controllers/api/frontend/v1/stv/Config.php +++ b/application/controllers/api/frontend/v1/stv/Config.php @@ -46,14 +46,20 @@ class Config extends FHCAPI_Controller 'stv', 'konto' ]); + + // Load Config + $this->load->config('stv'); } public function student() { $result = []; + $config = $this->config->item('tabs'); + $result['details'] = [ 'title' => $this->p->t('stv', 'tab_details'), - 'component' => './Stv/Studentenverwaltung/Details/Details.js' + 'component' => './Stv/Studentenverwaltung/Details/Details.js', + 'config' => $config['details'] ]; $result['notes'] = [ 'title' => $this->p->t('stv', 'tab_notes'), @@ -69,7 +75,8 @@ class Config extends FHCAPI_Controller ]; $result['prestudent'] = [ 'title' => $this->p->t('stv', 'tab_prestudent'), - 'component' => './Stv/Studentenverwaltung/Details/Prestudent.js' + 'component' => './Stv/Studentenverwaltung/Details/Prestudent.js', + 'config' => $config['prestudent'] ]; $result['status'] = [ 'title' => 'Status', diff --git a/application/controllers/api/frontend/v1/stv/Kontakt.php b/application/controllers/api/frontend/v1/stv/Kontakt.php index 379184ee0..05fb55011 100644 --- a/application/controllers/api/frontend/v1/stv/Kontakt.php +++ b/application/controllers/api/frontend/v1/stv/Kontakt.php @@ -97,7 +97,14 @@ class Kontakt extends FHCAPI_Controller || $this->router->method == 'deleteContact' || $this->router->method == 'deleteBankverbindung' ) { - $id = current(array_slice($this->uri->rsegments, 2)); + if($this->input->post('address_id')) + $id = $this->input->post('address_id'); + if($this->input->post('adresse_id')) + $id = $this->input->post('adresse_id'); + if($this->input->post('bankverbindung_id')) + $id = $this->input->post('bankverbindung_id'); + if($this->input->post('kontakt_id')) + $id = $this->input->post('kontakt_id'); $model = 'person/Adresse_model'; if ($this->router->method == 'loadContact' @@ -125,7 +132,12 @@ class Kontakt extends FHCAPI_Controller } public function getAdressen($person_id) { - $this->AdresseModel->addSelect('public.tbl_adresse.*'); + $this->AdresseModel->addSelect("public.tbl_adresse.*, + TO_CHAR (CASE + WHEN public.tbl_adresse.updateamum >= public.tbl_adresse.insertamum + THEN public.tbl_adresse.updateamum + ELSE public.tbl_adresse.insertamum + END::timestamp, 'DD.MM.YYYY HH24:MI:SS') AS lastUpdate"); $this->AdresseModel->addSelect('t.*'); $this->AdresseModel->addSelect('f.firma_id'); $this->AdresseModel->addSelect('f.name as firmenname'); @@ -143,15 +155,19 @@ class Kontakt extends FHCAPI_Controller public function addNewAddress($person_id) { - $this->form_validation->set_rules('plz', 'PLZ', 'required|numeric', [ + $this->form_validation->set_data(['address.plz' => $_POST['plz']]); + + $this->form_validation->set_rules('address.plz', 'PLZ', 'required|numeric', [ 'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'PLZ']), 'numeric' => $this->p->t('ui', 'error_fieldNotNumeric', ['field' => 'PLZ']) ]); - if(isset($_POST['gemeinde']) && isset($_POST['ort'])) - $this->form_validation->set_rules('plz', 'Postleitzahl', 'callback_validateLocationCombination', [ - 'validateLocationCombination' => $this->p->t('ui', 'error_location_combination') - ]); + if(isset($_POST['gemeinde']) && isset($_POST['ort']) && isset($_POST['nation']) && $_POST['nation'] == 'A') + { + $this->form_validation->set_rules('address.plz', 'Postleitzahl', 'callback_validateLocationCombination', [ + 'validateLocationCombination' => $this->p->t('ui', 'error_location_combination') + ]); + } if ($this->form_validation->run() == false) { @@ -196,25 +212,33 @@ class Kontakt extends FHCAPI_Controller ] ); - if (isError($result)) - { - return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL); - } - return $this->outputJsonSuccess(true); + $data = $this->getDataOrTerminateWithError($result); + + $this->terminateWithSuccess($data); } - public function updateAddress($address_id) + public function updateAddress() { + $address_id = $this->input->post('adresse_id'); + + $this->form_validation->set_data(['address.plz' => $_POST['plz']]); + $uid = getAuthUID(); - $this->form_validation->set_rules('plz', 'PLZ', 'required|numeric', [ + + $this->form_validation->set_rules('address.plz', 'PLZ', 'required|numeric', [ 'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'PLZ']), 'numeric' => $this->p->t('ui', 'error_fieldNotNumeric', ['field' => 'PLZ']) ]); - if(isset($_POST['gemeinde']) && isset($_POST['ort'])) - $this->form_validation->set_rules('plz', 'Postleitzahl', 'callback_validateLocationCombination', [ + if(isset($_POST['gemeinde']) && ($_POST['gemeinde'] != '') + && isset($_POST['ort']) && ($_POST['ort'] != '') + && isset($_POST['nation']) && ($_POST['nation'] == 'A') + && isset($_POST['plz']) && ($_POST['plz'] != '') ) + { + $this->form_validation->set_rules('address.plz', 'Postleitzahl', 'callback_validateLocationCombination', [ 'validateLocationCombination' => $this->p->t('ui', 'error_location_combination') ]); + } if ($this->form_validation->run() == false) { @@ -272,15 +296,15 @@ class Kontakt extends FHCAPI_Controller ] ); - if (isError($result)) - { - return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL); - } - return $this->outputJsonSuccess(true); + $data = $this->getDataOrTerminateWithError($result); + + $this->terminateWithSuccess($data); } - public function loadAddress($adresse_id) + public function loadAddress() { + $adresse_id = $this->input->post('address_id'); + $this->load->model('person/Adresse_model', 'AdresseModel'); $this->AdresseModel->addSelect('public.tbl_adresse.*'); @@ -306,8 +330,10 @@ class Kontakt extends FHCAPI_Controller $this->terminateWithSuccess(current(getData($result)) ? : null); } - public function deleteAddress($adresse_id) + public function deleteAddress() { + $adresse_id = $this->input->post('address_id'); + $this->load->model('person/Adresse_model', 'AdresseModel'); $result = $this->AdresseModel->load([ 'adresse_id'=> $adresse_id, @@ -366,10 +392,10 @@ class Kontakt extends FHCAPI_Controller $this->load->model('organisation/standort_model', 'StandortModel'); $result = $this->StandortModel->searchStandorte($searchString); - if (isError($result)) { - $this->terminateWithError($result, self::ERROR_TYPE_GENERAL); - } - $this->terminateWithSuccess($result ?: []); + + $data = $this->getDataOrTerminateWithError($result); + + $this->terminateWithSuccess($data); } public function getStandorteByFirma($firma_id) @@ -418,8 +444,9 @@ class Kontakt extends FHCAPI_Controller } } - public function loadContact($kontakt_id) + public function loadContact() { + $kontakt_id = $this->input->post('kontakt_id'); $this->load->model('person/Kontakt_model', 'KontaktModel'); $this->KontaktModel->addSelect('*, public.tbl_kontakt.*'); @@ -439,7 +466,6 @@ class Kontakt extends FHCAPI_Controller { return $this->terminateWithError($this->p->t('ui', 'error_missingId', ['id'=> 'Kontakt_id']), self::ERROR_TYPE_GENERAL); } - // $this->outputJsonSuccess(current(getData($result))); $this->terminateWithSuccess(current(getData($result))); } @@ -495,8 +521,9 @@ class Kontakt extends FHCAPI_Controller return $this->outputJsonSuccess(true); } - public function updateContact($kontakt_id) + public function updateContact() { + $kontakt_id = $this->input->post('kontakt_id'); $this->load->model('person/Kontakt_model', 'KontaktModel'); if(!$kontakt_id) @@ -523,13 +550,6 @@ class Kontakt extends FHCAPI_Controller $this->terminateWithValidationErrors($this->form_validation->error_array()); } -/* if(isset($_POST['standort'])) - { - $standort_id = $_POST['standort']['standort_id']; - } - else - $standort_id = null;*/ - $uid = getAuthUID(); $kontakttyp = $this->input->post('kontakttyp'); $anmerkung = $this->input->post('anmerkung'); @@ -538,8 +558,6 @@ class Kontakt extends FHCAPI_Controller $person_id = $this->input->post('person_id'); $standort_id = $this->input->post('standort_id'); - //return $this->terminateWithError("in update " . $standort_id, self::ERROR_TYPE_GENERAL); - $result = $this->KontaktModel->update( [ 'kontakt_id' => $kontakt_id @@ -557,15 +575,14 @@ class Kontakt extends FHCAPI_Controller ] ); - if (isError($result)) - { - return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL); - } - return $this->outputJsonSuccess(true); + $data = $this->getDataOrTerminateWithError($result); + + $this->terminateWithSuccess($data); } - public function deleteContact($kontakt_id) + public function deleteContact() { + $kontakt_id = $this->input->post('kontakt_id'); $this->load->model('person/Kontakt_model', 'KontaktModel'); $result = $this->KontaktModel->delete( @@ -643,15 +660,15 @@ class Kontakt extends FHCAPI_Controller 'orgform_kurzbz' => $orgform_kurzbz ] ); - if (isError($result)) - { - return $this->terminateWithError($result, self::ERROR_TYPE_GENERAL); - } - return $this->outputJsonSuccess(true); + $data = $this->getDataOrTerminateWithError($result); + + $this->terminateWithSuccess($data); } - public function loadBankverbindung($bankverbindung_id) + public function loadBankverbindung() { + $bankverbindung_id = $this->input->post('bankverbindung_id'); + $this->load->model('person/Bankverbindung_model', 'BankverbindungModel'); $this->BankverbindungModel->addSelect('*'); @@ -719,15 +736,15 @@ class Kontakt extends FHCAPI_Controller ] ); - if (isError($result)) - { - return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL); - } - return $this->outputJsonSuccess(true); + $data = $this->getDataOrTerminateWithError($result); + + $this->terminateWithSuccess($data); } - public function deleteBankverbindung($bankverbindung_id) + public function deleteBankverbindung() { + $bankverbindung_id = $this->input->post('bankverbindung_id'); + $this->load->model('person/Bankverbindung_model', 'BankverbindungModel'); $result = $this->BankverbindungModel->delete( diff --git a/application/controllers/api/frontend/v1/stv/Prestudent.php b/application/controllers/api/frontend/v1/stv/Prestudent.php index ef9aeb111..0b06b9667 100644 --- a/application/controllers/api/frontend/v1/stv/Prestudent.php +++ b/application/controllers/api/frontend/v1/stv/Prestudent.php @@ -19,6 +19,7 @@ class Prestudent extends FHCAPI_Controller 'getAufmerksamdurch' => ['admin:r', 'assistenz:r'], 'getBerufstaetigkeit' => ['admin:r', 'assistenz:r'], 'getTypenStg' => ['admin:r', 'assistenz:r'], + 'getBisstandort' => ['admin:r', 'assistenz:r'], 'getStudienplaene' => ['admin:r', 'assistenz:r'], 'getStudiengang' => ['admin:r', 'assistenz:r'] ]); @@ -265,6 +266,17 @@ class Prestudent extends FHCAPI_Controller return $this->terminateWithSuccess(getData($result) ?: []); } + public function getBisstandort() + { + $this->load->model('codex/Bisstandort_model', 'BisstandortModel'); + + $result = $this->BisstandortModel->load(); + if (isError($result)) { + $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL); + } + return $this->terminateWithSuccess(getData($result) ?: []); + } + public function getStudienplaene($prestudent_id) { $this->load->model('organisation/Studienplan_model', 'StudienplanModel'); diff --git a/application/controllers/api/frontend/v1/stv/Status.php b/application/controllers/api/frontend/v1/stv/Status.php index 074f4029e..4e7189d1d 100644 --- a/application/controllers/api/frontend/v1/stv/Status.php +++ b/application/controllers/api/frontend/v1/stv/Status.php @@ -647,15 +647,8 @@ class Status extends FHCAPI_Controller return $this->outputJsonSuccess(true); } - public function loadStatus() + public function loadStatus($prestudent_id, $status_kurzbz, $studiensemester_kurzbz, $ausbildungssemester) { - $_POST = json_decode(utf8_encode($this->input->raw_input_stream), true); - - $prestudent_id = $this->input->post('prestudent_id'); - $status_kurzbz = $this->input->post('status_kurzbz'); - $ausbildungssemester = $this->input->post('ausbildungssemester'); - $studiensemester_kurzbz = $this->input->post('studiensemester_kurzbz'); - $result = $this->PrestudentstatusModel->loadWhere( array( 'prestudent_id' => $prestudent_id, diff --git a/application/controllers/api/frontend/v1/stv/Student.php b/application/controllers/api/frontend/v1/stv/Student.php index 89c317ae4..f805be88a 100644 --- a/application/controllers/api/frontend/v1/stv/Student.php +++ b/application/controllers/api/frontend/v1/stv/Student.php @@ -55,7 +55,7 @@ class Student extends FHCAPI_Controller // Load language phrases $this->loadPhrases([ - 'ui' + 'ui', 'lehre' ]); } @@ -223,12 +223,10 @@ class Student extends FHCAPI_Controller // Check PKs if (count($update_lehrverband) + count($update_student) && $uid === null) { - // TODO(chris): phrase - $this->terminateWithValidationErrors(['' => "Kein/e StudentIn vorhanden!"]); + $this->terminateWithValidationErrors(['' => $this->p->t('lehre', 'error_no_student')]); } if (count($update_person) && $person_id === null) { - // TODO(chris): phrase - $this->terminateWithValidationErrors(['' => "Keine Person vorhanden!"]); + $this->terminateWithValidationErrors(['' => $this->p->t('lehre', 'error_no_person')]); } // Do Updates diff --git a/application/core/Notiz_Controller.php b/application/core/Notiz_Controller.php index 05f70ee85..472ac7669 100644 --- a/application/core/Notiz_Controller.php +++ b/application/core/Notiz_Controller.php @@ -309,6 +309,7 @@ abstract class Notiz_Controller extends FHCAPI_Controller } //update(1) loading all dms-entries with this notiz_id + $dms_id_arr = []; $this->load->model('person/Notizdokument_model', 'NotizdokumentModel'); $this->NotizdokumentModel->addJoin('campus.tbl_dms_version', 'dms_id'); diff --git a/application/models/codex/Bisstandort_model.php b/application/models/codex/Bisstandort_model.php new file mode 100644 index 000000000..9c7e9e45b --- /dev/null +++ b/application/models/codex/Bisstandort_model.php @@ -0,0 +1,14 @@ +dbTable = 'bis.tbl_bisstandort'; + $this->pk = 'standort_code'; + } +} diff --git a/application/views/Studentenverwaltung.php b/application/views/Studentenverwaltung.php index 2d0d22346..c8d9dc3f7 100644 --- a/application/views/Studentenverwaltung.php +++ b/application/views/Studentenverwaltung.php @@ -34,8 +34,10 @@ !defined('GENERATE_ALIAS_STUDENT') ? true : GENERATE_ALIAS_STUDENT, - 'showZgvDoktor' => !defined('ZGV_DOKTOR_ANZEIGEN') ? false : ZGV_DOKTOR_ANZEIGEN, - 'showZgvErfuellt' => !defined('ZGV_ERFUELLT_ANZEIGEN') ? false : ZGV_ERFUELLT_ANZEIGEN + + //replaced by possibility to hide each formular field via config stv.php + #'showZgvDoktor' => !defined('ZGV_DOKTOR_ANZEIGEN') ? false : ZGV_DOKTOR_ANZEIGEN, + #'showZgvErfuellt' => !defined('ZGV_ERFUELLT_ANZEIGEN') ? false : ZGV_ERFUELLT_ANZEIGEN ]; ?> diff --git a/public/js/api/notiz/person.js b/public/js/api/notiz/person.js index de351b68b..04812eacc 100644 --- a/public/js/api/notiz/person.js +++ b/public/js/api/notiz/person.js @@ -5,8 +5,8 @@ export default { getUid(){ return this.$fhcApi.get('api/frontend/v1/notiz/notizPerson/getUid/'); }, - addNewNotiz(id, formData) { - return this.$fhcApi.post('api/frontend/v1/notiz/notizPerson/addNewNotiz/' + id, + addNewNotiz(form, id, formData) { + return this.$fhcApi.post(form,'api/frontend/v1/notiz/notizPerson/addNewNotiz/' + id, formData ); }, @@ -27,8 +27,8 @@ export default { id }); }, - updateNotiz(notiz_id, formData){ - return this.$fhcApi.post('api/frontend/v1/notiz/notizPerson/updateNotiz/' + notiz_id, + updateNotiz(form, notiz_id, formData){ + return this.$fhcApi.post(form,'api/frontend/v1/notiz/notizPerson/updateNotiz/' + notiz_id, formData ); }, diff --git a/public/js/api/stv.js b/public/js/api/stv.js index 14fcc6661..b66ae401e 100644 --- a/public/js/api/stv.js +++ b/public/js/api/stv.js @@ -2,12 +2,20 @@ import verband from './stv/verband.js'; import students from './stv/students.js'; import filter from './stv/filter.js'; import konto from './stv/konto.js'; +import kontakt from './stv/kontakt.js'; +import prestudent from './stv/prestudent.js'; +import status from './stv/status.js'; +import details from './stv/details.js'; export default { verband, students, filter, konto, + kontakt, + prestudent, + status, + details, configStudent() { return this.$fhcApi.get('api/frontend/v1/stv/config/student'); }, diff --git a/public/js/api/stv/details.js b/public/js/api/stv/details.js new file mode 100644 index 000000000..bdf26739b --- /dev/null +++ b/public/js/api/stv/details.js @@ -0,0 +1,10 @@ +export default { + get(prestudent_id) { + return this.$fhcApi.post('api/frontend/v1/stv/student/get/' + prestudent_id); + }, + save(prestudent_id, data) { + return this.$fhcApi.post('api/frontend/v1/stv/student/save/' + prestudent_id, + data + ); + }, +} diff --git a/public/js/api/stv/kontakt.js b/public/js/api/stv/kontakt.js new file mode 100644 index 000000000..f76c9b5cb --- /dev/null +++ b/public/js/api/stv/kontakt.js @@ -0,0 +1,82 @@ +export default { + //------------- address.js----------- + getAdressen (url, config, params){ + return this.$fhcApi.get('api/frontend/v1/stv/kontakt/getAdressen/' + params.id); + }, + addNewAddress(id, data) { + return this.$fhcApi.post('api/frontend/v1/stv/kontakt/addNewAddress/' + id, + data + ); + }, + loadAddress(address_id){ + return this.$fhcApi.post('api/frontend/v1/stv/kontakt/loadAddress/', {address_id}); + }, + updateAddress(address_id, data) { + return this.$fhcApi.post('api/frontend/v1/stv/kontakt/updateAddress/' + address_id, + data + ); + }, + deleteAddress(address_id) { + return this.$fhcApi.post('api/frontend/v1/stv/kontakt/deleteAddress/', {address_id}); + }, + getPlaces(plz) { + return this.$fhcApi.get('api/frontend/v1/stv/address/getPlaces/' + plz); + }, + getFirmen(searchString) { + return this.$fhcApi.get('api/frontend/v1/stv/kontakt/getFirmen/' + searchString); + }, + getNations() { + return this.$fhcApi.get('api/frontend/v1/stv/address/getNations/'); + }, + getAdressentypen() { + return this.$fhcApi.get('api/frontend/v1/stv/kontakt/getAdressentypen/'); + }, + + //------------- bankverbindung.js----------- + getBankverbindung (url, config, params){ + return this.$fhcApi.get('api/frontend/v1/stv/kontakt/getBankverbindung/' + params.id); + }, + addNewBankverbindung(id, data) { + return this.$fhcApi.post('api/frontend/v1/stv/kontakt/addNewBankverbindung/' + id, + data + ); + }, + loadBankverbindung(bankverbindung_id){ + return this.$fhcApi.post('api/frontend/v1/stv/kontakt/loadBankverbindung/', {bankverbindung_id}); + }, + updateBankverbindung(bankverbindung_id, data) { + return this.$fhcApi.post('api/frontend/v1/stv/kontakt/updateBankverbindung/' + bankverbindung_id, + data + ); + }, + deleteBankverbindung(bankverbindung_id) { + return this.$fhcApi.post('api/frontend/v1/stv/kontakt/deleteBankverbindung/', {bankverbindung_id}); + }, + + //------------- contact.js----------- + getKontakte (url, config, params){ + return this.$fhcApi.get('api/frontend/v1/stv/kontakt/getKontakte/' + params.id); + }, + addNewContact(id, data) { + return this.$fhcApi.post('api/frontend/v1/stv/kontakt/addNewContact/' + id, + data + ); + }, + loadContact(kontakt_id){ + return this.$fhcApi.post('api/frontend/v1/stv/kontakt/loadContact/', {kontakt_id}); + }, + updateContact(kontakt_id, data) { + return this.$fhcApi.post('api/frontend/v1/stv/kontakt/updateContact/' + kontakt_id, + data + ); + }, + deleteContact(kontakt_id) { + return this.$fhcApi.post('api/frontend/v1/stv/kontakt/deleteContact/', {kontakt_id}); + }, + getStandorteByFirma(searchString){ + return this.$fhcApi.get('api/frontend/v1/stv/kontakt/getStandorteByFirma/' + searchString); + }, + getKontakttypen(){ + return this.$fhcApi.get('api/frontend/v1/stv/kontakt/getKontakttypen/'); + } +}; \ No newline at end of file diff --git a/public/js/api/stv/prestudent.js b/public/js/api/stv/prestudent.js new file mode 100644 index 000000000..b58f8eda1 --- /dev/null +++ b/public/js/api/stv/prestudent.js @@ -0,0 +1,84 @@ +export default { + +//------------- Prestudent.js------------------------------------------------------ + + get(prestudent_id){ + return this.$fhcApi.post('api/frontend/v1/stv/prestudent/get/' + prestudent_id); + }, + updatePrestudent(prestudent_id, data){ + return this.$fhcApi.post('api/frontend/v1/stv/prestudent/updatePrestudent/' + prestudent_id, + data + ); + }, + getBezeichnungZGV() { + return this.$fhcApi.get('api/frontend/v1/stv/prestudent/getBezeichnungZGV/'); + }, + getBezeichnungMZgv() { + return this.$fhcApi.get('api/frontend/v1/stv/prestudent/getBezeichnungMZgv/'); + }, + getBezeichnungDZgv() { + return this.$fhcApi.get('api/frontend/v1/stv/prestudent/getBezeichnungDZgv/'); + }, + getStgs() { + return this.$fhcApi.get('api/frontend/v1/stv/lists/getStgs/'); + }, + getAusbildung() { + return this.$fhcApi.get('api/frontend/v1/stv/prestudent/getAusbildung/'); + }, + getAufmerksamdurch() { + return this.$fhcApi.get('api/frontend/v1/stv/prestudent/getAufmerksamdurch/'); + }, + getBerufstaetigkeit() { + return this.$fhcApi.get('api/frontend/v1/stv/prestudent/getBerufstaetigkeit/'); + }, + getTypenStg() { + return this.$fhcApi.get('api/frontend/v1/stv/prestudent/getTypenStg/'); + }, + getBisstandort() { + return this.$fhcApi.get('api/frontend/v1/stv/prestudent/getBisstandort/'); + }, + +//------------- MultiStatus.js------------------------------------------------------ + getHistoryPrestudent (url, config, params){ + return this.$fhcApi.get('api/frontend/v1/stv/status/getHistoryPrestudent/' + params.id); + }, + getMaxSem(studiengang_kzs) { + return this.$fhcApi.post('api/frontend/v1/stv/status/getMaxSemester/', {studiengang_kzs}); + }, + advanceStatus({prestudent_id, status_kurzbz, studiensemester_kurzbz, ausbildungssemester}) { + return this.$fhcApi.post('api/frontend/v1/stv/status/advanceStatus/' + + prestudent_id + '/' + + status_kurzbz + '/' + + studiensemester_kurzbz + '/' + + ausbildungssemester + ); + }, + confirmStatus({prestudent_id, status_kurzbz, studiensemester_kurzbz, ausbildungssemester}) { + return this.$fhcApi.post('api/frontend/v1/stv/status/confirmStatus/' + + prestudent_id + '/' + + status_kurzbz + '/' + + studiensemester_kurzbz + '/' + + ausbildungssemester + ); + }, + isLastStatus(id) { + return this.$fhcApi.get('api/frontend/v1/stv/status/isLastStatus/' + id); + }, + deleteStatus({prestudent_id, status_kurzbz, studiensemester_kurzbz, ausbildungssemester}) { + return this.$fhcApi.post('api/frontend/v1/stv/status/deleteStatus/' + + prestudent_id + '/' + + status_kurzbz + '/' + + studiensemester_kurzbz + '/' + + ausbildungssemester + ); + }, + getLastBismeldestichtag() { + return this.$fhcApi.get('api/frontend/v1/stv/status/getLastBismeldestichtag/'); + }, + +//------------- History.js------------------------------------------------------ + getHistoryPrestudents (url, config, params){ + return this.$fhcApi.get('api/frontend/v1/stv/prestudent/getHistoryPrestudents/' + params.id); + }, + +} \ No newline at end of file diff --git a/public/js/api/stv/status.js b/public/js/api/stv/status.js new file mode 100644 index 000000000..a2a143f65 --- /dev/null +++ b/public/js/api/stv/status.js @@ -0,0 +1,59 @@ +export default { + +//------------- Modal.js------------------------------------------------------ + + insertStatus(id, data) { + return this.$fhcApi.post('api/frontend/v1/stv/status/insertStatus/' + id, + data + ); + }, + loadStatus({prestudent_id, status_kurzbz, studiensemester_kurzbz, ausbildungssemester}) { + return this.$fhcApi.post( + 'api/frontend/v1/stv/status/loadStatus/' + + prestudent_id + '/' + + status_kurzbz + '/' + + studiensemester_kurzbz + '/' + + ausbildungssemester + ); + }, + updateStatus({prestudent_id, status_kurzbz, studiensemester_kurzbz, ausbildungssemester}, data) { + return this.$fhcApi.post( + 'api/frontend/v1/stv/status/updateStatus/' + + prestudent_id + '/' + + status_kurzbz + '/' + + studiensemester_kurzbz + '/' + + ausbildungssemester, + data + ); + }, + getStudienplaene(prestudent_id) { + return this.$fhcApi.get('api/frontend/v1/stv/prestudent/getStudienplaene/' + prestudent_id); + }, + getStudiengang(prestudent_id) { + return this.$fhcApi.get('api/frontend/v1/stv/prestudent/getStudiengang/' + prestudent_id); + }, + getStatusgruende() { + return this.$fhcApi.get('api/frontend/v1/stv/status/getStatusgruende/'); + }, + getStati() { + return this.$fhcApi.get('api/frontend/v1/stv/lists/getStati/'); + }, + +//------------- Dropdown.js------------------------------------------------------ + + addStudent(id, data) { + return this.$fhcApi.post('api/frontend/v1/stv/status/addStudent/' + id, + data, + {errorHeader: id} + ); + }, + changeStatus(id, data) { + return this.$fhcApi.post('api/frontend/v1/stv/status/changeStatus/' + id, + data, + {errorHeader: id} + ); + }, + getStatusarray() { + return this.$fhcApi.get('api/frontend/v1/stv/status/getStatusarray/'); + } +} \ No newline at end of file diff --git a/public/js/components/Betriebsmittel/Betriebsmittel.js b/public/js/components/Betriebsmittel/Betriebsmittel.js index a3acb6673..6e91df0fb 100644 --- a/public/js/components/Betriebsmittel/Betriebsmittel.js +++ b/public/js/components/Betriebsmittel/Betriebsmittel.js @@ -66,7 +66,7 @@ export default { let button = document.createElement('button'); button.className = 'btn btn-outline-secondary btn-action'; button.innerHTML = ''; - button.title = 'Übernahmebestätigung drucken'; + button.title = this.$p.t('betriebsmittel', 'btn_printUebernahmebestaetigung'); let cellData = cell.getData(); button.addEventListener( 'click', @@ -82,7 +82,7 @@ export default { button = document.createElement('button'); button.className = 'btn btn-outline-secondary btn-action'; button.innerHTML = ''; - button.title = 'Betriebsmittel bearbeiten'; + button.title = this.$p.t('betriebsmittel', 'btn_editBetriebsmittel'); button.addEventListener( 'click', (event) => @@ -93,7 +93,7 @@ export default { button = document.createElement('button'); button.className = 'btn btn-outline-secondary btn-action'; button.innerHTML = ''; - button.title = 'Betriebsmittel löschen'; + button.title = this.$p.t('betriebsmittel', 'btn_deleteBetriebsmittel'); button.addEventListener( 'click', () => @@ -117,26 +117,43 @@ export default { event: 'tableBuilt', handler: async() => { - await this.$p.loadCategory(['wawi', 'global', 'infocenter']); + await this.$p.loadCategory(['wawi', 'global', 'infocenter', 'betriebsmittel', 'person']); let cm = this.$refs.table.tabulator.columnManager; cm.getColumnByField('nummer').component.updateDefinition({ title: this.$p.t('wawi', 'nummer') }); + cm.getColumnByField('betriebsmitteltyp').component.updateDefinition({ + title: this.$p.t('global', 'typ') + }); cm.getColumnByField('anmerkung').component.updateDefinition({ title: this.$p.t('global', 'anmerkung') }); cm.getColumnByField('format_retour').component.updateDefinition({ title: this.$p.t('wawi', 'retourdatum') }); + cm.getColumnByField('beschreibung').component.updateDefinition({ + title: this.$p.t('global', 'beschreibung') + }); cm.getColumnByField('kaution').component.updateDefinition({ title: this.$p.t('infocenter', 'kaution') }); cm.getColumnByField('format_ausgabe').component.updateDefinition({ title: this.$p.t('wawi', 'ausgabedatum') }); - + cm.getColumnByField('betriebsmittel_id').component.updateDefinition({ + title: this.$p.t('ui', 'betriebsmittel_id') + }); + cm.getColumnByField('betriebsmittelperson_id').component.updateDefinition({ + title: this.$p.t('ui', 'betriebsmittelperson_id') + }); + cm.getColumnByField('person_id').component.updateDefinition({ + title: this.$p.t('person', 'person_id') + }); + cm.getColumnByField('uid').component.updateDefinition({ + title: this.$p.t('person', 'uid') + }); } } ], @@ -261,7 +278,7 @@ export default { :side-menu="false" reload new-btn-show - new-btn-label="Betriebsmittel" + :new-btn-label="this.$p.t('ui', 'betriebsmittel')" @click:new="actionNewBetriebsmittel" > @@ -278,7 +295,7 @@ export default {
{ - await this.$p.loadCategory(['notiz', 'global']); + await this.$p.loadCategory(['notiz', 'global', 'ui']); let cm = this.$refs.table.tabulator.columnManager; @@ -202,18 +204,24 @@ export default { visible: this.showVariables.showLastupdate }); cm.getColumnByField('notiz_id').component.updateDefinition({ - visible: this.showVariables.showNotiz_id + visible: this.showVariables.showNotiz_id, + title: this.$p.t('ui', 'notiz_id') }); cm.getColumnByField('notizzuordnung_id').component.updateDefinition({ - visible: this.showVariables.showNotizzuordnung_id + visible: this.showVariables.showNotizzuordnung_id, + title: this.$p.t('ui', 'notizzuordnung_id') }); cm.getColumnByField('type_id').component.updateDefinition({ - visible: this.showVariables.showType_id + visible: this.showVariables.showType_id, + title: this.$p.t('ui', 'type_id') }); cm.getColumnByField('id').component.updateDefinition({ - visible: this.showVariables.showId + visible: this.showVariables.showId, + title: this.$p.t('ui', 'extension_id') + }); + cm.getColumnByField('actions').component.updateDefinition({ + title: this.$p.t('global', 'aktionen') }); - } } ], @@ -257,9 +265,15 @@ export default { }, methods: { actionDeleteNotiz(notiz_id) { - this.loadNotiz(notiz_id).then(() => { - this.$refs.deleteNotizModal.show(); - }); + this.loadNotiz(notiz_id); + + this.$fhcAlert + .confirmDelete() + .then(result => result + ? notiz_id + : Promise.reject({handled: true})) + .then(this.deleteNotiz) + .catch(this.$fhcAlert.handleSystemError); }, actionEditNotiz(notiz_id) { this.loadNotiz(notiz_id).then(() => { @@ -302,7 +316,9 @@ export default { formData.append('data', JSON.stringify(this.notizData)); Object.entries(this.notizData.anhang).forEach(([k, v]) => formData.append(k, v)); - return this.endpoint.addNewNotiz(this.id, formData) + this.$refs.formNotiz.clearValidation(); + + return this.endpoint.addNewNotiz(this.$refs.formNotiz, this.id, formData) .then(response => { this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave')); this.resetFormData(); @@ -318,10 +334,8 @@ export default { }, deleteNotiz(notiz_id) { return this.endpoint.deleteNotiz(notiz_id, this.typeId, this.id) - //return this.$fhcApi.post(this.endpoint + 'deleteNotiz/', this.param) .then(result => { this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successDelete')); - this.$refs.deleteNotizModal.hide(); this.reload(); this.resetFormData(); }) @@ -354,7 +368,8 @@ export default { formData.append('data', JSON.stringify(this.notizData)); Object.entries(this.notizData.anhang).forEach(([k, v]) => formData.append(k, v)); - return this.endpoint.updateNotiz(notiz_id, formData) + this.$refs.formNotiz.clearValidation(); + return this.endpoint.updateNotiz(this.$refs.formNotiz, notiz_id, formData) .then(response => { this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave')); this.resetFormData(); @@ -372,7 +387,9 @@ export default { this.$refs.table.reloadTable(); }, resetFormData() { - this.$refs.formc.reset(); + //TODO(Manu) check ref, needed here? + //this.$refs.formNotiz.reset(); + //this.$refs.formc.reset(); this.notizData = { typeId: this.typeId, titel: null, @@ -405,7 +422,7 @@ export default { const vm = this; tinymce.init({ - target: this.$refs.editor, //Important: not selector: to enable multiple import of component + target: this.$refs.editor.$refs.input, //Important: not selector: to enable multiple import of component //height: 800, //plugins: ['lists'], //toolbar: " blocks | bold italic underline | alignleft aligncenter alignright alignjustify", @@ -493,19 +510,9 @@ export default { }, template: `
+
- - - - - - - +
-
+

@@ -538,28 +545,41 @@ export default {
- -
- -
+ +
-
- - +
-
- -
-
- + > +
@@ -645,22 +665,10 @@ export default { - +
- - - - - - -
@@ -673,19 +681,14 @@ export default { :side-menu="false" reload new-btn-show - new-btn-label="Notiz" + :new-btn-label="this.$p.t('global', 'notiz')" @click:new="actionNewNotiz" >
- - -
+

{{$p.t('notiz','notiz_new')}} [{{notizData.typeId}}]

{{$p.t('notiz','notiz_edit')}} [{{notizData.typeId}}]

@@ -710,20 +713,29 @@ export default {
- - + > +
- - + +
@@ -828,12 +840,6 @@ export default { >
-
@@ -843,27 +849,16 @@ export default {

{{notizData.lastupdate}}

- +
- - - - - -
-
+

{{$p.t('notiz','notiz_new')}} [{{notizData.typeId}}]

{{$p.t('notiz','notiz_edit')}} [{{notizData.typeId}}]

@@ -883,19 +878,29 @@ export default {
- - + +
- - + +
@@ -1001,12 +1006,6 @@ export default { >
-
@@ -1021,7 +1020,7 @@ export default {
- +
@@ -1034,7 +1033,7 @@ export default { :side-menu="false" reload new-btn-show - new-btn-label="Notiz" + :new-btn-label="this.$p.t('global', 'notiz')" @click:new="actionNewNotiz" > @@ -1043,17 +1042,6 @@ export default {
- - - - - - @@ -1223,7 +1221,7 @@ export default { :side-menu="false" reload new-btn-show - new-btn-label="Notiz" + :new-btn-label="this.$p.t('global', 'notiz')" @click:new="actionNewNotiz" > diff --git a/public/js/components/Stv/Studentenverwaltung.js b/public/js/components/Stv/Studentenverwaltung.js index 8779e4bf1..202f80181 100644 --- a/public/js/components/Stv/Studentenverwaltung.js +++ b/public/js/components/Stv/Studentenverwaltung.js @@ -45,8 +45,6 @@ export default { cisRoot: this.cisRoot, activeAddonBewerbung: this.activeAddons.split(';').includes('bewerbung'), configGenerateAlias: this.config.generateAlias, - configShowZgvDoktor: this.config.showZgvDoktor, - configShowZgvErfuellt: this.config.showZgvErfuellt, hasBpkPermission: this.permissions['student/bpk'], hasAliasPermission: this.permissions['student/alias'], hasPrestudentPermission: this.permissions['basis/prestudent'], diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Details.js b/public/js/components/Stv/Studentenverwaltung/Details/Details.js index ae4f92b20..39e674ff4 100644 --- a/public/js/components/Stv/Studentenverwaltung/Details/Details.js +++ b/public/js/components/Stv/Studentenverwaltung/Details/Details.js @@ -37,25 +37,17 @@ export default { } }, props: { - modelValue: Object + modelValue: Object, + config: { + type: Object, + default: {} + } }, data() { return { - test: {udf_viaf: 'TEST'}, - familienstaende: { - "": "--keine Auswahl--", - "g": "geschieden", - "l": "ledig", - "v": "verheiratet", - "w": "verwitwet" - }, original: null, data: null, - changed: {}, - udfChanges: false, - studentIn: null, - gebDatumIsValid: false, - gebDatumIsInvalid: false + changed: {} } }, computed: { @@ -67,6 +59,15 @@ export default { }, noImageSrc() { return FHC_JS_DATA_STORAGE_OBJECT.app_root + 'skin/images/profilbild_dummy.jpg'; + }, + familienstaende() { + return { + "": "-- " + this.$p.t('fehlermonitoring', 'keineAuswahl') + " --", + "g": this.$p.t('person', 'geschieden'), + "l": this.$p.t('person', 'ledig'), + "v": this.$p.t('person', 'verheiratet'), + "w": this.$p.t('person', 'verwitwet'), + }; } }, watch: { @@ -74,7 +75,6 @@ export default { this.updateStudent(n); }, data: { - // TODO(chris): use @input instead? handler(n) { let res = {}; for (var k in this.original) { @@ -82,7 +82,6 @@ export default { if (new Date(this.original[k]).toString() != new Date(n[k]).toString()) res[k] = n[k]; } else { - // TODO(chris): null && ""? should there be an exception for this? if (this.original[k] !== n[k] && !(this.original[k] === null && n[k] === "")) res[k] = n[k]; } @@ -94,9 +93,7 @@ export default { }, methods: { updateStudent(n) { - // TODO(chris): move to fhcapi.factory - this.$fhcApi - .get('api/frontend/v1/stv/student/get/' + n.prestudent_id) + return this.$fhcApi.factory.stv.details.get(n.prestudent_id) .then(result => { this.data = result.data; if (!this.data.familienstand) @@ -110,14 +107,13 @@ export default { return; this.$refs.form.clearValidation(); - this.$refs.form - .post('api/frontend/v1/stv/student/save/' + this.modelValue.prestudent_id, this.changed) + return this.$fhcApi.factory.stv.details.save(this.modelValue.prestudent_id, this.changed) .then(result => { this.original = {...this.data}; this.changed = {}; this.$refs.form.setFeedback(true, result.data); }) - .catch(this.$fhcAlert.handleSystemError) + .catch(this.$fhcAlert.handleSystemError); }, udfsLoaded(udfs) { this.original = {...(this.original || {}), ...udfs}; @@ -129,28 +125,27 @@ export default { created() { this.updateStudent(this.modelValue); }, - //TODO(chris): Phrasen - //TODO(chris): Geburtszeit? Anzahl der Kinder? template: `
- +
Person
- Loading... + {{$p.t('ui', 'dropdownLoading')}}...
- + +
- StudentIn + {{$p.t('person', 'studentIn')}}
- Loading... + {{$p.t('ui', 'dropdownLoading')}}...
` diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Kontakt/Address.js b/public/js/components/Stv/Studentenverwaltung/Details/Kontakt/Address.js index c6bd07be4..4f9b5be69 100644 --- a/public/js/components/Stv/Studentenverwaltung/Details/Kontakt/Address.js +++ b/public/js/components/Stv/Studentenverwaltung/Details/Kontakt/Address.js @@ -18,10 +18,15 @@ export default{ uid: Number }, data() { - return{ + return { tabulatorOptions: { - ajaxURL: 'api/frontend/v1/stv/kontakt/getAdressen/' + this.uid, - ajaxRequestFunc: this.$fhcApi.get, + ajaxURL: 'dummy', + ajaxRequestFunc: this.$fhcApi.factory.stv.kontakt.getAdressen, + ajaxParams: () => { + return { + id: this.uid + }; + }, ajaxResponse: (url, params, response) => response.data, //autoColumns: true, columns:[ @@ -57,10 +62,10 @@ export default{ {title:"Adresse_id", field:"adresse_id", visible:false}, {title:"Person_id", field:"person_id", visible:false}, {title:"Name", field:"name", visible:false}, - {title:"letzte Änderung", field:"updateamum", visible:false}, + {title:"letzte Änderung", field:"lastupdate", visible:false}, {title:"Rechnungsadresse", field:"rechnungsadresse", visible:false, formatter: (cell, formatterParams, onRendered) => { - let output = cell.getValue() ? "ja" : "nein"; + let output = cell.getValue() ? this.$p.t('ui','ja') : this.$p.t('ui','nein'); return output; } }, @@ -74,6 +79,7 @@ export default{ let button = document.createElement('button'); button.className = 'btn btn-outline-secondary btn-action'; button.innerHTML = ''; + button.title = this.$p.t('person', 'adresse_edit'); button.addEventListener('click', (event) => this.actionEditAdress(cell.getData().adresse_id) ); @@ -82,9 +88,15 @@ export default{ button = document.createElement('button'); button.className = 'btn btn-outline-secondary btn-action'; button.innerHTML = ''; - button.addEventListener('click', () => - this.actionDeleteAdress(cell.getData().adresse_id) - ); + button.title = this.$p.t('person', 'adresse_delete'); + + button.addEventListener('click', () => { + if (cell.getData().heimatadresse) + this.$fhcAlert.alertError(this.$p.t('person', 'error_deleteHomeAdress')); + else + this.actionDeleteAdress(cell.getData().adresse_id) + }); + container.append(button); return container; @@ -103,7 +115,7 @@ export default{ { event: 'tableBuilt', handler: async () => { - await this.$p.loadCategory(['notiz','global','person', 'ui']); + await this.$p.loadCategory(['notiz', 'global', 'person', 'ui']); let cm = this.$refs.table.tabulator.columnManager; cm.getColumnByField('bezeichnung').component.updateDefinition({ @@ -127,6 +139,9 @@ export default{ cm.getColumnByField('heimatadresse').component.updateDefinition({ title: this.$p.t('person', 'heimatadresse') }); + cm.getColumnByField('zustelladresse').component.updateDefinition({ + title: this.$p.t('person', 'zustelladresse') + }); cm.getColumnByField('co_name').component.updateDefinition({ title: this.$p.t('person', 'co_name') }); @@ -136,7 +151,7 @@ export default{ cm.getColumnByField('firmenname').component.updateDefinition({ title: this.$p.t('person', 'firma') }); - cm.getColumnByField('updateamum').component.updateDefinition({ + cm.getColumnByField('lastupdate').component.updateDefinition({ title: this.$p.t('notiz', 'letzte_aenderung') }); cm.getColumnByField('rechnungsadresse').component.updateDefinition({ @@ -145,6 +160,18 @@ export default{ cm.getColumnByField('anmerkung').component.updateDefinition({ title: this.$p.t('global', 'anmerkung') }); + cm.getColumnByField('firma_id').component.updateDefinition({ + title: this.$p.t('ui', 'firma_id') + }); + cm.getColumnByField('adresse_id').component.updateDefinition({ + title: this.$p.t('ui', 'adresse_id') + }); + cm.getColumnByField('person_id').component.updateDefinition({ + title: this.$p.t('person', 'person_id') + }); +/* cm.getColumnByField('actions').component.updateDefinition({ + title: this.$p.t('global', 'aktionen') + });*/ } } ], @@ -153,7 +180,9 @@ export default{ heimatadresse: true, rechnungsadresse: false, typ: 'h', - nation: 'A' + nation: 'A', + address: {plz: null}, + plz: null }, statusNew: true, places: [], @@ -164,8 +193,9 @@ export default{ filteredFirmen: [], abortController: { suggestions: null, - places: null - } + places: null, + firmen: null + }, } }, computed:{ @@ -189,60 +219,59 @@ export default{ this.resetModal(); this.$refs.adressModal.show(); }, - actionEditAdress(adress_id) { + actionEditAdress(adresse_id) { this.statusNew = false; - this.loadAdress(adress_id).then(() => { + this.loadAdress(adresse_id).then(() => { if(this.addressData.adresse_id) { - this.loadPlaces(this.addressData.plz); + this.addressData.address.plz = this.addressData.plz; + // delete this.addressData.plz; + this.loadPlaces(this.addressData.address.plz); this.$refs.adressModal.show(); } }); }, - actionDeleteAdress(adress_id) { - this.loadAdress(adress_id).then(() => { - if(this.addressData.adresse_id) - if(this.addressData.heimatadresse) - this.$fhcAlert.alertError(this.$p.t('person', 'error_deleteHomeAdress')); - else { - this.$fhcAlert - .confirmDelete() - .then(result => result - ? adress_id - : Promise.reject({handled: true})) - .then(this.deleteAddress) - .catch(this.$fhcAlert.handleSystemError); - } - }); + actionDeleteAdress(adresse_id) { + this.$fhcAlert + .confirmDelete() + .then(result => result + ? adresse_id + : Promise.reject({handled: true})) + .then(this.deleteAddress) + .catch(this.$fhcAlert.handleSystemError); }, addNewAddress(addressData) { - this.$fhcApi.post('api/frontend/v1/stv/kontakt/addNewAddress/' + this.uid, - this.addressData - ).then(response => { + this.addressData.plz = this.addressData.address.plz; + return this.$refs.addressData.factory.stv.kontakt.addNewAddress(this.uid, this.addressData) + .then(response => { this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave')); this.hideModal('adressModal'); this.resetModal(); }).catch(this.$fhcAlert.handleSystemError) .finally(() => { - window.scrollTo(0, 0); + //window.scrollTo(0, 0); this.reload(); }); }, reload() { this.$refs.table.reloadTable(); }, - loadAdress(adress_id) { + loadAdress(adresse_id) { this.statusNew = false; - return this.$fhcApi.get('api/frontend/v1/stv/kontakt/loadAddress/' + adress_id) + return this.$fhcApi.factory.stv.kontakt.loadAddress(adresse_id) .then(result => { - this.addressData = result.data; - return result; + this.addressData = result.data; + this.addressData.address = {}; + this.addressData.address.plz = this.addressData.plz || null; + // delete this.addressData.plz; + return result; }) .catch(this.$fhcAlert.handleSystemError); }, - updateAddress(adress_id) { - this.$fhcApi.post('api/frontend/v1/stv/kontakt/updateAddress/' + adress_id, + updateAddress(adresse_id) { + this.addressData.plz = this.addressData.address.plz; + return this.$refs.addressData.factory.stv.kontakt.updateAddress(adresse_id, this.addressData ).then(response => { this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave')); @@ -250,12 +279,12 @@ export default{ this.resetModal(); }).catch(this.$fhcAlert.handleSystemError) .finally(() => { - window.scrollTo(0, 0); + //window.scrollTo(0, 0); this.reload(); }); }, - deleteAddress(adress_id) { - this.$fhcApi.post('api/frontend/v1/stv/kontakt/deleteAddress/' + adress_id) + deleteAddress(adresse_id) { + return this.$fhcApi.factory.stv.kontakt.deleteAddress(adresse_id) .then(response => { this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successDelete')); }).catch(this.$fhcAlert.handleSystemError) @@ -267,27 +296,24 @@ export default{ loadPlaces() { if (this.abortController.places) this.abortController.places.abort(); - if (this.addressData.nation != 'A' || !this.addressData.plz) + if (this.addressData.nation != 'A' || !this.addressData.address.plz) return; this.abortController.places = new AbortController(); - this.$fhcApi - .get('api/frontend/v1/stv/address/getPlaces/' + this.addressData.plz, undefined, { - signal: this.abortController.places.signal - }) + + return this.$refs.addressData.factory.stv.kontakt.getPlaces(this.addressData.address.plz) .then(result => { this.places = result.data; }); -/* .catch(error => { - if (error.code != "ERR_CANCELED") - window.setTimeout(this.loadPlaces, 100); - else - this.$fhcAlert.handleSystemError(error); - });*/ }, search(event) { - return this.$fhcApi - .get('api/frontend/v1/stv/kontakt/getFirmen/' + event.query) + if (this.abortController.firmen) { + this.abortController.firmen.abort(); + } + + this.abortController.firmen = new AbortController(); + + return this.$refs.addressData.factory.stv.kontakt.getFirmen(event.query) .then(result => { this.filteredFirmen = result.data.retval; }); @@ -308,24 +334,23 @@ export default{ this.addressData.anmerkung = null; this.addressData.typ = 'h'; this.addressData.nation = 'A'; - this.addressData.plz = null; + this.addressData.address = {plz: null}; this.statusNew = true; }, }, created() { - this.$fhcApi - .get('api/frontend/v1/stv/address/getNations') + this.$fhcApi.factory.stv.kontakt.getNations() .then(result => { this.nations = result.data; }) .catch(this.$fhcAlert.handleSystemError); - this.$fhcApi - .get('api/frontend/v1/stv/kontakt/getAdressentypen') + + this.$fhcApi.factory.stv.kontakt.getAdressentypen() .then(result => { this.adressentypen = result.data; }) - .catch(this.$fhcAlert.handleSystemError) + .catch(this.$fhcAlert.handleSystemError); }, template: `
@@ -386,9 +411,9 @@ export default{
@@ -416,6 +441,7 @@ export default{ v-else type="text" name="addressData.gemeinde" + :label="$p.t('person/gemeinde')" v-model="addressData.gemeinde" > @@ -442,6 +468,7 @@ export default{ v-else type="text" name="ort" + :label="$p.t('person/ort')" v-model="addressData.ort" > @@ -560,7 +587,7 @@ export default{ @@ -574,7 +601,7 @@ export default{ :side-menu="false" reload new-btn-show - new-btn-label="Adresse" + :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 7eb1229f7..41c6cb58e 100644 --- a/public/js/components/Stv/Studentenverwaltung/Details/Kontakt/Bankaccount.js +++ b/public/js/components/Stv/Studentenverwaltung/Details/Kontakt/Bankaccount.js @@ -16,8 +16,13 @@ export default{ data() { return{ tabulatorOptions: { - ajaxURL: 'api/frontend/v1/stv/Kontakt/getBankverbindung/' + this.uid, - ajaxRequestFunc: this.$fhcApi.get, + ajaxURL: 'dummy', + ajaxRequestFunc: this.$fhcApi.factory.stv.kontakt.getBankverbindung, + ajaxParams: () => { + return { + id: this.uid + }; + }, ajaxResponse: (url, params, response) => response.data, columns:[ {title:"Name", field:"name"}, @@ -31,10 +36,10 @@ export default{ let output; switch(cell.getValue()){ case "p": - output = "Privatkonto"; + output = this.$p.t('person', 'privatkonto'); break; case "f": - output = "Firmenkonto"; + output = this.$p.t('person', 'firmenkonto'); break; default: output = cell.getValue(); @@ -63,6 +68,7 @@ export default{ let button = document.createElement('button'); button.className = 'btn btn-outline-secondary btn-action'; button.innerHTML = ''; + button.title = this.$p.t('person', 'bankvb_edit'); button.addEventListener('click', (event) => this.actionEditBankverbindung(cell.getData().bankverbindung_id) ); @@ -71,6 +77,7 @@ export default{ button = document.createElement('button'); button.className = 'btn btn-outline-secondary btn-action'; button.innerHTML = ''; + button.title = this.$p.t('person', 'bankvb_delete'); button.addEventListener('click', () => this.actionDeleteBankverbindung(cell.getData().bankverbindung_id) ); @@ -96,6 +103,13 @@ export default{ let cm = this.$refs.table.tabulator.columnManager; + cm.getColumnByField('name').component.updateDefinition({ + title: this.$p.t('global', 'name') + }); + + cm.getColumnByField('typ').component.updateDefinition({ + title: this.$p.t('global', 'typ') + }); cm.getColumnByField('anschrift').component.updateDefinition({ title: this.$p.t('person', 'anschrift') }); @@ -105,12 +119,18 @@ export default{ cm.getColumnByField('blz').component.updateDefinition({ title: this.$p.t('person', 'blz') }); - cm.getColumnByField('typ').component.updateDefinition({ - title: this.$p.t('global', 'typ') - }); cm.getColumnByField('verrechnung').component.updateDefinition({ title: this.$p.t('person', 'verrechnung') }); + cm.getColumnByField('person_id').component.updateDefinition({ + title: this.$p.t('person', 'person_id') + }); + cm.getColumnByField('bankverbindung_id').component.updateDefinition({ + title: this.$p.t('ui', 'bankverbindung_id') + }); +/* cm.getColumnByField('actions').component.updateDefinition({ + title: this.$p.t('global', 'aktionen') + });*/ } } ], @@ -140,20 +160,17 @@ export default{ }); }, actionDeleteBankverbindung(bankverbindung_id){ - this.loadBankverbindung(bankverbindung_id).then(() => { - this.$fhcAlert - .confirmDelete() - .then(result => result - ? bankverbindung_id - : Promise.reject({handled: true})) - .then(this.deleteBankverbindung) - .catch(this.$fhcAlert.handleSystemError); - }); + this.$fhcAlert + .confirmDelete() + .then(result => result + ? bankverbindung_id + : Promise.reject({handled: true})) + .then(this.deleteBankverbindung) + .catch(this.$fhcAlert.handleSystemError); }, addNewBankverbindung(bankverbindungData) { - this.$fhcApi.post('api/frontend/v1/stv/kontakt/addNewBankverbindung/' + this.uid, - this.bankverbindungData - ).then(response => { + return this.$refs.bankverbindungData.factory.stv.kontakt.addNewBankverbindung(this.uid, this.bankverbindungData) + .then(response => { this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave')); this.hideModal('bankverbindungModal'); this.resetModal(); @@ -165,7 +182,7 @@ export default{ }, loadBankverbindung(bankverbindung_id){ this.statusNew = false; - return this.$fhcApi.get('api/frontend/v1/stv/kontakt/loadBankverbindung/' + bankverbindung_id) + return this.$fhcApi.factory.stv.kontakt.loadBankverbindung(bankverbindung_id) .then( result => { this.bankverbindungData = result.data; @@ -174,7 +191,7 @@ export default{ .catch(this.$fhcAlert.handleSystemError); }, updateBankverbindung(bankverbindung_id){ - this.$fhcApi.post('api/frontend/v1/stv/kontakt/updateBankverbindung/' + bankverbindung_id, + return this.$refs.bankverbindungData.factory.stv.kontakt.updateBankverbindung(bankverbindung_id, this.bankverbindungData) .then(response => { this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave')); @@ -187,7 +204,7 @@ export default{ }); }, deleteBankverbindung(bankverbindung_id){ - this.$fhcApi.post('api/frontend/v1/stv/kontakt/deleteBankverbindung/' + bankverbindung_id) + return this.$fhcApi.factory.stv.kontakt.deleteBankverbindung(bankverbindung_id) .then(response => { this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successDelete')); }).catch(this.$fhcAlert.handleSystemError) @@ -222,7 +239,7 @@ export default{
- + - +

diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index 746c24da3..d92657a29 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -24611,6 +24611,26 @@ array( ) ) ), + array( + 'app' => 'core', + 'category' => 'notiz', + 'phrase' => 'notiz_delete', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Notiz löschen', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Delete Note', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), array( 'app' => 'core', 'category' => 'notiz', @@ -33264,6 +33284,26 @@ array( ) ) ), + array( + 'app' => 'core', + 'category' => 'person', + 'phrase' => 'bankverbindung', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Bankverbindung', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'bank details', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), //Status array( 'app' => 'core', @@ -34385,6 +34425,87 @@ array( ) ) ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'btn_statusVorruecken', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Status vorrücken', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'advance status', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'btn_confirmStatus', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Status bestätigen', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'confirm status', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'btn_editStatus', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Status bearbeiten', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'edit status', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'btn_deleteStatus', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Status löschen', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'delete status', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + // Betriebsmittel begin array( 'app' => 'core', @@ -36574,6 +36695,67 @@ array( ) ) ), + array( + 'app' => 'core', + 'category' => 'betriebsmittel', + 'phrase' => 'btn_printUebernahmebestaetigung', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Übernahmebestätigung drucken', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Print acceptance confirmation', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'betriebsmittel', + 'phrase' => 'btn_editBetriebsmittel', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Betriebsmittel bearbeiten', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Edit Resource', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'betriebsmittel', + 'phrase' => 'btn_deleteBetriebsmittel', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Betriebsmittel löschen', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Delete Resource', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + // Betriebsmittel end array( 'app' => 'core', 'category' => 'uhstat', @@ -37297,7 +37479,569 @@ array( 'insertvon' => 'system' ) ) + ), +// FHC4 Phrases CleanUpTasks End +array( + 'app' => 'core', + 'category' => 'person', + 'phrase' => 'wahlname', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Wahlname', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'elective name', + 'description' => '', + 'insertvon' => 'system' + ) ) +), +array( + 'app' => 'core', + 'category' => 'person', + 'phrase' => 'familienstand', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Familienstand', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'marital status', + 'description' => '', + 'insertvon' => 'system' + ) + ) +), +array( + 'app' => 'core', + 'category' => 'person', + 'phrase' => 'foto', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Foto', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'photo', + 'description' => '', + 'insertvon' => 'system' + ) + ) +), +array( + 'app' => 'core', + 'category' => 'person', + 'phrase' => 'homepage', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Homepage', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'homepage', + 'description' => '', + 'insertvon' => 'system' + ) + ) +), +array( + 'app' => 'core', + 'category' => 'lehre', + 'phrase' => 'verband', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Verband', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'verband', + 'description' => '', + 'insertvon' => 'system' + ) + ) +), +array( + 'app' => 'core', + 'category' => 'person', + 'phrase' => 'aktiv', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Aktiv', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'active', + 'description' => '', + 'insertvon' => 'system' + ) + ) +), +array( + 'app' => 'core', + 'category' => 'lehre', + 'phrase' => 'error_no_person', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Keine Person gefunden', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'No Person found', + 'description' => '', + 'insertvon' => 'system' + ) + ) +), +array( + 'app' => 'core', + 'category' => 'lehre', + 'phrase' => 'error_no_student', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Kein/e Student/in gefunden', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'No Student found', + 'description' => '', + 'insertvon' => 'system' + ) + ) +), +array( + 'app' => 'core', + 'category' => 'person', + 'phrase' => 'geschieden', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'geschieden', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'divorced', + 'description' => '', + 'insertvon' => 'system' + ) + ) +), +array( + 'app' => 'core', + 'category' => 'person', + 'phrase' => 'ledig', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'ledig', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'single', + 'description' => '', + 'insertvon' => 'system' + ) + ) +), +array( + 'app' => 'core', + 'category' => 'person', + 'phrase' => 'verheiratet', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'verheiratet', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'married', + 'description' => '', + 'insertvon' => 'system' + ) + ) +), +array( + 'app' => 'core', + 'category' => 'person', + 'phrase' => 'verwitwet', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'verwitwet', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'widowed', + 'description' => '', + 'insertvon' => 'system' + ) + ) +), +array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'firma_id', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Firma Id', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Company Id', + 'description' => '', + 'insertvon' => 'system' + ) + ) +), +array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'adresse_id', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Adresse ID', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Address ID', + 'description' => '', + 'insertvon' => 'system' + ) + ) +), +array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'kontakt_id', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Kontakt ID', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Contact ID', + 'description' => '', + 'insertvon' => 'system' + ) + ) +), +array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'standort_id', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Standort ID', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Location ID', + 'description' => '', + 'insertvon' => 'system' + ) + ) +), +array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'bankverbindung_id', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Bankverbindung ID', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Bankdetails ID', + 'description' => '', + 'insertvon' => 'system' + ) + ) +), +array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'studienplan_id', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Studienplan ID', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Studyplan ID', + 'description' => '', + 'insertvon' => 'system' + ) + ) +), +array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'prestudent_id', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'PrestudentIn ID', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Prestudent ID', + 'description' => '', + 'insertvon' => 'system' + ) + ) +), +array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'notiz_id', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Notiz ID', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Notes ID', + 'description' => '', + 'insertvon' => 'system' + ) + ) +), +array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'notizzuordnung_id', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Notizzuordnung ID', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Noteassignment ID', + 'description' => '', + 'insertvon' => 'system' + ) + ) +), +array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'extension_id', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Extension ID', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Extension ID', + 'description' => '', + 'insertvon' => 'system' + ) + ) +), +array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'type_id', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Type ID', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Type ID', + 'description' => '', + 'insertvon' => 'system' + ) + ) +), +array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'betriebsmittel_id', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Betriebsmittel ID', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Ressource ID', + 'description' => '', + 'insertvon' => 'system' + ) + ) +), +array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'betriebsmittelperson_id', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Betriebsmittelperson ID', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Ressourceperson ID', + 'description' => '', + 'insertvon' => 'system' + ) + ) +), +array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'dropdownLoading', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Daten werden geladen', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Loading', + 'description' => '', + 'insertvon' => 'system' + ) + ) +), +array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'error_noInteger', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Nur Eingabe von ganzen Zahlen erlaubt', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Error: Only input of whole numbers allowed', + 'description' => '', + 'insertvon' => 'system' + ) + ) +), +array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'error_maxSem', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Ausbildungssemester nicht zulässig: größer als Höchstsemester', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Error: Semester not allowed: higher than max Semester', + 'description' => '', + 'insertvon' => 'system' + ) + ) +), +// FHC4 Phrases CleanUpTasks End );