diff --git a/.gitignore b/.gitignore index 84957a801..7688849af 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ documents/ vendor/ +public/vendor /nbproject/ .vscode diff --git a/application/config/routes.php b/application/config/routes.php index a58fded36..bb0b0f65e 100644 --- a/application/config/routes.php +++ b/application/config/routes.php @@ -91,11 +91,13 @@ $route['api/frontend/v1/treemenudata/stv/stdsem/(:any)/inout/1/incoming/1'] = 'a $route['api/frontend/v1/treemenudata/stv/stdsem/(:any)/inout/1/outgoing/1'] = 'api/frontend/v1/stv/students/getOutgoing/$1'; $route['api/frontend/v1/treemenudata/stv/stdsem/(:any)/inout/1/shared_studies/1'] = 'api/frontend/v1/stv/students/getGemeinsamestudien/$1'; +$route['api/frontend/v1/treemenudata/stv/stdsem/:any/stg/(:any)/prestudent/1/stdsem/(:any)/:any/1/:any/1/(:any)/1'] = 'api/frontend/v1/stv/students/getPrestudents/$1/$2/$3'; $route['api/frontend/v1/treemenudata/stv/stdsem/:any/stg/(:any)/prestudent/1/stdsem/(:any)/:any/1/(:any)/1'] = 'api/frontend/v1/stv/students/getPrestudents/$1/$2/$3'; $route['api/frontend/v1/treemenudata/stv/stdsem/:any/stg/(:any)/prestudent/1/stdsem/(:any)/(:any)/1'] = 'api/frontend/v1/stv/students/getPrestudents/$1/$2/$3'; $route['api/frontend/v1/treemenudata/stv/stdsem/:any/stg/(:any)/prestudent/1/stdsem/(:any)'] = 'api/frontend/v1/stv/students/getPrestudents/$1/$2'; $route['api/frontend/v1/treemenudata/stv/stdsem/:any/stg/(:any)/prestudent/1'] = 'api/frontend/v1/stv/students/getPrestudents/$1'; +$route['api/frontend/v1/treemenudata/stv/stdsem/:any/stg/(:any)/orgform/(:any)/prestudent/1/stdsem/(:any)/:any/1/:any/1/(:any)/1'] = 'api/frontend/v1/stv/students/getPrestudentsOrgform/$1/$2/$3/$4'; $route['api/frontend/v1/treemenudata/stv/stdsem/:any/stg/(:any)/orgform/(:any)/prestudent/1/stdsem/(:any)/:any/1/(:any)/1'] = 'api/frontend/v1/stv/students/getPrestudentsOrgform/$1/$2/$3/$4'; $route['api/frontend/v1/treemenudata/stv/stdsem/:any/stg/(:any)/orgform/(:any)/prestudent/1/stdsem/(:any)/(:any)/1'] = 'api/frontend/v1/stv/students/getPrestudentsOrgform/$1/$2/$3/$4'; $route['api/frontend/v1/treemenudata/stv/stdsem/:any/stg/(:any)/orgform/(:any)/prestudent/1/stdsem/(:any)'] = 'api/frontend/v1/stv/students/getPrestudentsOrgform/$1/$2/$3'; diff --git a/application/controllers/api/frontend/v1/LvPlan.php b/application/controllers/api/frontend/v1/LvPlan.php index 36054003c..f9d2cc3cf 100644 --- a/application/controllers/api/frontend/v1/LvPlan.php +++ b/application/controllers/api/frontend/v1/LvPlan.php @@ -114,6 +114,7 @@ class LvPlan extends FHCAPI_Controller // fetching lvplan events $result = $this->stundenplanlib->getEventsUser($start_date, $end_date, $uid); + $lvplanEvents = $this->getDataOrTerminateWithError($result); // fetching moodle events diff --git a/application/controllers/api/frontend/v1/OtherLvPlan.php b/application/controllers/api/frontend/v1/OtherLvPlan.php index af075fbc3..1807f0a4a 100644 --- a/application/controllers/api/frontend/v1/OtherLvPlan.php +++ b/application/controllers/api/frontend/v1/OtherLvPlan.php @@ -62,6 +62,8 @@ class OtherLvPlan extends FHCAPI_Controller "foto" => $profileData->data->foto, "vorname" => $profileData->data->vorname, "nachname" => $profileData->data->nachname, + "titel" => $profileData->data->titel, + "postnomen" => $profileData->data->postnomen, ], ]; diff --git a/application/libraries/StundenplanLib.php b/application/libraries/StundenplanLib.php index 8d40c7abd..2c13a29d9 100644 --- a/application/libraries/StundenplanLib.php +++ b/application/libraries/StundenplanLib.php @@ -94,13 +94,13 @@ class StundenplanLib if (isError($benutzer_gruppen)) return $benutzer_gruppen; $benutzer_gruppen = getData($benutzer_gruppen); - + $this->_ci->addMeta('spezialgruppen', $benutzer_gruppen); // getting the student_lehrverbaende of the student in the different studiensemester $student_lehrverband = $this->fetchStudentlehrverbandFromStudiensemester($student_uid, $semester_range); if (isError($student_lehrverband)) return $student_lehrverband; $student_lehrverband = getData($student_lehrverband); - + $this->_ci->addMeta('studentlehrvebaende', $student_lehrverband); $stundenplan_query = $this->_ci->StundenplanModel->getStundenplanQuery( $start, $end, @@ -632,6 +632,7 @@ class StundenplanLib $result->semester = $item->semester; $result->verband = $item->verband; $result->gruppe = $item->gruppe; + $result->studiensemester_kurzbz = $item->studiensemester_kurzbz; return $result; }, $lehrverband_query_result); diff --git a/application/libraries/stv/StudentListLib.php b/application/libraries/stv/StudentListLib.php index 8826b50b8..9365ddc9a 100644 --- a/application/libraries/stv/StudentListLib.php +++ b/application/libraries/stv/StudentListLib.php @@ -77,7 +77,7 @@ class StudentListLib CASE WHEN pls.status_kurzbz IN ('Interessent','Aufgenommener','Bewerber','Wartender') THEN pls.ausbildungssemester - ELSE s.semester + ELSE v.semester END AS semester_berechnet "); $this->addSelect( diff --git a/application/libraries/tags/CoreMissingZgvTagLib.php b/application/libraries/tags/CoreMissingZgvTagLib.php index e25aed4cc..2d5df0ffc 100644 --- a/application/libraries/tags/CoreMissingZgvTagLib.php +++ b/application/libraries/tags/CoreMissingZgvTagLib.php @@ -28,10 +28,21 @@ class CoreMissingZgvTagLib $this->ci->PrestudentModel->addJoin('public.tbl_prestudentstatus', 'prestudent_id'); $this->ci->PrestudentModel->addJoin('public.tbl_benutzer bn', 'person_id'); $this->ci->PrestudentModel->addJoin('public.tbl_studiengang', 'studiengang_kz'); + + $this->ci->PrestudentModel->db->group_start(); + + $this->ci->PrestudentModel->db->where('zgvdatum', null); + $this->ci->PrestudentModel->db->where('typ', 'b'); + + $this->ci->PrestudentModel->db->or_group_start(); + $this->ci->PrestudentModel->db->where('zgvmadatum', null); + $this->ci->PrestudentModel->db->where('typ', 'm'); + $this->ci->PrestudentModel->db->group_end(); + + $this->ci->PrestudentModel->db->group_end(); + $result = $this->ci->PrestudentModel-> loadWhere(array( - 'bn.aktiv' => true, //check if necessary - 'zgvdatum' => null, - 'typ' => 'b', + 'bn.aktiv' => true, 'studiensemester_kurzbz' => $semester )); @@ -60,16 +71,36 @@ class CoreMissingZgvTagLib $semester = $params['studiensemester_kurzbz']; $prestudent_id = $params['id']; + $this->ci->PrestudentModel->addSelect('prestudent_id'); + $this->ci->PrestudentModel->addSelect('start as von'); + $this->ci->PrestudentModel->addSelect('ende as bis'); $this->ci->PrestudentModel->addJoin('public.tbl_prestudentstatus', 'prestudent_id'); + + //add studiensemester also here for manual rebuild + $this->ci->PrestudentModel->addJoin('public.tbl_studiensemester', 'studiensemester_kurzbz'); + $this->ci->PrestudentModel->addJoin('public.tbl_benutzer bn', 'person_id'); $this->ci->PrestudentModel->addJoin('public.tbl_studiengang', 'studiengang_kz'); - $result = $this->ci->PrestudentModel->loadWhere(array( - 'bn.aktiv' => true, //check if necessary - 'zgvdatum' => null, - 'typ' => 'b', + + $this->ci->PrestudentModel->db->group_start(); + + $this->ci->PrestudentModel->db->where('zgvdatum', null); + $this->ci->PrestudentModel->db->where('typ', 'b'); + + $this->ci->PrestudentModel->db->or_group_start(); + $this->ci->PrestudentModel->db->where('zgvmadatum', null); + $this->ci->PrestudentModel->db->where('typ', 'm'); + $this->ci->PrestudentModel->db->group_end(); + + $this->ci->PrestudentModel->db->group_end(); + $this->ci->PrestudentModel->db->limit(1); + + $result = $this->ci->PrestudentModel-> loadWhere(array( + 'bn.aktiv' => true, 'studiensemester_kurzbz' => $semester, 'prestudent_id' => $prestudent_id )); + if(hasData($result)) { return $result; diff --git a/application/libraries/vertragsbestandteil/Gehaltsbestandteil.php b/application/libraries/vertragsbestandteil/Gehaltsbestandteil.php index 95bbdd908..869ed1c2b 100644 --- a/application/libraries/vertragsbestandteil/Gehaltsbestandteil.php +++ b/application/libraries/vertragsbestandteil/Gehaltsbestandteil.php @@ -13,6 +13,7 @@ class Gehaltsbestandteil extends AbstractBestandteil implements \JsonSerializabl protected $dienstverhaeltnis_id; protected $vertragsbestandteil_id; protected $gehaltstyp_kurzbz; + protected $gehaltsanpassungtyp_kurzbz = ''; protected $von; protected $bis; protected $anmerkung; @@ -21,6 +22,7 @@ class Gehaltsbestandteil extends AbstractBestandteil implements \JsonSerializabl protected $valorisierungssperre; protected $valorisierung; protected $auszahlungen; + protected $gehaltstyp_bezeichnung; protected $insertamum; protected $insertvon; @@ -39,6 +41,10 @@ class Gehaltsbestandteil extends AbstractBestandteil implements \JsonSerializabl isset($data->dienstverhaeltnis_id) && $this->setDienstverhaeltnis_id($data->dienstverhaeltnis_id); isset($data->vertragsbestandteil_id) && $this->setVertragsbestandteil_id($data->vertragsbestandteil_id); isset($data->gehaltstyp_kurzbz) && $this->setGehaltstyp_kurzbz($data->gehaltstyp_kurzbz); + //isset($data->gehaltsanpassungtyp_kurzbz) && $this->setGehaltsanpassungtyp_kurzbz($data->gehaltsanpassungtyp_kurzbz); + if (!empty($data->gehaltsanpassungtyp_kurzbz)) { + $this->setGehaltsanpassungtyp_kurzbz($data->gehaltsanpassungtyp_kurzbz); + } isset($data->von) && $this->setVon($data->von); isset($data->bis) && $this->setBis($data->bis); isset($data->anmerkung) && $this->setAnmerkung($data->anmerkung); @@ -47,7 +53,8 @@ class Gehaltsbestandteil extends AbstractBestandteil implements \JsonSerializabl isset($data->valorisierungssperre) && $this->setValorisierungssperre($data->valorisierungssperre); isset($data->valorisierung) && $this->setValorisierung($data->valorisierung); isset($data->auszahlungen) && $this->setAuszahlungen($data->auszahlungen); - + isset($data->gehaltstyp_bezeichnung) && $this->setGehaltstyp_bezeichnung($data->gehaltstyp_bezeichnung); + isset($data->insertamum) && $this->setInsertamum($data->insertamum); isset($data->insertvon) && $this->setInsertvon($data->insertvon); isset($data->updateamum) && $this->setUpdateamum($data->updateamum); @@ -75,6 +82,11 @@ class Gehaltsbestandteil extends AbstractBestandteil implements \JsonSerializabl return $this->gehaltstyp_kurzbz; } + public function getGehaltsanpassungtyp_kurzbz() + { + return $this->gehaltsanpassungtyp_kurzbz; + } + public function getVon() { return $this->von; @@ -178,6 +190,13 @@ class Gehaltsbestandteil extends AbstractBestandteil implements \JsonSerializabl return $this; } + public function setGehaltsanpassungtyp_kurzbz($gehaltsanpassungtyp_kurzbz) + { + $this->markDirty('gehaltsanpassungtyp_kurzbz', $this->gehaltsanpassungtyp_kurzbz, $gehaltsanpassungtyp_kurzbz); + $this->gehaltsanpassungtyp_kurzbz = $gehaltsanpassungtyp_kurzbz; + return $this; + } + public function setVon($von) { $this->markDirty('von', $this->von, $von); @@ -206,6 +225,10 @@ class Gehaltsbestandteil extends AbstractBestandteil implements \JsonSerializabl $grundbetrag = number_format($grundbetrag, 2, '.', ''); } $this->markDirty('grundbetrag', $this->grundbetrag, $grundbetrag); + if(in_array('grundbetrag', $this->modifiedcolumns)) + { + $this->setBetrag_valorisiert($grundbetrag); + } $this->grundbetrag = $grundbetrag; return $this; } @@ -242,6 +265,13 @@ class Gehaltsbestandteil extends AbstractBestandteil implements \JsonSerializabl return $this; } + public function setGehaltstyp_bezeichnung($gehaltstyp_bezeichnung) + { + $this->markDirty('gehaltstyp_bezeichnung', $this->gehaltstyp_bezeichnung, $gehaltstyp_bezeichnung); + $this->gehaltstyp_bezeichnung = $gehaltstyp_bezeichnung; + return $this; + } + public function setInsertamum($insertamum) { $this->markDirty('insertamum', $this->insertamum, $insertamum); @@ -284,6 +314,7 @@ class Gehaltsbestandteil extends AbstractBestandteil implements \JsonSerializabl 'dienstverhaeltnis_id' => $this->getDienstverhaeltnis_id(), 'vertragsbestandteil_id' => $this->getVertragsbestandteil_id(), 'gehaltstyp_kurzbz' => $this->getGehaltstyp_kurzbz(), + 'gehaltsanpassungtyp_kurzbz' => $this->getGehaltsanpassungtyp_kurzbz(), 'von' => $this->getVon(), 'bis' => $this->getBis(), 'anmerkung' => $this->getAnmerkung(), @@ -312,6 +343,7 @@ class Gehaltsbestandteil extends AbstractBestandteil implements \JsonSerializabl dienstverhaeltnis_id: {$this->getDienstverhaeltnis_id()} vertragsbestandteil_id: {$this->getVertragsbestandteil_id()} gehaltstyp_kurzbz: {$this->getGehaltstyp_kurzbz()} + gehaltsanpassungtyp_kurzbz: {$this->getGehaltsanpassungtyp_kurzbz()} von: {$this->getVon()} bis: {$this->getBis()} anmerkung: {$this->getAnmerkung()} diff --git a/application/models/crm/Student_model.php b/application/models/crm/Student_model.php index ab073996f..df8c1f983 100644 --- a/application/models/crm/Student_model.php +++ b/application/models/crm/Student_model.php @@ -204,7 +204,7 @@ class Student_model extends DB_Model Events::trigger( 'generate_student_uid', - function ($value) use ($uid) { + function ($value) use (&$uid) { $uid = $value; }, $stgkzl, diff --git a/application/models/organisation/Studiengang_model.php b/application/models/organisation/Studiengang_model.php index 1db658596..db0996319 100644 --- a/application/models/organisation/Studiengang_model.php +++ b/application/models/organisation/Studiengang_model.php @@ -457,6 +457,7 @@ class Studiengang_model extends DB_Model */ public function getLeitung($studiengang_kz = null) { + $this->addDistinct(); $this->addSelect('uid, studiengang_kz, oe_kurzbz, vorname, nachname, email, titelpre, titelpost, alias'); $this->addJoin('public.tbl_benutzerfunktion', 'oe_kurzbz'); $this->addJoin('public.tbl_benutzer', 'uid'); diff --git a/application/models/ressource/Stundenplan_model.php b/application/models/ressource/Stundenplan_model.php index 1eddd2e2f..0f51e4b71 100644 --- a/application/models/ressource/Stundenplan_model.php +++ b/application/models/ressource/Stundenplan_model.php @@ -604,11 +604,17 @@ class Stundenplan_model extends DB_Model { foreach($semester_date_range as $sem_date => $sem_date_range) { - if(!array_key_exists($sem_date,$studentlehrverbaende) || count($studentlehrverbaende[$sem_date]) == 0) + if(!array_key_exists($sem,$studentlehrverbaende) || count($studentlehrverbaende[$sem]) == 0) { continue; } - foreach($studentlehrverbaende[$sem_date] as $key=>$lehrverband) + $studlvbds = array_filter( + $studentlehrverbaende[$sem], + function($value) use ($sem_date) { + return $value->studiensemester_kurzbz === $sem_date; + } + ); + foreach($studlvbds as $key=>$lehrverband) { $query .= "(((sp.studiengang_kz = ".$this->escape($lehrverband->studiengang_kz)." AND sp.semester = ".$this->escape($lehrverband->semester)." AND sp.verband = ".$this->escape($lehrverband->verband)." AND sp.gruppe = ".$this->escape($lehrverband->gruppe)." AND sp.datum BETWEEN ".$this->escape($sem_date_range->start)." AND ".$this->escape($sem_date_range->ende).")"; // Eintraege fuer den ganzen Verband diff --git a/application/models/vertragsbestandteil/Gehaltsbestandteil_model.php b/application/models/vertragsbestandteil/Gehaltsbestandteil_model.php index 2669105a1..3918e98e1 100644 --- a/application/models/vertragsbestandteil/Gehaltsbestandteil_model.php +++ b/application/models/vertragsbestandteil/Gehaltsbestandteil_model.php @@ -41,6 +41,7 @@ with gbt as ( gb.anmerkung, gb.dienstverhaeltnis_id, gb.gehaltstyp_kurzbz, + gb.gehaltsanpassungtyp_kurzbz, gb.valorisierungssperre, gb.valorisierung, gb.grundbetrag as grund_betrag_decrypted, @@ -76,11 +77,13 @@ select gbt.anmerkung, gbt.dienstverhaeltnis_id, gbt.gehaltstyp_kurzbz, + gbt.gehaltsanpassungtyp_kurzbz, gbt.valorisierungssperre, gbt.valorisierung, gbt.grund_betrag_decrypted, gbt.betrag_val_decrypted, gt.bezeichnung as gehaltstyp_bezeichnung, + ga.bezeichnung as gehaltsanpassungtyp_bezeichnung, vb.vertragsbestandteiltyp_kurzbz, bf.funktion_kurzbz, bf.oe_kurzbz, @@ -93,6 +96,8 @@ from gbt LEFT JOIN hr.tbl_gehaltstyp gt using(gehaltstyp_kurzbz) +LEFT JOIN + hr.tbl_gehaltsanpassungtyp ga using(gehaltsanpassungtyp_kurzbz) LEFT JOIN hr.tbl_vertragsbestandteil vb using(vertragsbestandteil_id) LEFT JOIN @@ -177,7 +182,8 @@ LEFT JOIN $stichtagclause .= ')'; } - $this->addSelect('*'); + $this->addSelect('tbl_gehaltsbestandteil.*, tbl_gehaltstyp.bezeichnung AS gehaltstyp_bezeichnung'); + $this->addJoin('hr.tbl_gehaltstyp', 'gehaltstyp_kurzbz'); $where = <<escape($dienstverhaeltnis_id)} {$stichtagclause} @@ -202,6 +208,7 @@ SELECT g.dienstverhaeltnis_id, g.vertragsbestandteil_id, g.gehaltstyp_kurzbz, + g.gehaltsanpassungtyp_kurzbz, g.von, g.bis, g.anmerkung, @@ -213,9 +220,11 @@ SELECT g.updateamum, g.updatevon, g.valorisierung, - g.auszahlungen + g.auszahlungen, + gt.bezeichnung AS gehaltstyp_bezeichnung FROM - hr.tbl_gehaltsbestandteil g + hr.tbl_gehaltsbestandteil g + JOIN hr.tbl_gehaltstyp gt USING (gehaltstyp_kurzbz) LEFT JOIN hr.tbl_valorisierung_historie vh ON vh.gehaltsbestandteil_id = g.gehaltsbestandteil_id AND vh.valorisierungsdatum = ( SELECT @@ -263,7 +272,7 @@ EOSQL; // Note: replaced gb.betrag_valorisiert with vh.betrag_valorisiert! $qry = " SELECT - gb.gehaltsbestandteil_id,gb.dienstverhaeltnis_id,gb.vertragsbestandteil_id,gb.gehaltstyp_kurzbz, + gb.gehaltsbestandteil_id,gb.dienstverhaeltnis_id,gb.vertragsbestandteil_id,gb.gehaltstyp_kurzbz,gb.gehaltsanpassungtyp_kurzbz, gb.von,gb.bis,gb.anmerkung,gb.grundbetrag as grundbetrag,gb.valorisierungssperre,gb.insertamum, gb.insertvon,gb.updateamum,gb.updatevon,gb.valorisierung,gb.auszahlungen, vh.valorisierungsdatum, vh.betrag_valorisiert as betrag_valorisiert diff --git a/public/css/components/Detailheader.css b/public/css/components/Detailheader.css index dcfcf6806..e9ebddfc1 100644 --- a/public/css/components/Detailheader.css +++ b/public/css/components/Detailheader.css @@ -62,3 +62,16 @@ top:13%;" z-index: 104; font-size: 1rem; width: 2.5rem; height: 2.5rem; opacity:0; transition: opacity 0.2s; top:13%;" }*/ + +.tag-hover:hover { + background-color: #e9ecef; +} + +.green { + background-color: #e9ecef; +} + +.btn-hover { + --bs-btn-hover-bg: #e9ecef; /* Neue Hintergrundfarbe beim Hover */ + --bs-btn-hover-border-color: #e9ecef; /* Neue Rahmenfarbe beim Hover */ +} diff --git a/public/css/tags.css b/public/css/tags.css index 0634c5ce3..0230cfbda 100644 --- a/public/css/tags.css +++ b/public/css/tags.css @@ -145,3 +145,8 @@ float: right; margin-top: 3px; } + +.btn-hover { + --bs-btn-hover-bg: #e9ecef; + --bs-btn-hover-border-color: #e9ecef; +} diff --git a/public/js/components/Calendar/LvPlan.js b/public/js/components/Calendar/LvPlan.js index 97246a5d4..198415714 100644 --- a/public/js/components/Calendar/LvPlan.js +++ b/public/js/components/Calendar/LvPlan.js @@ -174,6 +174,9 @@ export default { > {{ $p.t('lehre/noLvFound') }} +
+ +
{{ $p.t('lehre/noLvFound') }}
+
+ +
!!fragment, + ); + this.otherPersonData.fullNameWithTitle = + fullNameWithTitleFragments.join(" "); this.otherPersonData.photo = viewData?.user_data?.foto; }, async redirectToMyLvPlanIfAuthUid() { @@ -225,12 +232,21 @@ export default { this.$router.push({ name: "MyLvPlan" }); } }, + copyFullNameWithTitleToClipboard() { + navigator.clipboard.writeText( + this.otherPersonData.fullNameWithTitle, + ); + this.$fhcAlert.alertSuccess( + this.$p.t("profil/name_title_clipboard_copy_confirmation"), + ); + }, }, async created() { await this.redirectToMyLvPlanIfAuthUid(); await this.fetchViewData(); + await this.$p.loadCategory(["profil"]); }, - template: ` + template: /*html*/ `

