diff --git a/application/controllers/api/frontend/v1/stv/Dokumente.php b/application/controllers/api/frontend/v1/stv/Dokumente.php index 520f5d824..17be3b9df 100644 --- a/application/controllers/api/frontend/v1/stv/Dokumente.php +++ b/application/controllers/api/frontend/v1/stv/Dokumente.php @@ -572,29 +572,21 @@ class Dokumente extends FHCAPI_Controller public function getDocumentDropDown($prestudent_id, $studiensemester_kurzbz, $studiengang_kz) { - //TODO(Manu) Berechtigungen hasPermissionOutputformat - //TODO(Manu) remove: just for test ouput - $hasPermissionOutputformat = false; + //permission to create also odt, and doc outputs of certain documents(menu abschlusspruefung) + $hasPermissionOutputformat = $this->permissionlib->isBerechtigt('system/change_outputformat', 's'); - //TODO(Manu) Validierungen - if (!$prestudent_id) { - $this->terminateWithError('Prestudent id is required.'); - } + if (!$prestudent_id) + $this->terminateWithError($this->p->t('ui', 'errorMissingValue', ['value' => 'Prestudent_id']), self::ERROR_TYPE_GENERAL); if (!$studiensemester_kurzbz) - $this->terminateWithError("kein Studiensemester"); - if (!$studiengang_kz) - $this->terminateWithError("kein Studiengang_kz"); + $this->terminateWithError($this->p->t('ui', 'errorMissingValue', ['value' => 'Studiensemester']), self::ERROR_TYPE_GENERAL); + if(!$studiengang_kz) + $this->terminateWithError($this->p->t('ui', 'errorMissingValue', ['value' => 'Studiengang_kz']), self::ERROR_TYPE_GENERAL); + $uid = $this->_loadUIDFromPrestudent($prestudent_id); $semArray = $this->_getEntriesStudiensemester(); $stgTyp = $this->_getStudiengangstyp($studiengang_kz); - //TODO(Manu) check if if Array[0] bis Array[4] befüllt - //TODO(Manu) handling stgTyp ungleich b,m,d - - // $semString = implode(";", $semArray); - // $this->terminateWithError("Semester " . $semString . " " . $semArray[0] . " " . $semArray[1]); - $documents = [ $this->buildDropdownEntry("accountinfo", "Accountinfoblatt", "xml=accountinfoblatt.xml.php&xsl=AccountInfo&output=pdf", $uid, 10, null), $this->buildDropdownEntry("ausbildungsvertrag", "Ausbildungsvertrag", "xml=ausbildungsvertrag.xml.php&xsl=Ausbildungsver&output=pdf", $uid, 20, null), @@ -605,7 +597,6 @@ class Dokumente extends FHCAPI_Controller $this->buildDropdownEntry("studienblatt", "Studienblatt", "xml=studienblatt.xml.php&xsl=Studienblatt&output=pdf&ss=$studiensemester_kurzbz", $uid, 60, null), $this->buildDropdownEntry("studienblatt_eng", "Studienblatt Englisch", "xml=studienblatt.xml.php&xsl=StudienblattEng&output=pdf&ss=$studiensemester_kurzbz", $uid, 61, null), - // Studienerfolg Menüs automatisch $this->buildStudienerfolgSubmenu("de", $uid, $semArray, $studiensemester_kurzbz), $this->buildStudienerfolgSubmenu("en", $uid, $semArray, $studiensemester_kurzbz), $this->buildStudienerfolgSubmenu("de", $uid, $semArray, $studiensemester_kurzbz, true), @@ -617,7 +608,7 @@ class Dokumente extends FHCAPI_Controller "name" => "Verwaltung des StudierendenStatus", "order" => 110, "data" => [ - $this->buildDropdownEntry("Abmeldung", "Abmeldung", "xml=AntragAbmeldung.xml.php&xsl=AntragAbmeldungl&prestudent_id=$prestudent_id&output=pdf", $uid, null, null), + $this->buildDropdownEntry("Abmeldung", "Abmeldung", "xml=AntragAbmeldung.xml.php&xsl=AntragAbmeldung&prestudent_id=$prestudent_id&output=pdf", $uid, null, null), $this->buildDropdownEntry("Abmeldung durch Stgl", "AntragAbmeldungStgl", "xml=AntragAbmeldungStgl.xml.php&xsl=AntragAbmeldungStgl&prestudent_id=$prestudent_id&output=pdf", $uid, null, null), $this->buildDropdownEntry("Unterbrechung", "Unterbrechung", "xml=AntragUnterbrechung.xml.php&xsl=AntragUnterbrechung&prestudent_id=$prestudent_id&output=pdf", $uid, null, null), $this->buildDropdownEntry("Wiederholung", "Abmeldung durch Ablauf der Wiederholungsfrist", "xml=AntragWiederholung.xml.php&xsl=AntragWiederholung&prestudent_id=$prestudent_id&output=pdf", $uid, null, null), @@ -651,8 +642,11 @@ class Dokumente extends FHCAPI_Controller return $documents || null; } - public function getDocumentDropDownMulti() + public function getDocumentDropDownMulti($studiensemester_kurzbz,$studiengang_kz) { + //permission to create also odt, and doc outputs of certain documents (menu abschlusspruefung) + $hasPermissionOutputformat = $this->permissionlib->isBerechtigt('system/change_outputformat', 's'); + $studentUids = $this->input->get('studentUids'); $prestudentIds = []; @@ -661,134 +655,71 @@ class Dokumente extends FHCAPI_Controller $prestudent_id = $this-> _loadPrestudentFromUid($uid); $prestudentIds[] = $prestudent_id; } - } else { - echo "No prestudent IDs received."; } + else + { + $this->terminateWithError($this->p->t('ui', 'errorMissingValue', ['value' => 'Array StudentUIDs']), self::ERROR_TYPE_GENERAL); + } + + if (!$studiensemester_kurzbz) + $this->terminateWithError($this->p->t('ui', 'errorMissingValue', ['value' => 'Studiensemester']), self::ERROR_TYPE_GENERAL); + if(!$studiengang_kz) + $this->terminateWithError($this->p->t('ui', 'errorMissingValue', ['value' => 'Studiengang_kz']), self::ERROR_TYPE_GENERAL); + $uidString = implode(";", $studentUids); $prestudentIdsString = implode(";", $prestudentIds); + $semArray = $this->_getEntriesStudiensemester(); + $stgTyp = $this->_getStudiengangstyp($studiengang_kz); $documents = [ - [ - "id" => "accountinfo1", - "type" => "documenturl", - "name" => "Accountinfoblatt", - "url" => "pdfExport.php?xml=accountinfoblatt.xml.php&xsl=AccountInfo&output=pdf&uid=" . $uidString, - "scope" => "prestudent" - ], - [ - "id" => "ausbildungsvertrag1_de", - "type" => "documenturl", - "name" => "Ausbildungsvertrag Deutsch", - "url" => "pdfExport.php?xml=ausbildungsvertrag.xml.php&xsl=Ausbildungsver&output=pdf&uid=" . $uidString, - "scope" => "prestudent" - ], - [ - "id" => "ausbildungsvertrag1_en", - "type" => "documenturl", - "name" => "Ausbildungsvertrag Englisch", - "url" => "pdfExport.php?xml=ausbildungsvertrag.xml.php&xsl=AusbVerEng&output=pdf&uid=" . $uidString, - "scope" => "prestudent" - ], - [ - "id" => "submenu_studienerfolg_1", - "type" => "submenu", - "name" => "Studienerfolg", - "data" => [ - [ - "id" => "submenu_studienerfolg_sem1", - "type" => "submenu", - "name" => "Studienerfolg WS2025", - "data" => [ - [ - "id" => "studienerfolg_sem_alle_1", - "type" => "submenu", - "name" => "Studienerfolg WS2025 Alle", - "data" => [ - [ - "id" => "studienerfolg_sem_alle_1_FA", - "type" => "documenturl", - "name" => "Studienerfolg Alle FINANZAMT", - "url" => "pdfExport.php?xml=ausbildungsvertrag.xml.php&xsl=AusbVerEng&output=pdf&uid=" . $uidString, - "scope" => "prestudent" - ], - [ - "id" => "studienerfolg_sem_alle_1_nichtFA", - "type" => "documenturl", - "name" => "Studienerfolg Alle NICHT FINANZAMT", - "url" => "pdfExport.php?xml=ausbildungsvertrag.xml.php&xsl=AusbVerEng&output=pdf&uid=" . $uidString, - "scope" => "prestudent" - ] - ] + $this->buildDropdownEntry("accountinfo", "Accountinfoblatt", "xml=accountinfoblatt.xml.php&xsl=AccountInfo&output=pdf", $uidString, 10, null), + $this->buildDropdownEntry("ausbildungsvertrag", "Ausbildungsvertrag", "xml=ausbildungsvertrag.xml.php&xsl=Ausbildungsver&output=pdf", $uidString, 20, null), + $this->buildDropdownEntry("ausbildungsvertrag_en", "Ausbildungsvertrag Englisch", "xml=ausbildungsvertrag.xml.php&xsl=AusbVerEng&output=pdf", $uidString, 21, null), + $this->buildDropdownEntry("studienbestaetigung", "Studienbestätigung", "xml=student.rdf.php&xsl=Inskription&output=pdf", $uidString, 40, null), + $this->buildDropdownEntry("studienbestaetigung_en", "Studienbestätigung Englisch", "xml=student.rdf.php&xsl=InskriptionEng&output=pdf", $uidString, 41, null), + $this->buildDropdownEntry("zutrittskarte", "Zutrittskarte", "xsl=ZutrittskarteStud&output=pdf&data=$uidString", $uidString,100, "zutrittskarte.php"), + $this->buildDropdownEntry("studienblatt", "Studienblatt", "xml=studienblatt.xml.php&xsl=Studienblatt&output=pdf&ss=$studiensemester_kurzbz", $uidString, 60, null), + $this->buildDropdownEntry("studienblatt_eng", "Studienblatt Englisch", "xml=studienblatt.xml.php&xsl=StudienblattEng&output=pdf&ss=$studiensemester_kurzbz", $uidString, 61, null), + + // Studienerfolg Menüs automatisch + $this->buildStudienerfolgSubmenu("de", $uidString, $semArray, $studiensemester_kurzbz), + $this->buildStudienerfolgSubmenu("en", $uidString, $semArray, $studiensemester_kurzbz), + $this->buildStudienerfolgSubmenu("de", $uidString, $semArray, $studiensemester_kurzbz, true), + $this->buildStudienerfolgSubmenu("en", $uidString, $semArray, $studiensemester_kurzbz, true), - ] - ] - ] - ] - ], [ - "id" => "submenu_studstatus", + "id" => "submenu_studstatus", "type" => "submenu", "name" => "Verwaltung des StudierendenStatus", + "order" => 110, "data" => [ - [ - "id" => "Abmeldung", - "type" => "documenturl", - "name" => "Abmeldung", - "url" => "pdfExport.php?xml=AntragAbmeldung.xml.php&xsl=AntragAbmeldung&output=pdf&uid=" . $uidString, - "scope" => "prestudent" - ], - [ - "id" => "Abmeldung durch Stg", - "type" => "documenturl", - "name" => "AntragAbmeldungStgl", - "url" => "pdfExport.php?xml=AntragAbmeldungStgl.xml.php&xsl=AntragAbmeldungStgl&output=pdf&uid=" . $uidString, - "scope" => "prestudent" - ] + $this->buildDropdownEntry("Abmeldung", "Abmeldung", "xml=AntragAbmeldung.xml.php&xsl=AntragAbmeldung&prestudent_id=$prestudentIdsString&output=pdf", $uidString, null, null), + $this->buildDropdownEntry("Abmeldung durch Stgl", "AntragAbmeldungStgl", "xml=AntragAbmeldungStgl.xml.php&xsl=AntragAbmeldungStgl&prestudent_id=$prestudentIdsString&output=pdf", $uidString, null, null), + $this->buildDropdownEntry("Unterbrechung", "Unterbrechung", "xml=AntragUnterbrechung.xml.php&xsl=AntragUnterbrechung&prestudent_id=$prestudentIdsString&output=pdf", $uidString, null, null), + $this->buildDropdownEntry("Wiederholung", "Abmeldung durch Ablauf der Wiederholungsfrist", "xml=AntragWiederholung.xml.php&xsl=AntragWiederholung&prestudent_id=$prestudentIdsString&output=pdf", $uidString, null, null), ] ], - [ - "id" => "zutrittskarte", - "type" => "documenturl", - "name" => "Zutrittskarte", - "url" => "zutrittskarte.php?xsl=ZutrittskarteStud&output=pdf&data=" . $uidString, - "scope" => "prestudent" - ], - [ - "id" => "zutrittskarte", - "type" => "parameterurl", - "name" => "Zutrittskarte", - "baseurl" => "zutrittskarte.php", - "parameterurl" =>"xsl=ZutrittskarteStud&output=pdf&data=" . $uidString, - "scope" => "prestudent" - ], - [ - "id" => "studienbestaetigung", - "type" => "documenturl", - "name" => "Studienbestätigung", - "url" => "pdfExport.php?xml=ausbildungsvertrag.xml.php&xsl=AusbVerEng&output=pdf&uid=" . $uidString, - "scope" => "prestudent" - ], - [ - "id" => "studienerfolg", - "type" => "documenturl", - "name" => "Studienbestätigung", - "url" => "pdfExport.php?xml=ausbildungsvertrag.xml.php&xsl=AusbVerEng&output=pdf&uid=" . $uidString, - "scope" => "prestudent" - ], + $this->loadDropDownEntriesFinalExam($hasPermissionOutputformat, $stgTyp, $uidString), + + //TODO(Manu) also in Fas multi not working +/* $this->buildDropdownEntry("bescheid", "Bescheid (nur Voransicht)", "xml=abschlusspruefung.rdf.php&xsl_stg_kz=$studiengang_kz&xsl=Bescheid&output=pdf", $uidString, 80, null), + */ + + $this->buildDropdownEntry("diplomasupp", "Diploma Supplement (nur Voransicht)", "xml=diplomasupplement.xml.php&xsl_stg_kz=$studiengang_kz&xsl=DiplSupplement&output=pdf", $uidString, 81, null) ]; -/* Events::trigger('DocumentGenerationDropDownMulti', + Events::trigger('DocumentGenerationDropDownMulti', // passing $menu per reference function & () use (&$documents) { return $documents; }, - $prestudent_id, + $studentUids, $studiensemester_kurzbz, $studiengang_kz - );*/ + ); usort($documents, function ($a, $b) { $orderA = isset($a['order']) ? (int)$a['order'] : PHP_INT_MAX; @@ -796,7 +727,6 @@ class Dokumente extends FHCAPI_Controller return $orderA <=> $orderB; }); - // FireEvent(DocumentGenerationDropDownMulti(&$documents); $this->terminateWithSuccess($documents); @@ -977,9 +907,7 @@ class Dokumente extends FHCAPI_Controller else if ($stgTyp == 'm' || $stgTyp == 'd') $postfix = 'Master'; else - //TODO(Manu) sollte nicht null sein!! -> dropdown wird im Falle von Lehrgängen nicht erstellt - return null; - + return []; $arrayFinalExam = [ 'pruefungsprotokoll' => [ diff --git a/public/js/api/factory/stv/documents.js b/public/js/api/factory/stv/documents.js index 37ec8298b..633afcba1 100644 --- a/public/js/api/factory/stv/documents.js +++ b/public/js/api/factory/stv/documents.js @@ -74,16 +74,15 @@ export default { }; }, getDocumentDropdown(params){ - console.log(params); return { method: 'get', url: 'api/frontend/v1/stv/dokumente/getDocumentDropDown/' + params.prestudent_id + '/' + params.studiensemester_kurzbz + '/' + params.studiengang_kz, }; }, - getDocumentDropdownMulti(studentUids){ + getDocumentDropdownMulti(studentUids, params){ return { method: 'get', - url: 'api/frontend/v1/stv/dokumente/getDocumentDropDownMulti/', + url: 'api/frontend/v1/stv/dokumente/getDocumentDropDownMulti/' + params.studiensemester_kurzbz + '/' + params.studiengang_kz, params: {studentUids} }; } diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Archiv.js b/public/js/components/Stv/Studentenverwaltung/Details/Archiv.js index f439d0135..dabb000d1 100644 --- a/public/js/components/Stv/Studentenverwaltung/Details/Archiv.js +++ b/public/js/components/Stv/Studentenverwaltung/Details/Archiv.js @@ -224,14 +224,11 @@ export default { return retval; }, showDropDownMulti(){ - if (this.modelValue.length) { - console.log("started comp property showDropdown Multi " + this.modelValue.length); return true; } return false; } - }, watch: { modelValue() { @@ -308,17 +305,18 @@ export default { .catch(this.$fhcAlert.handleSystemError); if (this.modelValue.length) { - console.log("multi" + this.modelValue.length); - console.log(this.studentUids); + const params = { + studiensemester_kurzbz: this.currentSemester, + studiengang_kz: this.stg_kz + }; this.$api - .call(ApiStvDocuments.getDocumentDropdownMulti(this.studentUids)) + .call(ApiStvDocuments.getDocumentDropdownMulti(this.studentUids, params)) .then(result => { console.log(result); this.documentDropdownObject = result; }) .catch(this.$fhcAlert.handleSystemError); } else { - console.log("single"); const params = { prestudent_id: this.modelValue.prestudent_id, studiensemester_kurzbz: this.currentSemester, diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Archiv/DocumentDropdown.js b/public/js/components/Stv/Studentenverwaltung/Details/Archiv/DocumentDropdown.js index 215a1f1ca..001a45ed8 100644 --- a/public/js/components/Stv/Studentenverwaltung/Details/Archiv/DocumentDropdown.js +++ b/public/js/components/Stv/Studentenverwaltung/Details/Archiv/DocumentDropdown.js @@ -34,7 +34,6 @@ export default { printDokument(url, scope){ //TODO Manu(check if logic not in content (Zutrittkarte also in content folder)) let linkToPdf = this.cisRoot + 'content/' + url; - console.log("in print " + linkToPdf + " scope" + scope); window.open(linkToPdf, '_blank'); } }, @@ -42,71 +41,57 @@ export default {
- -