From 414541b6cfe783a92fa085a84387c8e13f4105a9 Mon Sep 17 00:00:00 2001 From: Simon Gschnell Date: Thu, 28 Dec 2023 10:43:21 +0100 Subject: [PATCH] checks if table entry for uid exists and performs update or insert on result --- application/controllers/Cis/Profil.php | 1030 +++++++++-------- public/js/apps/Cis/Profil.js | 1 - public/js/components/Cis/Profil/Base.js | 743 ------------ .../Cis/Profil/MitarbeiterProfil.js | 23 +- 4 files changed, 540 insertions(+), 1257 deletions(-) delete mode 100644 public/js/components/Cis/Profil/Base.js diff --git a/application/controllers/Cis/Profil.php b/application/controllers/Cis/Profil.php index 747a667db..a2de9497e 100644 --- a/application/controllers/Cis/Profil.php +++ b/application/controllers/Cis/Profil.php @@ -1,6 +1,7 @@ ['student/anrechnung_beantragen:r','user:r'], // TODO(chris): permissions? - 'View' => ['student/anrechnung_beantragen:r','user:r'], - 'foto_sperre_function' => ['student/anrechnung_beantragen:r','user:r'], - 'getView' => ['student/anrechnung_beantragen:r','user:r'], - 'editProfil' => ['student/anrechnung_beantragen:r','user:r'], - + 'index' => ['student/anrechnung_beantragen:r', 'user:r'], // TODO(chris): permissions? + 'View' => ['student/anrechnung_beantragen:r', 'user:r'], + 'foto_sperre_function' => ['student/anrechnung_beantragen:r', 'user:r'], + 'getView' => ['student/anrechnung_beantragen:r', 'user:r'], + 'editProfil' => ['student/anrechnung_beantragen:r', 'user:r'], + ]); $this->load->model('ressource/mitarbeiter_model', 'MitarbeiterModel'); $this->load->model('crm/Student_model', 'StudentModel'); @@ -36,7 +37,7 @@ class Profil extends Auth_Controller //? put the uid and pid inside the controller for further usage in views $this->uid = getAuthUID(); $this->pid = getAuthPersonID(); - + } // ----------------------------------------------------------------------------------------------------------------- @@ -46,122 +47,139 @@ class Profil extends Auth_Controller * @return void */ - + public function index() { $this->load->view('Cis/Profil'); } - public function View($uid){ - - if($uid === $this->uid){ + public function View($uid) + { + + if ($uid === $this->uid) { $this->index(); - }else{ + } else { $this->load->view('Cis/Profil'); } - + } - - public function editProfil(){ - + + public function editProfil() + { + $json = $this->input->raw_input_stream; - $data = ["uid"=>"karpenko", "profil_changes"=>$json, "change_timestamp"=>"NOW()"]; - //? gets the data inside the public.tbl_cis_profil_update - //$res = json_encode($this->ChangeModel->load([$this->uid])); - //? inserts new row inside the public.tbl_cis_profil_update table - $insert_res = json_encode($this->ProfilChangeModel->insert($data)); - - echo $insert_res; + $data = ["uid" => $this->uid, "profil_changes" => $json, "change_timestamp" => "NOW()"]; + + $res = $this->ProfilChangeModel->load([$this->uid]); + $res = hasData($res) ? getData($res) : null; + + if (empty($res)) { + $insert_res = $this->ProfilChangeModel->insert($data); + echo json_encode($insert_res); + } else { + $update_res = $this->ProfilChangeModel->update([$this->uid], $data); + echo json_encode($update_res); + } + + } - private function viewMitarbeiterProfil($uid){ + private function viewMitarbeiterProfil($uid) + { - - if( - isSuccess($this->PersonModel->addSelect('gruppe_kurzbz, beschreibung'))&& - isSuccess($this->PersonModel->addJoin('tbl_benutzer', 'person_id')) && - isSuccess($this->PersonModel->addJoin('tbl_benutzergruppe', 'uid')) && - isSuccess($this->PersonModel->addJoin('tbl_gruppe', 'gruppe_kurzbz'))){ - $mailverteiler_res = $this->PersonModel->loadWhere(array('mailgrp' => true, 'uid'=>$uid)); - if( isError($mailverteiler_res)){ + if ( + isSuccess($this->PersonModel->addSelect('gruppe_kurzbz, beschreibung')) && + isSuccess($this->PersonModel->addJoin('tbl_benutzer', 'person_id')) && + isSuccess($this->PersonModel->addJoin('tbl_benutzergruppe', 'uid')) && + isSuccess($this->PersonModel->addJoin('tbl_gruppe', 'gruppe_kurzbz')) + ) { + + $mailverteiler_res = $this->PersonModel->loadWhere(array('mailgrp' => true, 'uid' => $uid)); + if (isError($mailverteiler_res)) { // catch error } - $mailverteiler_res = hasData($mailverteiler_res)? getData($mailverteiler_res) : null; - - $mailverteiler_res = array_map(function($element) { $element->mailto="mailto:".$element->gruppe_kurzbz."@".DOMAIN; return $element;},$mailverteiler_res); + $mailverteiler_res = hasData($mailverteiler_res) ? getData($mailverteiler_res) : null; + + $mailverteiler_res = array_map(function ($element) { + $element->mailto = "mailto:" . $element->gruppe_kurzbz . "@" . DOMAIN; + return $element; }, $mailverteiler_res); } - - - if( + + + if ( //! Summe der Wochenstunden wird jetzt in der hr/tbl_dienstverhaeltnis gespeichert - isSuccess($this->BenutzerfunktionModel->addSelect(["tbl_benutzerfunktion.bezeichnung as Bezeichnung","tbl_organisationseinheit.bezeichnung as Organisationseinheit","datum_von as Gültig_von","datum_bis as Gültig_bis","wochenstunden as Wochenstunden"]))&& - isSuccess($this->BenutzerfunktionModel->addJoin("tbl_organisationseinheit","oe_kurzbz")) - ){ - $benutzer_funktion_res = $this->BenutzerfunktionModel->loadWhere(array('uid'=>$uid)); - if(isError($benutzer_funktion_res)){ + isSuccess($this->BenutzerfunktionModel->addSelect(["tbl_benutzerfunktion.bezeichnung as Bezeichnung", "tbl_organisationseinheit.bezeichnung as Organisationseinheit", "datum_von as Gültig_von", "datum_bis as Gültig_bis", "wochenstunden as Wochenstunden"])) && + isSuccess($this->BenutzerfunktionModel->addJoin("tbl_organisationseinheit", "oe_kurzbz")) + ) { + $benutzer_funktion_res = $this->BenutzerfunktionModel->loadWhere(array('uid' => $uid)); + if (isError($benutzer_funktion_res)) { // error handling - }else{ - $benutzer_funktion_res = hasData($benutzer_funktion_res)? getData($benutzer_funktion_res) : null; + } else { + $benutzer_funktion_res = hasData($benutzer_funktion_res) ? getData($benutzer_funktion_res) : null; } } - if(isSuccess($this->BenutzerModel->addSelect(["alias"]))){ - $benutzer_res = $this->BenutzerModel->load([$uid]); - if(isError($benutzer_res)){ - // error handling - }else{ - $benutzer_res = hasData($benutzer_res)? getData($benutzer_res)[0] : null; - } + if (isSuccess($this->BenutzerModel->addSelect(["alias"]))) { + $benutzer_res = $this->BenutzerModel->load([$uid]); + if (isError($benutzer_res)) { + // error handling + } else { + $benutzer_res = hasData($benutzer_res) ? getData($benutzer_res)[0] : null; + } } - if(isSuccess($this->BenutzerModel->addSelect(["foto","foto_sperre","anrede","titelpost","titelpre","vorname","nachname"])) - && isSuccess($this->BenutzerModel->addJoin("tbl_person", "person_id"))){ + if ( + isSuccess($this->BenutzerModel->addSelect(["foto", "foto_sperre", "anrede", "titelpost", "titelpre", "vorname", "nachname"])) + && isSuccess($this->BenutzerModel->addJoin("tbl_person", "person_id")) + ) { $person_res = $this->BenutzerModel->load([$uid]); - if(isError($person_res)){ + if (isError($person_res)) { // error handling - }else{ - $person_res = hasData($person_res)? getData($person_res)[0] : null; + } else { + $person_res = hasData($person_res) ? getData($person_res)[0] : null; } } - if(isSuccess($this->MitarbeiterModel->addSelect(["kurzbz","telefonklappe", "alias","ort_kurzbz"])) - && isSuccess($this->MitarbeiterModel->addJoin("tbl_benutzer", "tbl_benutzer.uid = tbl_mitarbeiter.mitarbeiter_uid"))) - { + if ( + isSuccess($this->MitarbeiterModel->addSelect(["kurzbz", "telefonklappe", "alias", "ort_kurzbz"])) + && isSuccess($this->MitarbeiterModel->addJoin("tbl_benutzer", "tbl_benutzer.uid = tbl_mitarbeiter.mitarbeiter_uid")) + ) { $mitarbeiter_res = $this->MitarbeiterModel->load($uid); - if(isError($mitarbeiter_res)){ + if (isError($mitarbeiter_res)) { // error handling - }else{ - $mitarbeiter_res = hasData($mitarbeiter_res)? getData($mitarbeiter_res)[0] : null; + } else { + $mitarbeiter_res = hasData($mitarbeiter_res) ? getData($mitarbeiter_res)[0] : null; } } //? querying the telefon number of the office - if(isSuccess($this->MitarbeiterModel->addSelect(["kontakt"])) && + if ( + isSuccess($this->MitarbeiterModel->addSelect(["kontakt"])) && isSuccess($this->MitarbeiterModel->addJoin("tbl_kontakt", "tbl_mitarbeiter.standort_id = tbl_kontakt.standort_id")) - - - ){ + + + ) { $this->MitarbeiterModel->addLimit(1); - $telefon_res = $this->MitarbeiterModel->loadWhere(["mitarbeiter_uid"=>$uid, "kontakttyp"=>"telefon"]); - if(isError($telefon_res)){ + $telefon_res = $this->MitarbeiterModel->loadWhere(["mitarbeiter_uid" => $uid, "kontakttyp" => "telefon"]); + if (isError($telefon_res)) { // error handling - }else{ - $telefon_res = hasData($telefon_res)? getData($telefon_res)[0] : null; + } else { + $telefon_res = hasData($telefon_res) ? getData($telefon_res)[0] : null; } } - + $res = new stdClass(); $res->username = $uid; @@ -169,592 +187,616 @@ class Profil extends Auth_Controller //? Person Info $res->foto = $person_res->foto; $res->foto_sperre = $person_res->foto_sperre; - + $res->anrede = $person_res->anrede; $res->titelpre = $person_res->titelpre; $res->titelpost = $person_res->titelpost; $res->vorname = $person_res->vorname; $res->nachname = $person_res->nachname; - - + + //? Mitarbeiter Info - foreach($mitarbeiter_res as $key => $val){ + foreach ($mitarbeiter_res as $key => $val) { $res->$key = $val; } //? Email Info $intern_email = array(); - $intern_email+=array("type" => "intern"); - $intern_email+=array("email"=> $uid . "@" . DOMAIN); - $extern_email=array(); - $extern_email+=array("type" => "alias"); - $extern_email+=array("email" => $benutzer_res->alias . "@" . DOMAIN); - $res->emails = array($intern_email,$extern_email); - + $intern_email += array("type" => "intern"); + $intern_email += array("email" => $uid . "@" . DOMAIN); + $extern_email = array(); + $extern_email += array("type" => "alias"); + $extern_email += array("email" => $benutzer_res->alias . "@" . DOMAIN); + $res->emails = array($intern_email, $extern_email); + //? Benutzerfunktion Info $res->funktionen = $benutzer_funktion_res; - + //? Mailverteiler Info $res->mailverteiler = $mailverteiler_res; $res->standort_telefon = $telefon_res->kontakt; - + return $res; } - - private function viewStudentProfil($uid){ - + + private function viewStudentProfil($uid) + { - if( - isSuccess($this->PersonModel->addSelect('gruppe_kurzbz, beschreibung'))&& - isSuccess($this->PersonModel->addJoin('tbl_benutzer', 'person_id')) && - isSuccess($this->PersonModel->addJoin('tbl_benutzergruppe', 'uid')) && - isSuccess($this->PersonModel->addJoin('tbl_gruppe', 'gruppe_kurzbz'))){ - $mailverteiler_res = $this->PersonModel->loadWhere(array('mailgrp' => true, 'uid'=>$uid)); - if( isError($mailverteiler_res)){ + if ( + isSuccess($this->PersonModel->addSelect('gruppe_kurzbz, beschreibung')) && + isSuccess($this->PersonModel->addJoin('tbl_benutzer', 'person_id')) && + isSuccess($this->PersonModel->addJoin('tbl_benutzergruppe', 'uid')) && + isSuccess($this->PersonModel->addJoin('tbl_gruppe', 'gruppe_kurzbz')) + ) { + + $mailverteiler_res = $this->PersonModel->loadWhere(array('mailgrp' => true, 'uid' => $uid)); + if (isError($mailverteiler_res)) { // catch error } - $mailverteiler_res = hasData($mailverteiler_res)? getData($mailverteiler_res) : null; - - $mailverteiler_res = array_map(function($element) { $element->mailto="mailto:".$element->gruppe_kurzbz."@".DOMAIN; return $element;},$mailverteiler_res); + $mailverteiler_res = hasData($mailverteiler_res) ? getData($mailverteiler_res) : null; + + $mailverteiler_res = array_map(function ($element) { + $element->mailto = "mailto:" . $element->gruppe_kurzbz . "@" . DOMAIN; + return $element; }, $mailverteiler_res); } - - - if(isSuccess($this->BenutzerModel->addSelect(["foto","foto_sperre","anrede","titelpost","titelpre","vorname","nachname"])) - && isSuccess($this->BenutzerModel->addJoin("tbl_person", "person_id"))){ + + + if ( + isSuccess($this->BenutzerModel->addSelect(["foto", "foto_sperre", "anrede", "titelpost", "titelpre", "vorname", "nachname"])) + && isSuccess($this->BenutzerModel->addJoin("tbl_person", "person_id")) + ) { $person_res = $this->BenutzerModel->load([$uid]); - if(isError($person_res)){ + if (isError($person_res)) { // error handling - }else{ - $person_res = hasData($person_res)? getData($person_res)[0] : null; + } else { + $person_res = hasData($person_res) ? getData($person_res)[0] : null; } } - + //? personenkennzeichen ist die Spalte Matrikelnr in der Tabelle Student - if(isSuccess($this->StudentModel->addSelect(['tbl_studiengang.bezeichnung as studiengang','tbl_student.semester', 'tbl_student.verband', 'tbl_student.gruppe' ,'tbl_student.matrikelnr as personenkennzeichen'])) - && isSuccess($this->StudentModel->addJoin('tbl_studiengang', "tbl_studiengang.studiengang_kz=tbl_student.studiengang_kz"))) - { + if ( + isSuccess($this->StudentModel->addSelect(['tbl_studiengang.bezeichnung as studiengang', 'tbl_student.semester', 'tbl_student.verband', 'tbl_student.gruppe', 'tbl_student.matrikelnr as personenkennzeichen'])) + && isSuccess($this->StudentModel->addJoin('tbl_studiengang', "tbl_studiengang.studiengang_kz=tbl_student.studiengang_kz")) + ) { $student_res = $this->StudentModel->load([$uid]); - if(isError($student_res)){ + if (isError($student_res)) { // catch error } - $student_res = hasData($student_res)?getData($student_res)[0]:null; - - } - + $student_res = hasData($student_res) ? getData($student_res)[0] : null; + + } + + - //? Matrikelnummer ist die Spalte matr_nr in Person - if(isSuccess($this->BenutzerModel->addSelect(["matr_nr"])) - && isSuccess($this->BenutzerModel->addJoin("tbl_person","person_id"))){ + if ( + isSuccess($this->BenutzerModel->addSelect(["matr_nr"])) + && isSuccess($this->BenutzerModel->addJoin("tbl_person", "person_id")) + ) { $matr_res = $this->BenutzerModel->load([$uid]); - if(isError($matr_res)){ + if (isError($matr_res)) { // catch error - }else{ - $matr_res = hasData($matr_res)? getData($matr_res)[0] : []; - + } else { + $matr_res = hasData($matr_res) ? getData($matr_res)[0] : []; + } } $res = new stdClass(); - - + + $res->foto = $person_res->foto; $res->username = $uid; - + $res->anrede = $person_res->anrede; $res->titel = $person_res->titelpre; $res->vorname = $person_res->vorname; $res->nachname = $person_res->nachname; - - - $res->postnomen = $person_res->titelpost; - + + + $res->postnomen = $person_res->titelpost; + $intern_email = array(); - $intern_email+=array("type" => "intern"); - $intern_email+=array("email"=> $uid . "@" . DOMAIN); - - $res->emails = array($intern_email); - - - - + $intern_email += array("type" => "intern"); + $intern_email += array("email" => $uid . "@" . DOMAIN); + + $res->emails = array($intern_email); + + + + $res->matrikelnummer = $matr_res->matr_nr; - foreach($student_res as $key => $value){ + foreach ($student_res as $key => $value) { $res->$key = $value; } - - + + $res->mailverteiler = $mailverteiler_res; - + return $res; - - + + } - private function mitarbeiterProfil(){ - - - //? betriebsmittel soll nur der user selber sehen - if( - - isSuccess($this->BetriebsmittelpersonModel->addSelect(["CONCAT(betriebsmitteltyp, ' ' ,beschreibung) as Betriebsmittel","nummer as Nummer","ausgegebenam as Ausgegeben_am"])) - - ){ - //? betriebsmittel are not needed in a view - $betriebsmittelperson_res = $this->BetriebsmittelpersonModel->getBetriebsmittel($this->pid); - if(isError($betriebsmittelperson_res)){ - // error handling - }else{ - $betriebsmittelperson_res = hasData($betriebsmittelperson_res)? getData($betriebsmittelperson_res) : null; - } - } - - if( - - //? kontaktdaten soll auch nur der user selbst sehen - isSuccess($this->KontaktModel->addSelect('DISTINCT ON (kontakttyp) kontakttyp, kontakt, tbl_kontakt.anmerkung, tbl_kontakt.zustellung')) && - isSuccess($this->KontaktModel->addJoin('public.tbl_standort', 'standort_id', 'LEFT')) && - isSuccess($this->KontaktModel->addJoin('public.tbl_firma', 'firma_id', 'LEFT'))&& - isSuccess($this->KontaktModel->addOrder('kontakttyp, kontakt, tbl_kontakt.updateamum, tbl_kontakt.insertamum')) - ){ - $kontakte_res = $this->KontaktModel->loadWhere(array('person_id' => $this->pid)); - if(isError($kontakte_res)){ - // handle error - }else{ - $kontakte_res = hasData($kontakte_res)? getData($kontakte_res) : null; - } - - } + private function mitarbeiterProfil() + { - //$this->MitarbeiterModel->load($this->uid); + //? betriebsmittel soll nur der user selber sehen + if ( - //? FH Ausweis Austellungsdatum soll auch nur der user selbst sehen - $zutrittskarte_ausgegebenam = $this->BetriebsmittelpersonModel->getBetriebsmittelByUid($this->uid,"Zutrittskarte"); - if(isError($zutrittskarte_ausgegebenam)){ + isSuccess($this->BetriebsmittelpersonModel->addSelect(["CONCAT(betriebsmitteltyp, ' ' ,beschreibung) as Betriebsmittel", "nummer as Nummer", "ausgegebenam as Ausgegeben_am"])) + + ) { + //? betriebsmittel are not needed in a view + $betriebsmittelperson_res = $this->BetriebsmittelpersonModel->getBetriebsmittel($this->pid); + if (isError($betriebsmittelperson_res)) { // error handling - }else{ - $zutrittskarte_ausgegebenam = hasData($zutrittskarte_ausgegebenam)? getData($zutrittskarte_ausgegebenam)[0]->ausgegebenam : null; - //? formats the date from 01-01-2000 to 01.01.2000 - $zutrittskarte_ausgegebenam = str_replace("-",".",$zutrittskarte_ausgegebenam); + } else { + $betriebsmittelperson_res = hasData($betriebsmittelperson_res) ? getData($betriebsmittelperson_res) : null; + } + } + + if ( + + //? kontaktdaten soll auch nur der user selbst sehen + isSuccess($this->KontaktModel->addSelect('DISTINCT ON (kontakttyp) kontakttyp, kontakt, tbl_kontakt.anmerkung, tbl_kontakt.zustellung')) && + isSuccess($this->KontaktModel->addJoin('public.tbl_standort', 'standort_id', 'LEFT')) && + isSuccess($this->KontaktModel->addJoin('public.tbl_firma', 'firma_id', 'LEFT')) && + isSuccess($this->KontaktModel->addOrder('kontakttyp, kontakt, tbl_kontakt.updateamum, tbl_kontakt.insertamum')) + ) { + $kontakte_res = $this->KontaktModel->loadWhere(array('person_id' => $this->pid)); + if (isError($kontakte_res)) { + // handle error + } else { + $kontakte_res = hasData($kontakte_res) ? getData($kontakte_res) : null; } + } - //? Die Adressen soll auch nur der user selber sehen - if( - - isSuccess($adresse_res = $this->AdresseModel->addSelect(array("strasse","tbl_adressentyp.bezeichnung as adr_typ","plz","ort")))&& - isSuccess($adresse_res = $this->AdresseModel->addOrder("zustelladresse","DESC"))&& - isSuccess($adresse_res = $this->AdresseModel->addOrder("sort"))&& - isSuccess($adresse_res = $this->AdresseModel->addJoin("tbl_adressentyp","typ=adressentyp_kurzbz")) - ){ - $adresse_res = $this->AdresseModel->loadWhere(array("person_id"=>$this->pid)); - if(isError($adresse_res)){ - // error handling - }else{ - $adresse_res = hasData($adresse_res)? getData($adresse_res) : null; - } + //$this->MitarbeiterModel->load($this->uid); + + //? FH Ausweis Austellungsdatum soll auch nur der user selbst sehen + $zutrittskarte_ausgegebenam = $this->BetriebsmittelpersonModel->getBetriebsmittelByUid($this->uid, "Zutrittskarte"); + if (isError($zutrittskarte_ausgegebenam)) { + // error handling + } else { + $zutrittskarte_ausgegebenam = hasData($zutrittskarte_ausgegebenam) ? getData($zutrittskarte_ausgegebenam)[0]->ausgegebenam : null; + //? formats the date from 01-01-2000 to 01.01.2000 + $zutrittskarte_ausgegebenam = str_replace("-", ".", $zutrittskarte_ausgegebenam); + } + + + //? Die Adressen soll auch nur der user selber sehen + + if ( + + isSuccess($adresse_res = $this->AdresseModel->addSelect(array("strasse", "tbl_adressentyp.bezeichnung as adr_typ", "plz", "ort"))) && + isSuccess($adresse_res = $this->AdresseModel->addOrder("zustelladresse", "DESC")) && + isSuccess($adresse_res = $this->AdresseModel->addOrder("sort")) && + isSuccess($adresse_res = $this->AdresseModel->addJoin("tbl_adressentyp", "typ=adressentyp_kurzbz")) + ) { + $adresse_res = $this->AdresseModel->loadWhere(array("person_id" => $this->pid)); + if (isError($adresse_res)) { + // error handling + } else { + $adresse_res = hasData($adresse_res) ? getData($adresse_res) : null; } + } - //? die folgenden Informationen darf nur der eigene user sehen - + //? die folgenden Informationen darf nur der eigene user sehen - - - if( - isSuccess($this->PersonModel->addSelect('gruppe_kurzbz, beschreibung'))&& - isSuccess($this->PersonModel->addJoin('tbl_benutzer', 'person_id')) && - isSuccess($this->PersonModel->addJoin('tbl_benutzergruppe', 'uid')) && - isSuccess($this->PersonModel->addJoin('tbl_gruppe', 'gruppe_kurzbz'))){ - $mailverteiler_res = $this->PersonModel->loadWhere(array('mailgrp' => true, 'uid'=>$this->uid)); - if( isError($mailverteiler_res)){ + + + if ( + isSuccess($this->PersonModel->addSelect('gruppe_kurzbz, beschreibung')) && + isSuccess($this->PersonModel->addJoin('tbl_benutzer', 'person_id')) && + isSuccess($this->PersonModel->addJoin('tbl_benutzergruppe', 'uid')) && + isSuccess($this->PersonModel->addJoin('tbl_gruppe', 'gruppe_kurzbz')) + ) { + + $mailverteiler_res = $this->PersonModel->loadWhere(array('mailgrp' => true, 'uid' => $this->uid)); + if (isError($mailverteiler_res)) { // catch error } - $mailverteiler_res = hasData($mailverteiler_res)? getData($mailverteiler_res) : null; - - $mailverteiler_res = array_map(function($element) { $element->mailto="mailto:".$element->gruppe_kurzbz."@".DOMAIN; return $element;},$mailverteiler_res); + $mailverteiler_res = hasData($mailverteiler_res) ? getData($mailverteiler_res) : null; + + $mailverteiler_res = array_map(function ($element) { + $element->mailto = "mailto:" . $element->gruppe_kurzbz . "@" . DOMAIN; + return $element; }, $mailverteiler_res); } - - - if(isSuccess($this->BenutzerModel->addSelect(["foto","foto_sperre","anrede","titelpost","titelpre","vorname","nachname", "gebort", "gebdatum"])) - && isSuccess($this->BenutzerModel->addJoin("tbl_person", "person_id"))){ + + + if ( + isSuccess($this->BenutzerModel->addSelect(["foto", "foto_sperre", "anrede", "titelpost", "titelpre", "vorname", "nachname", "gebort", "gebdatum"])) + && isSuccess($this->BenutzerModel->addJoin("tbl_person", "person_id")) + ) { $person_res = $this->BenutzerModel->load([$this->uid]); - if(isError($person_res)){ + if (isError($person_res)) { // error handling - }else{ - $person_res = hasData($person_res)? getData($person_res)[0] : null; + } else { + $person_res = hasData($person_res) ? getData($person_res)[0] : null; } } - if( + if ( //! Summe der Wochenstunden wird jetzt in der hr/tbl_dienstverhaeltnis gespeichert - isSuccess($this->BenutzerfunktionModel->addSelect(["tbl_benutzerfunktion.bezeichnung as Bezeichnung","tbl_organisationseinheit.bezeichnung as Organisationseinheit","datum_von as Gültig_von","datum_bis as Gültig_bis","wochenstunden as Wochenstunden"]))&& - isSuccess($this->BenutzerfunktionModel->addJoin("tbl_organisationseinheit","oe_kurzbz")) - ){ - $benutzer_funktion_res = $this->BenutzerfunktionModel->loadWhere(array('uid'=>$this->uid)); - if(isError($benutzer_funktion_res)){ + isSuccess($this->BenutzerfunktionModel->addSelect(["tbl_benutzerfunktion.bezeichnung as Bezeichnung", "tbl_organisationseinheit.bezeichnung as Organisationseinheit", "datum_von as Gültig_von", "datum_bis as Gültig_bis", "wochenstunden as Wochenstunden"])) && + isSuccess($this->BenutzerfunktionModel->addJoin("tbl_organisationseinheit", "oe_kurzbz")) + ) { + $benutzer_funktion_res = $this->BenutzerfunktionModel->loadWhere(array('uid' => $this->uid)); + if (isError($benutzer_funktion_res)) { // error handling - }else{ - $benutzer_funktion_res = hasData($benutzer_funktion_res)? getData($benutzer_funktion_res) : null; + } else { + $benutzer_funktion_res = hasData($benutzer_funktion_res) ? getData($benutzer_funktion_res) : null; } } - - + + //? querying the telefon number of the office - if(isSuccess($this->MitarbeiterModel->addSelect(["mitarbeiter_uid"])) && + if ( + isSuccess($this->MitarbeiterModel->addSelect(["mitarbeiter_uid"])) && isSuccess($this->MitarbeiterModel->addJoin("tbl_kontakt", "tbl_mitarbeiter.standort_id = tbl_kontakt.standort_id")) - - - ){ + + + ) { $this->MitarbeiterModel->addLimit(1); - $telefon_res = $this->MitarbeiterModel->loadWhere(["mitarbeiter_uid"=>$this->uid, "kontakttyp"=>"telefon"]); - if(isError($telefon_res)){ + $telefon_res = $this->MitarbeiterModel->loadWhere(["mitarbeiter_uid" => $this->uid, "kontakttyp" => "telefon"]); + if (isError($telefon_res)) { // error handling - }else{ - $telefon_res = hasData($telefon_res)? getData($telefon_res)[0] : null; + } else { + $telefon_res = hasData($telefon_res) ? getData($telefon_res)[0] : null; } } - - - - - - if(isSuccess($this->MitarbeiterModel->addSelect(["kurzbz","tbl_mitarbeiter.telefonklappe", "alias","ort_kurzbz"])) + + + + + + if ( + isSuccess($this->MitarbeiterModel->addSelect(["kurzbz", "tbl_mitarbeiter.telefonklappe", "alias", "ort_kurzbz"])) && isSuccess($this->MitarbeiterModel->addJoin("tbl_benutzer", "tbl_benutzer.uid = tbl_mitarbeiter.mitarbeiter_uid")) - - ){ + + ) { $mitarbeiter_res = $this->MitarbeiterModel->load($this->uid); - if(isError($mitarbeiter_res)){ - // error handling - }else{ - $mitarbeiter_res = hasData($mitarbeiter_res)? getData($mitarbeiter_res)[0] : null; - } - } - - $res = new stdClass(); - $res->foto = $person_res->foto; - $res->foto_sperre = $person_res->foto_sperre; - $res->username = $this->uid; - - $res->anrede = $person_res->anrede; - $res->titel = $person_res->titelpre; - $res->vorname = $person_res->vorname; - $res->nachname = $person_res->nachname; - - $res->gebort = $person_res->gebort; - $res->gebdatum = $person_res->gebdatum; - - $res->postnomen = $person_res->titelpost; - - - $res->adressen = $adresse_res; - $res->zutrittsdatum = $zutrittskarte_ausgegebenam; - $res->kontakte = $kontakte_res; - $res->mittel = $betriebsmittelperson_res; - - $res->mailverteiler = $mailverteiler_res; - - foreach($mitarbeiter_res as $key => $value){ - $res->$key = $value; - } - $intern_email = array(); - $intern_email+=array("type" => "intern"); - $intern_email+=array("email"=> $this->uid . "@" . DOMAIN); - $extern_email=array(); - $extern_email+=array("type" => "alias"); - $extern_email+=array("email" => $mitarbeiter_res->alias . "@" . DOMAIN); - $res->emails = array($intern_email,$extern_email); - - $res->funktionen = $benutzer_funktion_res; - - //telefon nummer von dem Standort - $res->standort_telefon = $telefon_res; - return $res; - } - - - private function studentProfil(){ - - - - //? betriebsmittel soll nur der user selber sehen - if( - - isSuccess($this->BetriebsmittelpersonModel->addSelect(["CONCAT(betriebsmitteltyp, ' ' ,beschreibung) as Betriebsmittel","nummer as Nummer","ausgegebenam as Ausgegeben_am"])) - - ){ - //? betriebsmittel are not needed in a view - $betriebsmittelperson_res = $this->BetriebsmittelpersonModel->getBetriebsmittel($this->pid); - if(isError($betriebsmittelperson_res)){ - // error handling - }else{ - $betriebsmittelperson_res = hasData($betriebsmittelperson_res)? getData($betriebsmittelperson_res) : null; - } - } - - if( - - //? kontaktdaten soll auch nur der user selbst sehen - isSuccess($this->KontaktModel->addSelect('DISTINCT ON (kontakttyp) kontakttyp, kontakt, tbl_kontakt.anmerkung, tbl_kontakt.zustellung')) && - isSuccess($this->KontaktModel->addJoin('public.tbl_standort', 'standort_id', 'LEFT')) && - isSuccess($this->KontaktModel->addJoin('public.tbl_firma', 'firma_id', 'LEFT'))&& - isSuccess($this->KontaktModel->addOrder('kontakttyp, kontakt, tbl_kontakt.updateamum, tbl_kontakt.insertamum')) - ){ - $kontakte_res = $this->KontaktModel->loadWhere(array('person_id' => $this->pid)); - if(isError($kontakte_res)){ - // handle error - }else{ - $kontakte_res = hasData($kontakte_res)? getData($kontakte_res) : null; - } - - } - - //? FH Ausweis Austellungsdatum soll auch nur der user selbst sehen - $zutrittskarte_ausgegebenam = $this->BetriebsmittelpersonModel->getBetriebsmittelByUid($this->uid,"Zutrittskarte"); - if(isError($zutrittskarte_ausgegebenam)){ + if (isError($mitarbeiter_res)) { // error handling - }else{ - $zutrittskarte_ausgegebenam = hasData($zutrittskarte_ausgegebenam)? getData($zutrittskarte_ausgegebenam)[0]->ausgegebenam : null; - //? formats the date from 01-01-2000 to 01.01.2000 - $zutrittskarte_ausgegebenam = str_replace("-",".",$zutrittskarte_ausgegebenam); - } - - - //? Die Adressen soll auch nur der user selber sehen - - if( - - isSuccess($adresse_res = $this->AdresseModel->addSelect(array("strasse","tbl_adressentyp.bezeichnung as adr_typ","plz","ort")))&& - isSuccess($adresse_res = $this->AdresseModel->addOrder("zustelladresse","DESC"))&& - isSuccess($adresse_res = $this->AdresseModel->addOrder("sort"))&& - isSuccess($adresse_res = $this->AdresseModel->addJoin("tbl_adressentyp","typ=adressentyp_kurzbz")) - ){ - $adresse_res = $this->AdresseModel->loadWhere(array("person_id"=>$this->pid)); - if(isError($adresse_res)){ - // error handling - }else{ - $adresse_res = hasData($adresse_res)? getData($adresse_res) : null; - } - } - - //? die folgenden Informationen darf nur der eigene user sehen - - - - - - if( - isSuccess($this->PersonModel->addSelect('gruppe_kurzbz, beschreibung'))&& - isSuccess($this->PersonModel->addJoin('tbl_benutzer', 'person_id')) && - isSuccess($this->PersonModel->addJoin('tbl_benutzergruppe', 'uid')) && - isSuccess($this->PersonModel->addJoin('tbl_gruppe', 'gruppe_kurzbz'))){ - - $mailverteiler_res = $this->PersonModel->loadWhere(array('mailgrp' => true, 'uid'=>$this->uid)); - if( isError($mailverteiler_res)){ - // catch error - } - $mailverteiler_res = hasData($mailverteiler_res)? getData($mailverteiler_res) : null; - - $mailverteiler_res = array_map(function($element) { $element->mailto="mailto:".$element->gruppe_kurzbz."@".DOMAIN; return $element;},$mailverteiler_res); - } - - - - if(isSuccess($this->BenutzerModel->addSelect(["foto","foto_sperre","anrede","titelpost","titelpre","vorname","nachname", "gebort", "gebdatum"])) - && isSuccess($this->BenutzerModel->addJoin("tbl_person", "person_id"))){ - - $person_res = $this->BenutzerModel->load([$this->uid]); - if(isError($person_res)){ - // error handling - }else{ - $person_res = hasData($person_res)? getData($person_res)[0] : null; - } - } - - if( - - isSuccess($this->BenutzergruppeModel->addSelect(['bezeichnung'])) - && isSuccess($this->BenutzergruppeModel->addJoin('tbl_gruppe', 'gruppe_kurzbz' )) - ){ - $zutrittsgruppe_res = $this->BenutzergruppeModel->loadWhere(array("uid"=>$this->uid, "zutrittssystem"=>true)); - if(isError($zutrittsgruppe_res)){ - // catch error - } - $zutrittsgruppe_res = hasData($zutrittsgruppe_res) ? getData($zutrittsgruppe_res) : null; - - } - - - - //? personenkennzeichen ist die Spalte Matrikelnr in der Tabelle Student - if(isSuccess($this->StudentModel->addSelect(['tbl_studiengang.bezeichnung as studiengang','tbl_student.semester', 'tbl_student.verband', 'tbl_student.gruppe' ,'tbl_student.matrikelnr as personenkennzeichen'])) - && isSuccess($this->StudentModel->addJoin('tbl_studiengang', "tbl_studiengang.studiengang_kz=tbl_student.studiengang_kz"))) - { - $student_res = $this->StudentModel->load([$this->uid]); - if(isError($student_res)){ - // catch error - } - $student_res = hasData($student_res)?getData($student_res)[0]:null; - - } - - - - //? Matrikelnummer ist die Spalte matr_nr in Person - if(isSuccess($this->BenutzerModel->addSelect(["matr_nr"])) - && isSuccess($this->BenutzerModel->addJoin("tbl_person","person_id"))){ - $matr_res = $this->BenutzerModel->load([$this->uid]); - if(isError($matr_res)){ - // catch error - }else{ - $matr_res = hasData($matr_res)? getData($matr_res)[0] : []; - + } else { + $mitarbeiter_res = hasData($mitarbeiter_res) ? getData($mitarbeiter_res)[0] : null; } } $res = new stdClass(); - - $res->foto = $person_res->foto; $res->foto_sperre = $person_res->foto_sperre; $res->username = $this->uid; - + $res->anrede = $person_res->anrede; $res->titel = $person_res->titelpre; $res->vorname = $person_res->vorname; $res->nachname = $person_res->nachname; - + $res->gebort = $person_res->gebort; $res->gebdatum = $person_res->gebdatum; - - $res->postnomen = $person_res->titelpost; - + + $res->postnomen = $person_res->titelpost; + + + $res->adressen = $adresse_res; + $res->zutrittsdatum = $zutrittskarte_ausgegebenam; + $res->kontakte = $kontakte_res; + $res->mittel = $betriebsmittelperson_res; + + $res->mailverteiler = $mailverteiler_res; + + foreach ($mitarbeiter_res as $key => $value) { + $res->$key = $value; + } + $intern_email = array(); + $intern_email += array("type" => "intern"); + $intern_email += array("email" => $this->uid . "@" . DOMAIN); + $extern_email = array(); + $extern_email += array("type" => "alias"); + $extern_email += array("email" => $mitarbeiter_res->alias . "@" . DOMAIN); + $res->emails = array($intern_email, $extern_email); + + $res->funktionen = $benutzer_funktion_res; + + //telefon nummer von dem Standort + $res->standort_telefon = $telefon_res; + return $res; + } + + + private function studentProfil() + { + + + + //? betriebsmittel soll nur der user selber sehen + if ( + + isSuccess($this->BetriebsmittelpersonModel->addSelect(["CONCAT(betriebsmitteltyp, ' ' ,beschreibung) as Betriebsmittel", "nummer as Nummer", "ausgegebenam as Ausgegeben_am"])) + + ) { + //? betriebsmittel are not needed in a view + $betriebsmittelperson_res = $this->BetriebsmittelpersonModel->getBetriebsmittel($this->pid); + if (isError($betriebsmittelperson_res)) { + // error handling + } else { + $betriebsmittelperson_res = hasData($betriebsmittelperson_res) ? getData($betriebsmittelperson_res) : null; + } + } + + if ( + + //? kontaktdaten soll auch nur der user selbst sehen + isSuccess($this->KontaktModel->addSelect('DISTINCT ON (kontakttyp) kontakttyp, kontakt, tbl_kontakt.anmerkung, tbl_kontakt.zustellung')) && + isSuccess($this->KontaktModel->addJoin('public.tbl_standort', 'standort_id', 'LEFT')) && + isSuccess($this->KontaktModel->addJoin('public.tbl_firma', 'firma_id', 'LEFT')) && + isSuccess($this->KontaktModel->addOrder('kontakttyp, kontakt, tbl_kontakt.updateamum, tbl_kontakt.insertamum')) + ) { + $kontakte_res = $this->KontaktModel->loadWhere(array('person_id' => $this->pid)); + if (isError($kontakte_res)) { + // handle error + } else { + $kontakte_res = hasData($kontakte_res) ? getData($kontakte_res) : null; + } + + } + + //? FH Ausweis Austellungsdatum soll auch nur der user selbst sehen + $zutrittskarte_ausgegebenam = $this->BetriebsmittelpersonModel->getBetriebsmittelByUid($this->uid, "Zutrittskarte"); + if (isError($zutrittskarte_ausgegebenam)) { + // error handling + } else { + $zutrittskarte_ausgegebenam = hasData($zutrittskarte_ausgegebenam) ? getData($zutrittskarte_ausgegebenam)[0]->ausgegebenam : null; + //? formats the date from 01-01-2000 to 01.01.2000 + $zutrittskarte_ausgegebenam = str_replace("-", ".", $zutrittskarte_ausgegebenam); + } + + + //? Die Adressen soll auch nur der user selber sehen + + if ( + + isSuccess($adresse_res = $this->AdresseModel->addSelect(array("strasse", "tbl_adressentyp.bezeichnung as adr_typ", "plz", "ort"))) && + isSuccess($adresse_res = $this->AdresseModel->addOrder("zustelladresse", "DESC")) && + isSuccess($adresse_res = $this->AdresseModel->addOrder("sort")) && + isSuccess($adresse_res = $this->AdresseModel->addJoin("tbl_adressentyp", "typ=adressentyp_kurzbz")) + ) { + $adresse_res = $this->AdresseModel->loadWhere(array("person_id" => $this->pid)); + if (isError($adresse_res)) { + // error handling + } else { + $adresse_res = hasData($adresse_res) ? getData($adresse_res) : null; + } + } + + //? die folgenden Informationen darf nur der eigene user sehen + + + + + + if ( + isSuccess($this->PersonModel->addSelect('gruppe_kurzbz, beschreibung')) && + isSuccess($this->PersonModel->addJoin('tbl_benutzer', 'person_id')) && + isSuccess($this->PersonModel->addJoin('tbl_benutzergruppe', 'uid')) && + isSuccess($this->PersonModel->addJoin('tbl_gruppe', 'gruppe_kurzbz')) + ) { + + $mailverteiler_res = $this->PersonModel->loadWhere(array('mailgrp' => true, 'uid' => $this->uid)); + if (isError($mailverteiler_res)) { + // catch error + } + $mailverteiler_res = hasData($mailverteiler_res) ? getData($mailverteiler_res) : null; + + $mailverteiler_res = array_map(function ($element) { + $element->mailto = "mailto:" . $element->gruppe_kurzbz . "@" . DOMAIN; + return $element; }, $mailverteiler_res); + } + + + + if ( + isSuccess($this->BenutzerModel->addSelect(["foto", "foto_sperre", "anrede", "titelpost", "titelpre", "vorname", "nachname", "gebort", "gebdatum"])) + && isSuccess($this->BenutzerModel->addJoin("tbl_person", "person_id")) + ) { + + $person_res = $this->BenutzerModel->load([$this->uid]); + if (isError($person_res)) { + // error handling + } else { + $person_res = hasData($person_res) ? getData($person_res)[0] : null; + } + } + + if ( + + isSuccess($this->BenutzergruppeModel->addSelect(['bezeichnung'])) + && isSuccess($this->BenutzergruppeModel->addJoin('tbl_gruppe', 'gruppe_kurzbz')) + ) { + $zutrittsgruppe_res = $this->BenutzergruppeModel->loadWhere(array("uid" => $this->uid, "zutrittssystem" => true)); + if (isError($zutrittsgruppe_res)) { + // catch error + } + $zutrittsgruppe_res = hasData($zutrittsgruppe_res) ? getData($zutrittsgruppe_res) : null; + + } + + + + //? personenkennzeichen ist die Spalte Matrikelnr in der Tabelle Student + if ( + isSuccess($this->StudentModel->addSelect(['tbl_studiengang.bezeichnung as studiengang', 'tbl_student.semester', 'tbl_student.verband', 'tbl_student.gruppe', 'tbl_student.matrikelnr as personenkennzeichen'])) + && isSuccess($this->StudentModel->addJoin('tbl_studiengang', "tbl_studiengang.studiengang_kz=tbl_student.studiengang_kz")) + ) { + $student_res = $this->StudentModel->load([$this->uid]); + if (isError($student_res)) { + // catch error + } + $student_res = hasData($student_res) ? getData($student_res)[0] : null; + + } + + + + //? Matrikelnummer ist die Spalte matr_nr in Person + if ( + isSuccess($this->BenutzerModel->addSelect(["matr_nr"])) + && isSuccess($this->BenutzerModel->addJoin("tbl_person", "person_id")) + ) { + $matr_res = $this->BenutzerModel->load([$this->uid]); + if (isError($matr_res)) { + // catch error + } else { + $matr_res = hasData($matr_res) ? getData($matr_res)[0] : []; + + } + } + + $res = new stdClass(); + + + $res->foto = $person_res->foto; + $res->foto_sperre = $person_res->foto_sperre; + $res->username = $this->uid; + + $res->anrede = $person_res->anrede; + $res->titel = $person_res->titelpre; + $res->vorname = $person_res->vorname; + $res->nachname = $person_res->nachname; + + $res->gebort = $person_res->gebort; + $res->gebdatum = $person_res->gebdatum; + + $res->postnomen = $person_res->titelpost; + $intern_email = array(); - $intern_email+=array("type" => "intern"); - $intern_email+=array("email"=> $this->uid . "@" . DOMAIN); - + $intern_email += array("type" => "intern"); + $intern_email += array("email" => $this->uid . "@" . DOMAIN); + $res->emails = array($intern_email); $res->adressen = $adresse_res; $res->zutrittsdatum = $zutrittskarte_ausgegebenam; $res->kontakte = $kontakte_res; $res->mittel = $betriebsmittelperson_res; $res->matrikelnummer = $matr_res->matr_nr; - foreach($student_res as $key => $value){ + foreach ($student_res as $key => $value) { $res->$key = trim($value); } $res->zuttritsgruppen = $zutrittsgruppe_res; - - + + $res->mailverteiler = $mailverteiler_res; - + return $res; - - + + } - public function getView($uid){ - - + public function getView($uid) + { + + $uid = $uid != "Profil" ? $uid : null; - - - + + + $isMitarbeiter = null; - if($uid){ - - if(isSuccess($this->PersonModel->addSelect(["person_id"]))){ + if ($uid) { + + if (isSuccess($this->PersonModel->addSelect(["person_id"]))) { $pid = $this->PersonModel->getByUid($uid); $pid = hasData($pid) ? getData($pid)[0] : null; - + } - if(!$pid){ + if (!$pid) { //! if no Person_ID was found, null is returned and the vue component will show a 404 View return null; } - - $isMitarbeiter = $this->MitarbeiterModel->isMitarbeiter($uid); - } - else - $isMitarbeiter = $this->MitarbeiterModel->isMitarbeiter($this->uid); - - if(isError($isMitarbeiter)){ + $isMitarbeiter = $this->MitarbeiterModel->isMitarbeiter($uid); + } else + $isMitarbeiter = $this->MitarbeiterModel->isMitarbeiter($this->uid); + + + if (isError($isMitarbeiter)) { //catch error } $isMitarbeiter = hasData($isMitarbeiter) ? getData($isMitarbeiter) : null; - - + + $res = new stdClass(); - - if($uid == $this->uid || !$uid ){ + + if ($uid == $this->uid || !$uid) { // if the $uid is empty, then no payload was supplied and the own profile is being requested - if($isMitarbeiter ) { - $res->view= "MitarbeiterProfil"; + if ($isMitarbeiter) { + $res->view = "MitarbeiterProfil"; $res->data = $this->mitarbeiterProfil(); $res->data->pid = $this->pid; - } - else { - $res->view= "StudentProfil"; + } else { + $res->view = "StudentProfil"; $res->data = $this->studentProfil(); $res->data->pid = $this->pid; } - } - elseif($uid){ + } elseif ($uid) { // if an $uid was passed as payload to the function then the user is trying to view another profile - if($isMitarbeiter ){ - $res->view= "ViewMitarbeiterProfil"; - $res->data= $this->viewMitarbeiterProfil($uid); - - } - else { - $res->view= "ViewStudentProfil"; - $res->data= $this->viewStudentProfil($uid); - + if ($isMitarbeiter) { + $res->view = "ViewMitarbeiterProfil"; + $res->data = $this->viewMitarbeiterProfil($uid); + + } else { + $res->view = "ViewStudentProfil"; + $res->data = $this->viewStudentProfil($uid); + } } echo json_encode($res); - + } - public function foto_sperre_function($value){ + public function foto_sperre_function($value) + { //? Nur der Index User hat die Erlaubniss das Profilbild zu sperren - $res = $this->PersonModel->update($this->pid,array("foto_sperre"=>$value)); - - if(isError($res)){ + $res = $this->PersonModel->update($this->pid, array("foto_sperre" => $value)); + + if (isError($res)) { echo json_encode("error encountered when updating foto_sperre"); return; // error handling - }else{ + } else { //? select the value of the column foto_sperre to return - if(isSuccess($this->PersonModel->addSelect("foto_sperre"))){ + if (isSuccess($this->PersonModel->addSelect("foto_sperre"))) { $res = $this->PersonModel->load($this->pid); - if(isError($res)){ + if (isError($res)) { // error handling } $res = hasData($res) ? getData($res)[0] : null; } - + } echo json_encode($res); } diff --git a/public/js/apps/Cis/Profil.js b/public/js/apps/Cis/Profil.js index 989a1b5e2..2547f9e48 100644 --- a/public/js/apps/Cis/Profil.js +++ b/public/js/apps/Cis/Profil.js @@ -3,7 +3,6 @@ import StudentProfil from "../../components/Cis/Profil/StudentProfil.js"; import MitarbeiterProfil from "../../components/Cis/Profil/MitarbeiterProfil.js"; import ViewStudentProfil from "../../components/Cis/Profil/StudentViewProfil.js"; import ViewMitarbeiterProfil from "../../components/Cis/Profil/MitarbeiterViewProfil.js"; -import Base from "../../components/Cis/Profil/Base.js"; import fhcapifactory from "../api/fhcapifactory.js"; Vue.$fhcapi = fhcapifactory; diff --git a/public/js/components/Cis/Profil/Base.js b/public/js/components/Cis/Profil/Base.js deleted file mode 100644 index ce6ca16f5..000000000 --- a/public/js/components/Cis/Profil/Base.js +++ /dev/null @@ -1,743 +0,0 @@ -import fhcapifactory from "../../../apps/api/fhcapifactory.js"; -import { CoreFilterCmpt } from "../../../components/filter/Filter.js"; - -export default { - components: { - CoreFilterCmpt, - }, - data() { - return { - collapseIconFunktionen: true, - collapseIconBetriebsmittel: true, - funktionen_table_options: { - height: 300, - layout: "fitColumns", - responsiveLayout: "collapse", - responsiveLayoutCollapseUseFormatters: false, - responsiveLayoutCollapseFormatter: Vue.$collapseFormatter, - data: [ - { - Bezeichnung: "", - Organisationseinheit: "", - Gültig_von: "", - Gültig_bis: "", - Wochenstunden: "", - }, - ], - columns: [ - //? option when wanting to hide the collapsed list - - { - title: - "", - field: "collapse", - headerSort: false, - headerFilter: false, - formatter: "responsiveCollapse", - maxWidth: 40, - headerClick: this.collapseFunction, - }, - { - title: "Bezeichnung", - field: "Bezeichnung", - headerFilter: true, - minWidth: 200, - }, - { - title: "Organisationseinheit", - field: "Organisationseinheit", - headerFilter: true, - minWidth: 200, - }, - { - title: "Gültig_von", - field: "Gültig_von", - headerFilter: true, - resizable: true, - minWidth: 200, - }, - { - title: "Gültig_bis", - field: "Gültig_bis", - headerFilter: true, - resizable: true, - minWidth: 200, - }, - { - title: "Wochenstunden", - field: "Wochenstunden", - headerFilter: true, - minWidth: 200, - }, - ], - }, - betriebsmittel_table_options: { - height: 300, - layout: "fitColumns", - responsiveLayout: "collapse", - responsiveLayoutCollapseUseFormatters: false, - responsiveLayoutCollapseFormatter: Vue.$collapseFormatter, - data: [{ betriebsmittel: "", Nummer: "", Ausgegeben_am: "" }], - columns: [ - { - title: - "", - field: "collapse", - headerSort: false, - headerFilter: false, - formatter: "responsiveCollapse", - maxWidth: 40, - headerClick: this.collapseFunction, - }, - { - title: "Betriebsmittel", - field: "betriebsmittel", - headerFilter: true, - minWidth: 200, - }, - { - title: "Nummer", - field: "Nummer", - headerFilter: true, - resizable: true, - minWidth: 200, - }, - { - title: "Ausgegeben_am", - field: "Ausgegeben_am", - headerFilter: true, - minWidth: 200, - }, - ], - }, - }; - }, - - //? this is the prop passed to the dynamic component with the custom data of the view - props: ["data"], - methods: { - sperre_foto_function() { - if (!this.data) { - return; - } - fhcapifactory.UserData.sperre_foto_function(!this.data.foto_sperre).then((res) => { - this.data.foto_sperre = res.data.foto_sperre; - }); - }, - collapseFunction(e, column) { - //* the if of the column has to match with the name of the responsive data in the vue component - this[e.target.id] = !this[e.target.id]; - - //* gets all event icons of the different rows to use the onClick event later - let allClickableIcons = column._column.cells.map((row) => { - return row.element.children[0]; - }); - - //* changes the icon that shows or hides all the collapsed columns - //* if the replace function does not find the class to replace, it just simply returns false - if (this[e.target.id]) { - e.target.classList.replace("fa-angle-up", "fa-angle-down"); - } else { - e.target.classList.replace("fa-angle-down", "fa-angle-up"); - } - - //* changes the icon for every collapsed column to open or closed - if (this[e.target.id]) { - allClickableIcons - .filter((column) => { - return !column.classList.contains("open"); - }) - .forEach((col) => { - col.click(); - }); - } else { - allClickableIcons - .filter((column) => { - return column.classList.contains("open"); - }) - .forEach((col) => { - col.click(); - }); - } - }, - }, - - computed: { - refreshMailTo() { - return `mailto:info.mio@technikum-wien.at?subject=Datenkorrektur&body=Die%20Profildaten%20für%20User%20'${this.data.username}'%20sind%20nicht%20korrekt.%0DHier, die richtigen Daten:%0A%0ANachname:%20${this.data.nachname}%0AVorname:%20${this.data.vorname}%0AGeburtsdatum:${this.data.gebdatum}%0AGeburtsort:%20${this.data.gebort}%0ATitelPre:${this.data.titel}%20%0ATitelPost:${this.data.postnomen}%20%0A%0A***%0DPlatz für weitere (nicht angeführte Daten)%0D***%0A%0A[Bitte%20übermitteln%20Sie%20uns%20etwaige%20Dokumente%20zum%20Beleg%20der%20Änderung]`; - }, - - get_image_base64_src() { - if (!this.data) { - return ""; - } - return "data:image/jpeg;base64," + this.data.foto; - }, - //? this computed function returns all the informations for the first column in the profil - personData() { - if (!this.data) { - return {}; - } - - return { - Username: this.data.username, - Anrede: this.data.anrede, - Titel: this.data.titel, - Postnomen: this.data.postnomen, - }; - }, - - personKontakt() { - if (!this.data) { - return {}; - } - - return { - emails: this.data.emails, - - }; - }, - - specialData() { - if (!this.data) { - return {}; - } - - return { - Geburtsdatum: this.data.gebdatum, - Geburtsort: this.data.gebort, - Kurzzeichen: this.data.kurzbz, - Telefon: this.data.telefonklappe, - Büro: this.data.ort_kurzbz, - }; - }, - - privateKontakte() { - if (!this.data) { - return {}; - } - - return this.data.kontakte; - - }, - - privateAdressen() { - if (!this.data) { - return {}; - } - - return this.data.adressen; - - }, - - - kontaktInfo() { - if (!this.data) { - return {}; - } - - return { - FhAusweisStatus: this.data.zutrittsdatum, - emails: this.data.emails, - Kontakte: this.data.kontakte, - Adressen: this.data.adressen, - }; - }, - }, - - mounted() { - this.$refs.betriebsmittelTable.tabulator.on("tableBuilt", () => { - this.$refs.betriebsmittelTable.tabulator.setData(this.data.mittel); - }); - - this.$refs.funktionenTable.tabulator.on("tableBuilt", () => { - this.$refs.funktionenTable.tabulator.setData(this.data.funktionen); - }); - }, - - template: ` - -
- -
- -
- - - -
- - - -
- - -
-
-
- Der FH Ausweis ist am {{data.zutrittsdatum}} ausgegeben worden. -
-
-
- -
- - - -
- - - - - - -
- - - - - - - - - - - - - - - - - - -
-
-
- - -
-
- MitarbeiterIn -
-
- - - - - -
- - - - - - -
-
-
- - - - -
- - - -
-
-
- -
- - - - - -
-
-
-
- - - -
-
-
-
- - - -
-
-
- - -
- - - - - - - - -
-
- - - -
-
- - -
- - - -
-
-
-
-
- - -
- -
- -
- Mitarbeiter Information -
-
-
-
-
- - -
-
-
- -
- -
- -
- - - - - -
- - - - - - - - - - - - -
- -
-
-
- - -
-
- Mails -
- -
- - - -
- - - - - - -
-
-
- - {{email.email}} - - -
-
-
- - - - - - - - - -
- - -
-
-
- - -
-
-
-
- Private Kontakte -
-
- -
- -
-
- - -
-
-
-
- - -
-
-
- - -
-
- -
-
-
-
- - - -
-
-
-
Private Adressen
-
- -
- -
- - - -
-
-
- - -
-
- -
-
- - -
-
-
-
- - -
-
-
-
- - -
-
-
-
-
-
-
- - - - - -
- - - - - - -
- - - - -
-
-

