Prüfungsprotokoll Freigabe: passed data to controller in better way (password and freigegeben bool in a separate object)

This commit is contained in:
alex
2020-09-15 18:11:37 +02:00
parent 3309157a99
commit 0153364885
2 changed files with 25 additions and 16 deletions
@@ -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;
+14 -7
View File
@@ -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
},
{