Files
FHC-Core/public/js/lehre/pruefungsprotokoll.js
T

163 lines
6.3 KiB
JavaScript

const CALLED_PATH = FHC_JS_DATA_STORAGE_OBJECT.called_path;
$("document").ready(function() {
// if no abschlussbeurteilung is not filled out, new formular -> verfassungscheck is by default not checked.
// If abschlussbeurteilung is filled out -> already graded, verfassungscheck is checked.
Pruefungsprotokoll.abschlussbeurteilung_kurzbz = $("#abschlussbeurteilung_kurzbz").val();
if (Pruefungsprotokoll.abschlussbeurteilung_kurzbz != '')
$("#verfCheck").prop('checked', true);
Pruefungsprotokoll.checkVerfassung();
$("#saveProtocolBtn, #freigebenProtocolBtn").click(
function() {
var data = {
abschlussbeurteilung_kurzbz: $("#abschlussbeurteilung_kurzbz").val(),
protokoll: $("#protokoll").val(),
uhrzeit: $("#pruefungsbeginn").val(),
endezeit: $("#pruefungsende").val()
}
if ($(this).prop("id") === 'freigebenProtocolBtn')
{
Pruefungsprotokoll.freigebendata.freigeben = true;
Pruefungsprotokoll.freigebendata.password = $("#password").val();
}
else
{
Pruefungsprotokoll.freigebendata.freigeben = false;
Pruefungsprotokoll.freigebendata.password = null;
}
var checkFields = Pruefungsprotokoll.checkFields(data, $("#verfCheck").prop('checked'));
$("#protocolform td").removeClass('has-error');
if (checkFields.length > 0)
{
var errortext = '';
for (var i = 0; i < checkFields.length; i++)
{
var error = checkFields[i];
$.each(error, function(i, n)
{
$("#"+i).closest('td').addClass('has-error');
if (errortext !== '')
errortext += '; ';
errortext += n;
});
}
FHC_DialogLib.alertError(errortext);
return;
}
Pruefungsprotokoll.saveProtokoll($("#abschlusspruefung_id").val(), data);
}
)
$("#verfCheck").change(
Pruefungsprotokoll.checkVerfassung
);
$( ".timepicker" ).timepicker({
showPeriodLabels: false,
hours: {starts: 7,ends: 22},
timeFormat: 'hh:mm',
defaultTime: '',
hourText: FHC_PhrasesLib.t("ui", "stunde"),
minuteText: FHC_PhrasesLib.t("ui", "minute"),
rows: 4
});
})
var Pruefungsprotokoll = {
abschlussbeurteilung_kurzbz: '',
freigebendata: {
freigeben: false,
password: null
},
checkVerfassung: function()
{
// if student not mentally and physically fit (checkbox), no grade can be set
if ($("#verfCheck").prop('checked'))
{
$("#abschlussbeurteilung_kurzbz").prop('disabled', false).val(Pruefungsprotokoll.abschlussbeurteilung_kurzbz);
$("#verfNotice").html("");
}
else
{
$("#abschlussbeurteilung_kurzbz").prop('disabled', true).val(null);
$("#verfNotice").html(FHC_PhrasesLib.t("abschlusspruefung", "verfNotice"));
}
},
checkFields: function(data, verfChecked)
{
var errors = [];
if (data.abschlussbeurteilung_kurzbz == "" && Pruefungsprotokoll.freigebendata.freigeben === true && verfChecked)
errors.push({"abschlussbeurteilung_kurzbz": FHC_PhrasesLib.t("abschlusspruefung", "abschlussbeurteilungLeer")});
var zeitregex = /^[0-2][0-9]:[0-5][0-9]$/;
if (data.uhrzeit == "")
{
if (verfChecked)
errors.push({"pruefungsbeginn": FHC_PhrasesLib.t("abschlusspruefung", "beginnzeitLeer")});
}
else if(!zeitregex.test(data.uhrzeit))
errors.push({"pruefungsbeginn": FHC_PhrasesLib.t("abschlusspruefung", "beginnzeitFormatError")});
if (data.endezeit == "")
{
if (verfChecked)
errors.push({"pruefungsende": FHC_PhrasesLib.t("abschlusspruefung", "endezeitLeer")});
}
else if(!zeitregex.test(data.endezeit))
errors.push({"pruefungsende": FHC_PhrasesLib.t("abschlusspruefung", "endezeitFormatError")});
if (data.uhrzeit > data.endezeit && data.endezeit != "" && data.uhrzeit != "")
errors.push({"pruefungsende": FHC_PhrasesLib.t("abschlusspruefung", "endezeitBeforeError")});
return errors;
},
setSaveButtonDisabled: function()
{
$("#saveProtocolBtn").prop("disabled", true).prop("title", FHC_PhrasesLib.t("abschlusspruefung", "bereitsFreigegeben"));
},
// ajax calls
// -----------------------------------------------------------------------------------------------------------------
saveProtokoll: function(abschlusspruefung_id, data)
{
FHC_AjaxClient.ajaxCallPost(
CALLED_PATH + '/saveProtokoll',
{
abschlusspruefung_id: abschlusspruefung_id,
freigebendata: Pruefungsprotokoll.freigebendata,
protocoldata: data
},
{
successCallback: function(data, textStatus, jqXHR) {
if (FHC_AjaxClient.hasData(data))
{
var dataresponse = FHC_AjaxClient.getData(data);
if (dataresponse.freigabedatum)
{
Pruefungsprotokoll.setSaveButtonDisabled();
$("#freigegebenText").html('&nbsp;&nbsp;' + FHC_PhrasesLib.t("abschlusspruefung", "freigegebenAm") +
'&nbsp;' + dataresponse.freigabedatum)
}
FHC_DialogLib.alertSuccess(FHC_PhrasesLib.t("abschlusspruefung", "pruefungGespeichert"));
}
else if(FHC_AjaxClient.isError(data))
{
FHC_DialogLib.alertError(FHC_AjaxClient.getError(data));
}
},
errorCallback: function() {
FHC_DialogLib.alertError(FHC_PhrasesLib.t("abschlusspruefung", "pruefungSpeichernFehler"));
},
veilTimeout: 0
}
);
}
}