From 0153364885a481ec9e25875c18fde53ce9282eac Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 15 Sep 2020 18:11:37 +0200 Subject: [PATCH] =?UTF-8?q?Pr=C3=BCfungsprotokoll=20Freigabe:=20passed=20d?= =?UTF-8?q?ata=20to=20controller=20in=20better=20way=20(password=20and=20f?= =?UTF-8?q?reigegeben=20bool=20in=20a=20separate=20object)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controllers/lehre/Pruefungsprotokoll.php | 20 ++++++++++-------- public/js/lehre/pruefungsprotokoll.js | 21 ++++++++++++------- 2 files changed, 25 insertions(+), 16 deletions(-) diff --git a/application/controllers/lehre/Pruefungsprotokoll.php b/application/controllers/lehre/Pruefungsprotokoll.php index d9793ef06..467a7dc71 100644 --- a/application/controllers/lehre/Pruefungsprotokoll.php +++ b/application/controllers/lehre/Pruefungsprotokoll.php @@ -115,9 +115,11 @@ class Pruefungsprotokoll extends Auth_Controller public function saveProtokoll() { $abschlusspruefung_id = $this->input->post('abschlusspruefung_id'); - $data = $this->input->post('protocoldata'); + $freigebendata = $this->input->post('freigebendata'); + $protocoldata = $this->input->post('protocoldata'); - if (isset($abschlusspruefung_id) && is_numeric($abschlusspruefung_id) && isset($data)) + if (isset($abschlusspruefung_id) && is_numeric($abschlusspruefung_id) + && isset($freigebendata['freigeben']) && isset($protocoldata)) { // check permission $berechtigt = $this->_getAbschlusspruefungBerechtigt($abschlusspruefung_id); @@ -125,15 +127,14 @@ class Pruefungsprotokoll extends Auth_Controller $this->outputJsonError(getError($berechtigt)); else { - $freigabe = isset($data['freigabedatum']) && $data['freigabedatum']; + $freigabe = $freigebendata['freigeben'] === 'true'; if ($freigabe) { // Verify password - $password = $data['password']; - unset($data['password']); - if (!isEmptyString($password)) + if (isset($freigebendata['password']) && !isEmptyString($freigebendata['password'])) { + $password = $freigebendata['password']; $result = $this->authlib->checkUserAuthByUsernamePassword($this->_uid, $password); if (isError($result)) { @@ -146,7 +147,8 @@ class Pruefungsprotokoll extends Auth_Controller } } - $data = $this->_prepareAbschlusspruefungDataForSave($data); + $data = $this->_prepareAbschlusspruefungDataForSave($protocoldata, $freigabe); + $result = $this->AbschlusspruefungModel->update($abschlusspruefung_id, $data); if (hasData($result)) @@ -213,7 +215,7 @@ class Pruefungsprotokoll extends Auth_Controller * @param $data * @return array */ - private function _prepareAbschlusspruefungDataForSave($data) + private function _prepareAbschlusspruefungDataForSave($data, $freigabe) { $nullfields = array('uhrzeit', 'endezeit', 'abschlussbeurteilung_kurzbz', 'protokoll'); foreach ($data as $idx => $item) @@ -222,7 +224,7 @@ class Pruefungsprotokoll extends Auth_Controller $data[$idx] = null; } - if (isset($data['freigabedatum']) && $data['freigabedatum']) + if ($freigabe === true) $data['freigabedatum'] = date('Y-m-d'); return $data; diff --git a/public/js/lehre/pruefungsprotokoll.js b/public/js/lehre/pruefungsprotokoll.js index 8cb72cbf6..8af7d6f21 100644 --- a/public/js/lehre/pruefungsprotokoll.js +++ b/public/js/lehre/pruefungsprotokoll.js @@ -10,6 +10,12 @@ $("document").ready(function() { $("#saveProtocolBtn, #freigebenProtocolBtn").click( function() { + + var freigebendata = { + freigeben: false, + password: null + } + var data = { abschlussbeurteilung_kurzbz: $("#abschlussbeurteilung_kurzbz").val(), protokoll: $("#protokoll").val(), @@ -19,11 +25,11 @@ $("document").ready(function() { if ($(this).prop("id") === 'freigebenProtocolBtn') { - data.freigabedatum = true; - data.password = $("#password").val(); + freigebendata.freigeben = true; + freigebendata.password = $("#password").val(); } - var checkFields = Pruefungsprotokoll.checkFields(data, $("#verfCheck").prop('checked')); + var checkFields = Pruefungsprotokoll.checkFields(data, freigebendata, $("#verfCheck").prop('checked')); $("#protocolform td").removeClass('has-error'); if (checkFields.length > 0) { @@ -44,7 +50,7 @@ $("document").ready(function() { return; } - Pruefungsprotokoll.saveProtokoll($("#abschlusspruefung_id").val(),data); + Pruefungsprotokoll.saveProtokoll($("#abschlusspruefung_id").val(), freigebendata, data); } ) @@ -79,11 +85,11 @@ var Pruefungsprotokoll = { $("#verfNotice").html(FHC_PhrasesLib.t("abschlusspruefung", "verfNotice")); } }, - checkFields: function(data, verfChecked) + checkFields: function(data, freigebendata, verfChecked) { var errors = []; - if (data.abschlussbeurteilung_kurzbz == "" && data.freigabedatum === true && verfChecked) + if (data.abschlussbeurteilung_kurzbz == "" && freigebendata.freigeben === true && verfChecked) errors.push({"abschlussbeurteilung_kurzbz": FHC_PhrasesLib.t("abschlusspruefung", "abschlussbeurteilungLeer")}); var zeitregex = /^[0-2][0-9]:[0-5][0-9]$/; @@ -111,12 +117,13 @@ var Pruefungsprotokoll = { }, // ajax calls // ----------------------------------------------------------------------------------------------------------------- - saveProtokoll: function(abschlusspruefung_id, data) + saveProtokoll: function(abschlusspruefung_id, freigeben, data) { FHC_AjaxClient.ajaxCallPost( CALLED_PATH + '/saveProtokoll', { abschlusspruefung_id: abschlusspruefung_id, + freigebendata: freigeben, protocoldata: data }, {