From f8fb59e80600265cd908e726692f14f59342bc09 Mon Sep 17 00:00:00 2001 From: Cris Date: Mon, 6 Mar 2023 13:21:37 +0100 Subject: [PATCH] Created js to handle Anrechnungszeitraum Handle: . modals to add / update Anrechnungszeitraume . AJAX calls to add / update / delete --- public/js/lehre/anrechnung/adminAnrechnung.js | 219 ++++++++++++++++++ 1 file changed, 219 insertions(+) create mode 100644 public/js/lehre/anrechnung/adminAnrechnung.js diff --git a/public/js/lehre/anrechnung/adminAnrechnung.js b/public/js/lehre/anrechnung/adminAnrechnung.js new file mode 100644 index 000000000..aae91fa02 --- /dev/null +++ b/public/js/lehre/anrechnung/adminAnrechnung.js @@ -0,0 +1,219 @@ +$(function () { + + // Open Modal and set values for insert or update Anrechnungszeitraum + $(document).on('click', '.azrOpenModal', function(){ + + // Open Modal + $('#azrModal').modal('show'); + + // insert or update + let mode = this.value; + + if (mode === 'insert') + { + let defaultStudiensemester_kurzbz = $('.modal-body #defaultStudiensemester_kurzbz').val(); + + $('.modal-header #azrModalLabel').text('Anrechnungszeitraum hinzufügen'); + + $(".modal").show(); + + $('.modal-body #anrechnungszeitraum_id').val(''); + $('.modal-body #studiensemester').val(defaultStudiensemester_kurzbz).change(); + $('.modal-body #azrStart').val(''); + $('.modal-body #azrEnde').val(''); + + $('.modal-footer #azrInsertOrUpdateBtn').val('insert'); + } + + if (mode === 'update') + { + let row = $(this).closest('tr'); + var anrechnungszeitraum_id = row.data('anrechnungszeitraum_id'); + var studiensemester_kurzbz = row.find('.studiensemester_kurzbz').text(); + var anrechnungstart = row.find('.anrechnungstart').text(); + var anrechnungende = row.find('.anrechnungende').text(); + + $('.modal-header #azrModalLabel').text('Anrechnungszeitraum bearbeiten'); + + $('.modal-body #anrechnungszeitraum_id').val(anrechnungszeitraum_id); + $('.modal-body #studiensemester').val(studiensemester_kurzbz).change(); + $('.modal-body #azrStart').val(anrechnungstart); + $('.modal-body #azrEnde').val(anrechnungende); + + $('.modal-footer #azrInsertOrUpdateBtn').val('update'); + } + }); + + // Insert or update Anrechnungszeitraum + $(document).on('click', '#azrInsertOrUpdateBtn', function(){ + + var anrechnungszeitraum_id = $('.modal-body #anrechnungszeitraum_id').val(); + var studiensemester_kurzbz = $('.modal-body #studiensemester').val(); + var anrechnungstart = $('.modal-body #azrStart').val(); + var anrechnungende = $('.modal-body #azrEnde').val(); + + // insert or update + let mode = this.value; + + if (mode === 'insert') + { + // Insert Anrechnungszeitraum + adminAnrechnung.insertAzr(studiensemester_kurzbz, anrechnungstart, anrechnungende); + } + + if (mode === 'update') + { + // Update Anrechnungszeitraum + adminAnrechnung.updateAzr(anrechnungszeitraum_id, studiensemester_kurzbz, anrechnungstart, anrechnungende); + } + }); + + // Delete Anrechnungszeitraum + $('#azrTable').on('click', '.azrDeleteBtn', function(){ + + if(!confirm(FHC_PhrasesLib.t("ui", "frageSicherLoeschen"))) + { + return; + } + + var anrechnungszeitraum_id = $(this).closest('tr').data('anrechnungszeitraum_id'); + var row = $(this).closest('tr'); + + // Delete Anrechnungszeitraum + adminAnrechnung.deleteAzr(anrechnungszeitraum_id); + + // Remove row + row.remove(); + }); + +}) + +var adminAnrechnung = { + insertAzr: function(studiensemester_kurzbz, anrechnungstart, anrechnungende){ + FHC_AjaxClient.ajaxCallPost( + FHC_JS_DATA_STORAGE_OBJECT.called_path + "/save", + { + studiensemester_kurzbz: studiensemester_kurzbz, + anrechnungstart: anrechnungstart, + anrechnungende: anrechnungende + }, + { + successCallback: function (data, textStatus, jqXHR) + { + if (FHC_AjaxClient.isError(data)) + { + FHC_DialogLib.alertWarning(FHC_AjaxClient.getError(data)); + } + + if (FHC_AjaxClient.hasData(data)) + { + data = FHC_AjaxClient.getData(data); + + // Add row on top + adminAnrechnung.prependRow( + data.anrechnungszeitraum_id, + studiensemester_kurzbz, + anrechnungstart, + anrechnungende + ); + + // Close Modal + $('#azrModal').modal('hide'); + + // Success message + FHC_DialogLib.alertSuccess(FHC_PhrasesLib.t("ui", "gespeichert")); + } + }, + errorCallback: function (jqXHR, textStatus, errorThrown) + { + FHC_DialogLib.alertError(FHC_PhrasesLib.t("ui", "systemfehler")); + } + } + ); + }, + prependRow: function (anrechnungszeitraum_id, studiensemester_kurzbz, anrechnungstart, anrechnungende) { + $('#azrTable').prepend($( + '' + + '' + anrechnungszeitraum_id + '' + + '' + studiensemester_kurzbz + '' + + '' + anrechnungstart + '' + + '' + anrechnungende + '' + + '' + + '' + + '' + + '' + + '' + )) + }, + updateAzr: function (anrechnungszeitraum_id, studiensemester_kurzbz, anrechnungstart, anrechnungende) { + FHC_AjaxClient.ajaxCallPost( + FHC_JS_DATA_STORAGE_OBJECT.called_path + "/edit", + { + anrechnungszeitraum_id: anrechnungszeitraum_id, + studiensemester_kurzbz: studiensemester_kurzbz, + anrechnungstart: anrechnungstart, + anrechnungende: anrechnungende + }, + { + successCallback: function (data, textStatus, jqXHR) + { + if (FHC_AjaxClient.isError(data)) + { + FHC_DialogLib.alertWarning(FHC_AjaxClient.getError(data)); + } + + if (FHC_AjaxClient.hasData(data)) + { + // Update row + adminAnrechnung.updateRow(anrechnungszeitraum_id, studiensemester_kurzbz, anrechnungstart, anrechnungende); + + // Close Modal + $('#azrModal').modal('hide'); + + // Success message + FHC_DialogLib.alertSuccess(FHC_PhrasesLib.t("ui", "gespeichert")); + + } + }, + errorCallback: function (jqXHR, textStatus, errorThrown) + { + FHC_DialogLib.alertError(FHC_PhrasesLib.t("ui", "systemfehler")); + } + } + ); + }, + updateRow: function (anrechnungszeitraum_id, studiensemester_kurzbz, anrechnungstart, anrechnungende){ + let row = $('#azrTable').find('tr').filter('[data-anrechnungszeitraum_id=' + anrechnungszeitraum_id + ']'); + row.find('.studiensemester_kurzbz').text(studiensemester_kurzbz); + row.find('.anrechnungstart').text(anrechnungstart); + row.find('.anrechnungende').text(anrechnungende); + }, + deleteAzr: function(anrechnungszeitraum_id){ + FHC_AjaxClient.ajaxCallPost( + FHC_JS_DATA_STORAGE_OBJECT.called_path + "/delete", + { + anrechnungszeitraum_id: anrechnungszeitraum_id + }, + { + successCallback: function (data, textStatus, jqXHR) + { + if (FHC_AjaxClient.isError(data)) + { + FHC_DialogLib.alertWarning(FHC_AjaxClient.getError(data)); + } + + if (FHC_AjaxClient.hasData(data)) + { + // Success message + FHC_DialogLib.alertSuccess(FHC_PhrasesLib.t("ui", "geloescht")); + + } + }, + errorCallback: function (jqXHR, textStatus, errorThrown) + { + FHC_DialogLib.alertError(FHC_PhrasesLib.t("ui", "systemfehler")); + } + } + ); + } +} \ No newline at end of file