@@ -238,8 +254,11 @@ export default { {{ $p.t('lehre/stundenplan') + (studiensemester_kurzbz ? " " + studiensemester_kurzbz : "") }}
- - {{ otherPersonData.fullName }} + + {{ otherPersonData.fullNameWithTitle }} + + + profile picture
diff --git a/public/js/components/Cis/Profil/ProfilComponents/ProfilInformation.js b/public/js/components/Cis/Profil/ProfilComponents/ProfilInformation.js index d714c9faa..2df4024ca 100644 --- a/public/js/components/Cis/Profil/ProfilComponents/ProfilInformation.js +++ b/public/js/components/Cis/Profil/ProfilComponents/ProfilInformation.js @@ -67,6 +67,21 @@ export default { return res; }, }, + methods: { + copyFullNameWithTitleToClipboard() { + let fragments = [ + this.$props.data.Titel, + this.$props.data.Vorname, + this.$props.data.Nachname, + this.$props.data.Postnomen, + ]; + fragments = fragments.filter((fragment) => !!fragment); + navigator.clipboard.writeText(fragments.join(" ")); + this.$fhcAlert.alertSuccess( + this.$p.t("profil/name_title_clipboard_copy_confirmation"), + ); + }, + }, template: /*html*/ `
@@ -124,6 +139,16 @@ export default { {{wert?wert:'-'}}
+ + + + + {{ $p.t("profil/name_title_copy") }} +

diff --git a/public/js/components/Cis/Renderer/Lehreinheit/modalContent.js b/public/js/components/Cis/Renderer/Lehreinheit/modalContent.js index 738c0c75c..eb8908648 100644 --- a/public/js/components/Cis/Renderer/Lehreinheit/modalContent.js +++ b/public/js/components/Cis/Renderer/Lehreinheit/modalContent.js @@ -51,6 +51,16 @@ export default { return numberPadding(this.event.ende.getHours()) + ":" + numberPadding(this.event.ende.getMinutes()); } }, + watch: { + event: { + async handler() { + if (this.$props.event.type == "lehreinheit") { + await this.getLvMenu(); + } + }, + deep: true, + }, + }, methods: { mehtodNumberPadding: function (number) { return numberPadding(number); @@ -58,21 +68,31 @@ export default { methodFormatDate: function (d) { return formatDate(d); }, + async getLvMenu() { + const semesterResponse = await this.$api.call( + ApiLvPlan.getLehreinheitStudiensemester( + Array.isArray(this.event.lehreinheit_id) + ? this.event.lehreinheit_id[0] + : this.event.lehreinheit_id, + ), + ); + if (semesterResponse.meta.status !== "success") return; + + const studiensemesterKurzbz = semesterResponse.data; + const lvMenuResponse = await this.$api.call( + ApiAddons.getLvMenu( + this.event.lehrveranstaltung_id, + studiensemesterKurzbz, + ), + ); + if (lvMenuResponse.meta.status !== "success") return; + + this.lvMenu = lvMenuResponse.data; + }, }, - created() { - if (this.event.type == 'lehreinheit') { - this.$api - .call(ApiLvPlan.getLehreinheitStudiensemester(Array.isArray(this.event.lehreinheit_id) ? this.event.lehreinheit_id[0] : this.event.lehreinheit_id)) - .then(res => res.data) - .then(studiensemester_kurzbz => this.$api.call( - ApiAddons.getLvMenu( - this.event.lehrveranstaltung_id, - studiensemester_kurzbz - ) - )) - .then(res => { - this.lvMenu = res.data; - }); + async created() { + if (this.$props.event.type == 'lehreinheit') { + await this.getLvMenu(); } }, template: ` diff --git a/public/js/components/Cis/Studium/Studium.js b/public/js/components/Cis/Studium/Studium.js index c70646608..721fec8ad 100644 --- a/public/js/components/Cis/Studium/Studium.js +++ b/public/js/components/Cis/Studium/Studium.js @@ -381,13 +381,13 @@ export default {