Sollten Ihre Daten nicht mehr aktuell sein, klicken Sie bitte hier

-
-
- - - - - - -
- - -
- -
- - -
- -
- - -
- - - - - - - - -
- - - - - -
- - - - - - - -
-
- -
-
- Quick Links -
- -
- - - - -
-
- - - -
- -
- - - - -
-
- Mailverteilers -
-
- -
Sie sind Mitgglied in folgenden Verteilern:
-
-
-
-
- - - -
- -
- -
-
{{verteiler.beschreibung}}
-
- -
-
- - - - - -
- - -
- - -
- - - - - - - - -
- - -
- - `, -}; diff --git a/public/js/components/Cis/Profil/MitarbeiterProfil.js b/public/js/components/Cis/Profil/MitarbeiterProfil.js index a23b8c452..ad1fe4a9d 100644 --- a/public/js/components/Cis/Profil/MitarbeiterProfil.js +++ b/public/js/components/Cis/Profil/MitarbeiterProfil.js @@ -135,10 +135,6 @@ export default { onShownBsModal: Function */ }, - /* mixins: [ - BsModal, - - ], */ methods: { showModal() { @@ -152,22 +148,11 @@ export default { submitProfilChange(){ - - if(this.isEditDataChanged){ - - console.log("the editData contains the same information",JSON.stringify(this_data),"editData values:", JSON.stringify(Object.entries(this.editData))); - }else{ - console.log("the editData HAS DIFFERENT INFORMATION"); + //? inserts new row in public.tbl_cis_profil_update + Vue.$fhcapi.UserData.editProfil(this.editData); + } - - /* if(somethingChanged){ - console.log("the editData contains changed information"); - }else{ - console.log("the editData does not contain changed information"); - } */ - //? insert editData into a new row inside the public.tbl_cis_profil_update table - //Vue.$fhcapi.UserData.editProfil(this.editData); }, sperre_foto_function() { if (!this.data) { @@ -608,7 +593,7 @@ export default {