From 35c68d98a141929579b565d11ad8b57e9e7dd99c Mon Sep 17 00:00:00 2001 From: Cris Date: Mon, 6 Mar 2023 13:15:16 +0100 Subject: [PATCH 01/20] Created lehre.tbl_anrechnungszeitraum --- system/dbupdate_3.4.php | 2 + ...27388_anrechnungen_zeitfenster_pflegen.php | 43 +++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 system/dbupdate_3.4/27388_anrechnungen_zeitfenster_pflegen.php diff --git a/system/dbupdate_3.4.php b/system/dbupdate_3.4.php index c33f184a1..3644be124 100644 --- a/system/dbupdate_3.4.php +++ b/system/dbupdate_3.4.php @@ -31,6 +31,7 @@ require_once('dbupdate_3.4/example2.php'); require_once('dbupdate_3.4/26173_index_webservicelog.php'); require_once('dbupdate_3.4/24682_reihungstest_zugangscode_fuer_login.php'); require_once('dbupdate_3.4/17512_fehlercode_constraints.php'); +require_once('dbupdate_3.4/27388_anrechnungen_zeitfenster_pflegen.php'); // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; @@ -145,6 +146,7 @@ $tabellen=array( "lehre.tbl_anrechnungstatus" => array("status_kurzbz", "bezeichnung_mehrsprachig"), "lehre.tbl_anrechnung_anrechnungstatus" => array("anrechnungstatus_id", "anrechnung_id", "status_kurzbz", "datum", "insertamum", "insertvon"), "lehre.tbl_anrechnung_begruendung" => array("begruendung_id","bezeichnung"), + "lehre.tbl_anrechnungszeitraum" => array("anrechnungszeitraum_id","studiensemester_kurzbz","anrechnungstart","anrechnungende", "insertamum", "insertvon"), "lehre.tbl_betreuerart" => array("betreuerart_kurzbz","beschreibung","aktiv"), "lehre.tbl_ferien" => array("bezeichnung","studiengang_kz","vondatum","bisdatum"), "lehre.tbl_lehreinheit" => array("lehreinheit_id","lehrveranstaltung_id","studiensemester_kurzbz","lehrfach_id","lehrform_kurzbz","stundenblockung","wochenrythmus","start_kw","raumtyp","raumtypalternativ","sprache","lehre","anmerkung","unr","lvnr","updateamum","updatevon","insertamum","insertvon","ext_id","lehrfach_id_old","gewicht"), diff --git a/system/dbupdate_3.4/27388_anrechnungen_zeitfenster_pflegen.php b/system/dbupdate_3.4/27388_anrechnungen_zeitfenster_pflegen.php new file mode 100644 index 000000000..8f3164696 --- /dev/null +++ b/system/dbupdate_3.4/27388_anrechnungen_zeitfenster_pflegen.php @@ -0,0 +1,43 @@ +db_query('SELECT 1 FROM lehre.tbl_anrechnungszeitraum LIMIT 1')) +{ + $qry = 'CREATE TABLE lehre.tbl_anrechnungszeitraum + ( + anrechnungszeitraum_id integer, + studiensemester_kurzbz varchar(16) NOT NULL, + anrechnungstart date, + anrechnungende date, + insertamum timestamp default NOW(), + insertvon varchar(32) + ); + + COMMENT ON TABLE lehre.tbl_anrechnungszeitraum IS \'Zeitfenster fuer Anrechnungen pro Studiensemester\'; + COMMENT ON COLUMN lehre.tbl_anrechnungszeitraum.anrechnungstart IS \'Zeitfenster Startdatum\'; + COMMENT ON COLUMN lehre.tbl_anrechnungszeitraum.anrechnungende IS \'Zeitfenster Enddatum\'; + + ALTER TABLE lehre.tbl_anrechnungszeitraum ADD CONSTRAINT pk_anrechnungszeitraum PRIMARY KEY (anrechnungszeitraum_id); + ALTER TABLE lehre.tbl_anrechnungszeitraum ADD CONSTRAINT fk_anrechnungszeitraum_studiensemester_kurzbz FOREIGN KEY (studiensemester_kurzbz) REFERENCES public.tbl_studiensemester(studiensemester_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT; + + CREATE SEQUENCE lehre.seq_anrechnungszeitraum_anrechnungszeitraum_id + START WITH 1 + INCREMENT BY 1 + NO MAXVALUE + NO MINVALUE + CACHE 1; + ALTER TABLE lehre.tbl_anrechnungszeitraum ALTER COLUMN anrechnungszeitraum_id SET DEFAULT nextval(\'lehre.seq_anrechnungszeitraum_anrechnungszeitraum_id\'); + + GRANT SELECT, UPDATE, INSERT, DELETE ON lehre.tbl_anrechnungszeitraum TO web; + GRANT SELECT, UPDATE, INSERT, DELETE ON lehre.tbl_anrechnungszeitraum TO vilesci; + GRANT SELECT, UPDATE ON lehre.seq_anrechnungszeitraum_anrechnungszeitraum_id TO vilesci; + GRANT SELECT, UPDATE ON lehre.seq_anrechnungszeitraum_anrechnungszeitraum_id TO web; + '; + + if(!$db->db_query($qry)) + echo 'lehre.tbl_anrechnungszeitraum: '.$db->db_last_error().'
'; + else + echo ' lehre.tbl_anrechnungszeitraum: Tabelle hinzugefuegt
'; +} \ No newline at end of file From 87a1b3647d93ae38ffeb60b4727d7796a45e4c98 Mon Sep 17 00:00:00 2001 From: Cris Date: Mon, 6 Mar 2023 13:16:27 +0100 Subject: [PATCH 02/20] Created Controller AdminAnrechnung to admin Anrechnungszeitraume Add / Update / Delete Anrechnungszeitraume --- .../lehre/anrechnung/AdminAnrechnung.php | 189 ++++++++++++++++++ 1 file changed, 189 insertions(+) create mode 100644 application/controllers/lehre/anrechnung/AdminAnrechnung.php diff --git a/application/controllers/lehre/anrechnung/AdminAnrechnung.php b/application/controllers/lehre/anrechnung/AdminAnrechnung.php new file mode 100644 index 000000000..2836acb63 --- /dev/null +++ b/application/controllers/lehre/anrechnung/AdminAnrechnung.php @@ -0,0 +1,189 @@ + 'admin:rw', + 'save' => 'admin:rw', + 'edit' => 'admin:rw', + 'delete' => 'admin:rw' + ) + ); + + // Load models + $this->load->model('education/Anrechnung_model', 'AnrechnungModel'); + $this->load->model('education/Anrechnungszeitraum_model', 'AnrechnungszeitraumModel'); + $this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel'); + + // Load libraries + $this->load->library('WidgetLib'); + $this->load->library('PermissionLib'); + $this->load->library('AnrechnungLib'); + + + // Load language phrases + $this->loadPhrases( + array( + 'global', + 'ui', + 'lehre', + 'anrechnung' + ) + ); + + // Load configs + $this->load->config('anrechnung'); + + $this->_setAuthUID(); + + $this->setControllerId(); + } + + public function index() + { + // Set nearest Studiensemester as default + $result = $this->StudiensemesterModel->getNearest(); + $studiensemester_kurzbz = hasData($result) ? getData($result)[0]->studiensemester_kurzbz : ''; + + // Get existing Anrechnungszeitraeume + $this->AnrechnungszeitraumModel->addOrder('anrechnungszeitraum_id', 'DESC'); + $result = $this->AnrechnungszeitraumModel->load(); + $anrechnungszeitraum_arr = hasData($result) ? getData($result) : array(); + + $viewData = array( + 'studiensemester_kurzbz' => $studiensemester_kurzbz, + 'anrechnungszeitraum_arr' => $anrechnungszeitraum_arr + ); + + $this->load->view('lehre/anrechnung/adminAnrechnung.php', $viewData); + } + + /** + * Save new Anrechnungszeitraum. + */ + public function save() + { + $this->_validate($this->input->post()); + + $studiensemester_kurzbz = $this->input->post('studiensemester_kurzbz'); + $anrechnungstart = $this->input->post('anrechnungstart'); + $anrechnungende = $this->input->post('anrechnungende'); + + $result = $this->AnrechnungszeitraumModel->insertAzr($studiensemester_kurzbz, $anrechnungstart, $anrechnungende); + + if (isError($result)) + { + $this->terminateWithJsonError(getError($result)); + } + + if (hasData($result)) + { + $this->outputJsonSuccess(array('anrechnungszeitraum_id' => getData($result))); + } + } + + /** + * Edit Anrechnungszeitraum. + */ + public function edit() + { + $this->_validate($this->input->post()); + + $anrechnungszeitraum_id = $this->input->post('anrechnungszeitraum_id'); + $studiensemester_kurzbz = $this->input->post('studiensemester_kurzbz'); + $anrechnungstart = $this->input->post('anrechnungstart'); + $anrechnungende = $this->input->post('anrechnungende'); + + $result = $this->AnrechnungszeitraumModel->updateAzr( + $anrechnungszeitraum_id, + $studiensemester_kurzbz, + $anrechnungstart, + $anrechnungende + ); + + if (isError($result)) + { + $this->terminateWithJsonError(getError($result)); + } + + if (hasData($result)) + { + $this->outputJsonSuccess(array('anrechnungszeitraum_id' => getData($result))); + } + } + + /** + * Delete Anrechnungszeitraum. + */ + public function delete() + { + $anrechnungszeitraum_id = $this->input->post('anrechnungszeitraum_id'); + + $result = $this->AnrechnungszeitraumModel->deleteAzr($anrechnungszeitraum_id); + + if (isError($result)) + { + $this->terminateWithJsonError(getError($result)); + } + + if (hasData($result)) + { + $this->outputJsonSuccess(array('anrechnungszeitraum_id' => getData($result))); + } + } + + /** + * Validates post parameters. + * + * @param $post + */ + private function _validate($post) + { + $studiensemester_kurzbz = $post['studiensemester_kurzbz']; + $anrechnungstart = $post['anrechnungstart']; + $anrechnungende = $post['anrechnungende']; + + if (isEmptyString($studiensemester_kurzbz) + || isEmptyString($anrechnungstart) + || isEmptyString($anrechnungende)) + { + $this->terminateWithJsonError($this->p->t('ui', 'errorFelderFehlen')); + } + + if ($anrechnungstart > $anrechnungende) + { + $this->terminateWithJsonError($this->p->t('ui', 'errorStartdatumNachEndedatum')); + } + + $result = $this->StudiensemesterModel->load($studiensemester_kurzbz); + $studiensemester = getData($result)[0]; + + if ($anrechnungstart < $studiensemester->start || $anrechnungstart > $studiensemester->ende) + { + $this->terminateWithJsonError($this->p->t('ui', 'errorStartdatumNichtInStudiensemester')); + } + + if ($anrechnungende < $studiensemester->start || $anrechnungende > $studiensemester->ende) + { + $this->terminateWithJsonError($this->p->t('ui', 'errorEndedatumNichtInStudiensemester')); + } + + + } + + /** + * Retrieve the UID of the logged user and checks if it is valid + */ + private function _setAuthUID() + { + $this->_uid = getAuthUID(); + + if (!$this->_uid) show_error('User authentification failed'); + } +} \ No newline at end of file From 727d0b58762990aaa9785114812c856b2b884d30 Mon Sep 17 00:00:00 2001 From: Cris Date: Mon, 6 Mar 2023 13:17:06 +0100 Subject: [PATCH 03/20] Created GUI to admin Anrechnungszeitraume Add / Update / Delete Anrechnungszeitraume --- .../lehre/anrechnung/adminAnrechnung.php | 132 ++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 application/views/lehre/anrechnung/adminAnrechnung.php diff --git a/application/views/lehre/anrechnung/adminAnrechnung.php b/application/views/lehre/anrechnung/adminAnrechnung.php new file mode 100644 index 000000000..bc167eae3 --- /dev/null +++ b/application/views/lehre/anrechnung/adminAnrechnung.php @@ -0,0 +1,132 @@ + $this->p->t('anrechnung', 'neueAnrechnung'), + 'jquery3' => true, + 'jqueryui1' => true, + 'bootstrap5' => true, + 'fontawesome6' => true, + 'ajaxlib' => true, + 'dialoglib' => true, + 'tablesorter2' => true, + 'tabulator4' => true, + 'tablewidget' => true, + 'phrases' => array( + 'anrechnung' => array( + 'anrechnungenVerwalten', + 'anrechnungszeitraumFestlegen', + 'anrechnungszeitraumHinzufuegen', + 'anrechnungszeitraumSpeichern', + 'anrechnungszeitraumStart', + 'anrechnungszeitraumEnde' + ), + 'ui' => array( + 'aktion', + 'geloescht', + 'gespeichert', + 'frageSicherLoeschen' + ), + 'lehre' => array('studiensemester') + ), + 'customJSs' => array( + 'public/js/bootstrapper.js', + 'public/js/lehre/anrechnung/adminAnrechnung.js' + ), + 'customCSSs' => array( + 'public/css/sbadmin2/tablesort_bootstrap.css' + ) +); + +$this->load->view('templates/FHC-Header', $includesArray); +?> + + +
+
+ + + + + +

p->t('anrechnung', 'anrechnungszeitraumFestlegen'); ?>

+ +
+ +
+ + +
+ + + + + + + + + + + + + + + + + + + +
p->t('lehre', 'studiensemester'); ?>p->t('anrechnung', 'anrechnungszeitraumStart'); ?>p->t('anrechnung', 'anrechnungszeitraumEnde'); ?>p->t('ui', 'aktion'); ?>
studiensemester_kurzbz ?>anrechnungstart ?>anrechnungende ?> + + +
+
+ + + +
+
+ +load->view('templates/FHC-Footer', $includesArray); ?> + From d3f88597d973e89aec027c68360d4dcfd43ebdb8 Mon Sep 17 00:00:00 2001 From: Cris Date: Mon, 6 Mar 2023 13:19:15 +0100 Subject: [PATCH 04/20] Created Model Anrechnungszeitraum_model Inserts / Updates / Deletes Anrechnungszeitraum --- .../education/Anrechnungszeitraum_model.php | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 application/models/education/Anrechnungszeitraum_model.php diff --git a/application/models/education/Anrechnungszeitraum_model.php b/application/models/education/Anrechnungszeitraum_model.php new file mode 100644 index 000000000..e6f0f13d3 --- /dev/null +++ b/application/models/education/Anrechnungszeitraum_model.php @@ -0,0 +1,87 @@ +dbTable = 'lehre.tbl_anrechnungszeitraum'; + $this->pk = 'anrechnungszeitraum_id'; + } + + /** + * Save new Anrechnungszeitraum. + * + * @param $studiensemester_kurzbz + * @param $anrechnungstart + * @param $anrechnungende + * @return array|stdClass + */ + public function insertAzr($studiensemester_kurzbz, $anrechnungstart, $anrechnungende) + { + $result = $this->insert(array( + 'studiensemester_kurzbz' => $studiensemester_kurzbz, + 'anrechnungstart' => $anrechnungstart, + 'anrechnungende' => $anrechnungende, + 'insertvon' => getAuthUID() + )); + + if (isError($result)) + { + return error('Fehler bei Anrechnungszeitraum speichern.'); + } + + // Return new anrechnungszeitraum_id + return success($result->retval); + } + + /** + * Delete Anrechnungszeitraum. + * + * @param $anrechnungszeitraum_id + * @return array|stdClass + */ + public function deleteAzr($anrechnungszeitraum_id) + { + $result = $this->delete(array('anrechnungszeitraum_id' => $anrechnungszeitraum_id)); + + if (isError($result)) + { + return error('Fehler bei Anrechnungszeitraum löschen.'); + } + + return success($result->retval); + } + + /** + * Update existing Anrechnungszeitraum. + * + * @param $anrechnungszeitraum_id + * @param $studiensemester_kurzbz + * @param $anrechnungstart + * @param $anrechnungende + * @return array|stdClass + */ + public function updateAzr($anrechnungszeitraum_id, $studiensemester_kurzbz, $anrechnungstart, $anrechnungende) + { + $result = $this->update( + $anrechnungszeitraum_id, + array( + 'studiensemester_kurzbz' => $studiensemester_kurzbz, + 'anrechnungstart' => $anrechnungstart, + 'anrechnungende' => $anrechnungende + ) + ); + + if (isError($result)) + { + return error('Fehler bei Anrechnungszeitraum update.'); + } + + return success($result->retval); + } + +} From f8fb59e80600265cd908e726692f14f59342bc09 Mon Sep 17 00:00:00 2001 From: Cris Date: Mon, 6 Mar 2023 13:21:37 +0100 Subject: [PATCH 05/20] 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 From 9c85877d3d0f0f46fecedbfa035419c12a75b9e9 Mon Sep 17 00:00:00 2001 From: Cris Date: Mon, 6 Mar 2023 13:24:03 +0100 Subject: [PATCH 06/20] Added new phrases .anrechnungenVerwalten .anrechnungszeitraumFestlegen .anrechnungszeitraumHinzufuegen .anrechnungszeitraumSpeichern .anrechnungszeitraumStart .anrechnungszeitraumEnde .errorStartdatumNichtInStudiensemester .errorEndedatumNichtInStudiensemester .errorStartdatumNachEndedatum .frageSicherLoeschen --- system/phrasesupdate.php | 200 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 200 insertions(+) diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index aa87e4cf6..b3c01518a 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -11969,6 +11969,206 @@ Any unusual occurrences ) ) ), + array( + 'app' => 'core', + 'category' => 'anrechnung', + 'phrase' => 'anrechnungenVerwalten', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Anrechnungen verwalten', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Administration of applications.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'anrechnung', + 'phrase' => 'anrechnungszeitraumFestlegen', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Anrechnungszeitraum festlegen', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Set appplication period', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'anrechnung', + 'phrase' => 'anrechnungszeitraumHinzufuegen', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Anrechnungszeitraum hinzufügen', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Add appplication period', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'anrechnung', + 'phrase' => 'anrechnungszeitraumSpeichern', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Anrechnungszeitraum speichern', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Save application period', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'anrechnung', + 'phrase' => 'anrechnungszeitraumStart', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Anrechnungszeitraum Start', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Startdate application', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'anrechnung', + 'phrase' => 'anrechnungszeitraumEnde', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Anrechnungszeitraum Ende', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Enddate application', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'errorStartdatumNichtInStudiensemester', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Das Startdatum liegt außerhalb des gewählten Studiensemesters.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'The startdate is not within the selected study semester.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'errorEndedatumNichtInStudiensemester', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Das Endedatum liegt außerhalb des gewählten Studiensemesters.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'The enddate is not within the selected study semester.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'errorStartdatumNachEndedatum', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Das Startdatum muss VOR dem Endedatum liegen.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'The startdate must be BEFORE the enddate.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'frageSicherLoeschen', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => "Sicher löschen?", + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => "Definitely delete?", + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), array( 'app' => 'core', 'category' => 'ui', From 9e15668c3770ece554d81b6ca111ffdb49925136 Mon Sep 17 00:00:00 2001 From: Cris Date: Mon, 6 Mar 2023 13:25:14 +0100 Subject: [PATCH 07/20] Created page-header class page-header class was dropped since Bootstrap 4. Therefore added to css style --- public/css/sbadmin2/tablesort_bootstrap.css | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/public/css/sbadmin2/tablesort_bootstrap.css b/public/css/sbadmin2/tablesort_bootstrap.css index 3e2574241..1365baf92 100644 --- a/public/css/sbadmin2/tablesort_bootstrap.css +++ b/public/css/sbadmin2/tablesort_bootstrap.css @@ -66,3 +66,10 @@ table.tablesort-hover tr:hover, .tablesort-active { #ui-datepicker-div { z-index: 9999 !important; } + + +.page-header { + padding-bottom: 9px; + margin: 40px 0 20px; + border-bottom: 1px solid #eee; +} From 043f09892a1f0c479a670a72f5f28ee1576f4f03 Mon Sep 17 00:00:00 2001 From: Cris Date: Mon, 6 Mar 2023 15:22:56 +0100 Subject: [PATCH 08/20] Deleted hidden testing field --- public/js/lehre/anrechnung/adminAnrechnung.js | 1 - 1 file changed, 1 deletion(-) diff --git a/public/js/lehre/anrechnung/adminAnrechnung.js b/public/js/lehre/anrechnung/adminAnrechnung.js index aae91fa02..8d63ab1fb 100644 --- a/public/js/lehre/anrechnung/adminAnrechnung.js +++ b/public/js/lehre/anrechnung/adminAnrechnung.js @@ -134,7 +134,6 @@ var adminAnrechnung = { prependRow: function (anrechnungszeitraum_id, studiensemester_kurzbz, anrechnungstart, anrechnungende) { $('#azrTable').prepend($( '' + - '' + anrechnungszeitraum_id + '' + '' + studiensemester_kurzbz + '' + '' + anrechnungstart + '' + '' + anrechnungende + '' + From 479feea8aa154e200cac71789fe910d6f1779976 Mon Sep 17 00:00:00 2001 From: Cris Date: Mon, 6 Mar 2023 15:26:12 +0100 Subject: [PATCH 09/20] =?UTF-8?q?Changed=20way=20of=20check=C3=ADng=20Anre?= =?UTF-8?q?chnungszeitraum?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Changed function isExpired to check Anrechnungszeitraeume of tbl_anrechnungszeitraum instead of using config entries. --- .../lehre/anrechnung/RequestAnrechnung.php | 46 ++++++++----------- 1 file changed, 20 insertions(+), 26 deletions(-) diff --git a/application/controllers/lehre/anrechnung/RequestAnrechnung.php b/application/controllers/lehre/anrechnung/RequestAnrechnung.php index fbaac9b3e..7a8ef3eb6 100644 --- a/application/controllers/lehre/anrechnung/RequestAnrechnung.php +++ b/application/controllers/lehre/anrechnung/RequestAnrechnung.php @@ -80,11 +80,7 @@ class requestAnrechnung extends Auth_Controller $prestudent_id = getData($result)[0]->prestudent_id; // Check if application deadline is expired - $is_expired = self::_isExpired( - $this->config->item('submit_application_start'), - $this->config->item('submit_application_end'), - $studiensemester_kurzbz - ); + $is_expired = $this->_isExpired($studiensemester_kurzbz); // Check if Lehrveranstaltung was already graded with application blocking grades $is_blocked = self::_LVhasBlockingGrades($studiensemester_kurzbz, $lehrveranstaltung_id); @@ -234,32 +230,30 @@ class requestAnrechnung extends Auth_Controller * @return bool True if deadline is expired * @throws Exception */ - private function _isExpired($start, $ende, $studiensemester_kurzbz) + private function _isExpired($studiensemester_kurzbz) { - $this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel'); + $today = new DateTime('today midnight'); - // If start is not given, set to Semesterstart. - if (!isset($start) || isEmptyString($start)) - { - $this->StudiensemesterModel->addSelect('start'); - $result = $this->StudiensemesterModel->load($studiensemester_kurzbz); - $start = getData($result)[0]->start; - } + // Load all Anrechnungszeitfenster for this Studiensemester + $this->load->model('education/Anrechnungszeitraum_model', 'AnrechnungszeitraumModel'); + $result = $this->AnrechnungszeitraumModel->loadWhere(array('studiensemester_kurzbz' => $studiensemester_kurzbz)); - // If ende is not given, set to Semesterende. - if (!isset($ende) || isEmptyString($ende)) - { - $this->StudiensemesterModel->addSelect('ende'); - $result = $this->StudiensemesterModel->load($studiensemester_kurzbz); - $ende = getData($result)[0]->ende; - } + if (hasData($result)) + { + // Loop through Anrechnungszeitfenster + foreach (getData($result) as $azrObj) + { + $start = new DateTime($azrObj->anrechnungstart); + $ende = new DateTime($azrObj->anrechnungende); - $today = new DateTime('today midnight'); - $start = new DateTime($start); - $ende = new DateTime($ende); + // Return false if today is at least within one Anrechnungszeitraum + if (($today >= $start && $today <= $ende)) return false; - // True if expired - return ($today < $start || $today > $ende); + } + } + + // Return true if today is in none Anrechnungszeitraum + return true; } /** From ba31a0b5b0a727271bb2eb9ae50b0c96742df77e Mon Sep 17 00:00:00 2001 From: Cris Date: Tue, 7 Mar 2023 14:06:00 +0100 Subject: [PATCH 10/20] Changed HTML table to Tablewidget --- .../lehre/anrechnung/adminAnrechnung.php | 32 +--- .../lehre/anrechnung/adminAnrechnungData.php | 45 +++++ public/js/lehre/anrechnung/adminAnrechnung.js | 180 ++++++++++-------- 3 files changed, 152 insertions(+), 105 deletions(-) create mode 100644 application/views/lehre/anrechnung/adminAnrechnungData.php diff --git a/application/views/lehre/anrechnung/adminAnrechnung.php b/application/views/lehre/anrechnung/adminAnrechnung.php index bc167eae3..f333b0cdc 100644 --- a/application/views/lehre/anrechnung/adminAnrechnung.php +++ b/application/views/lehre/anrechnung/adminAnrechnung.php @@ -57,31 +57,11 @@ $this->load->view('templates/FHC-Header', $includesArray); - -
- - - - - - - - - - - - - - - - - - - -
p->t('lehre', 'studiensemester'); ?>p->t('anrechnung', 'anrechnungszeitraumStart'); ?>p->t('anrechnung', 'anrechnungszeitraumEnde'); ?>p->t('ui', 'aktion'); ?>
studiensemester_kurzbz ?>anrechnungstart ?>anrechnungende ?> - - -
+ +
+
+ load->view('lehre/anrechnung/adminAnrechnungData.php'); ?> +
@@ -120,7 +100,7 @@ $this->load->view('templates/FHC-Header', $includesArray);
diff --git a/application/views/lehre/anrechnung/adminAnrechnungData.php b/application/views/lehre/anrechnung/adminAnrechnungData.php new file mode 100644 index 000000000..1129fdbbf --- /dev/null +++ b/application/views/lehre/anrechnung/adminAnrechnungData.php @@ -0,0 +1,45 @@ + $query, + 'tableUniqueId' => 'adminAnrechnung', + 'requiredPermissions' => 'admin', + 'datasetRepresentation' => 'tabulator', + 'columnsAliases' => array( + 'AzrID', + ucfirst($this->p->t('lehre', 'studiensemester')), + ucfirst($this->p->t('anrechnung', 'anrechnungszeitraumStart')), + ucfirst($this->p->t('anrechnung', 'anrechnungszeitraumEnde')), + ucfirst($this->p->t('ui', 'bearbeitetAm')), + ucfirst($this->p->t('ui', 'bearbeitetVon')), + ), + 'datasetRepOptions' => '{ + height: func_height(this), + layout: "fitColumns", // fit columns to width of table + //persistentLayout:true, + autoResize: false, // prevent auto resizing of table (false to allow adapting table size when cols are (de-)activated + headerFilterPlaceholder: " ", + index: "anrechnungszeitraum_id", // assign specific column as unique id (important for row indexing) + selectable: false, // allow row selection + //tableWidgetHeader: true, + tableBuilt: function(){ + func_tableBuilt(this); + }, + }', + 'datasetRepFieldsDefs' => '{ + anrechnungszeitraum_id: {visible: false, headerFilter:"input"}, + studiensemester_kurzbz: {headerFilter:"input"}, + anrechnungstart: {headerFilter:"input"}, + anrechnungende: {headerFilter:"input"}, + insertamum: {visible: false, headerFilter:"input"}, + insertvon: {visible: false, headerFilter:"input"} + }' +); + +echo $this->widgetlib->widget('TableWidget', $filterWidgetArray); \ No newline at end of file diff --git a/public/js/lehre/anrechnung/adminAnrechnung.js b/public/js/lehre/anrechnung/adminAnrechnung.js index 8d63ab1fb..c6beaa568 100644 --- a/public/js/lehre/anrechnung/adminAnrechnung.js +++ b/public/js/lehre/anrechnung/adminAnrechnung.js @@ -1,8 +1,61 @@ +// Adds column details +function func_tableBuilt(table) { + table.addColumn( + { + title: "Aktion", + align: "center", + width: 150, + formatter: addActionButtons, + }, false // place column right + ); + +} + +// Returns relative height (depending on screen size) +function func_height(table){ + return $(window).height() * 0.50; +} + +var addActionButtons = function(cell) { + + // Create edit button + var editBtn = document.createElement("button"); + editBtn.type = "button"; + editBtn.innerHTML = ""; + editBtn.classList.add("azrEditBtn"); + editBtn.classList.add("btn"); + editBtn.classList.add("btn-outline-secondary"); + editBtn.addEventListener("click", function(){ + adminAnrechnung.editRow(cell); + }); + + + + // Create delete button + var delBtn= document.createElement("button"); + delBtn.type = "button"; + delBtn.innerHTML = ""; + delBtn.classList.add("azrDeleteBtn"); + delBtn.classList.add("btn"); + delBtn.classList.add("btn-outline-secondary"); + delBtn.classList.add("ms-1"); + delBtn.addEventListener("click", function(){ + adminAnrechnung.deleteRow(cell); + }); + + // Add buttons to cell + var buttonHolder = document.createElement("span"); + buttonHolder.appendChild(editBtn); + buttonHolder.appendChild(delBtn); + + return buttonHolder; +} + $(function () { // Open Modal and set values for insert or update Anrechnungszeitraum $(document).on('click', '.azrOpenModal', function(){ - + // Open Modal $('#azrModal').modal('show'); @@ -25,66 +78,18 @@ $(function () { $('.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(); + // Insert Anrechnungszeitraum + $(document).on('click', '#azrInsertBtn', function(){ 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); - } + // Insert Anrechnungszeitraum + adminAnrechnung.insertAzr(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(); - }); }) @@ -109,13 +114,13 @@ var adminAnrechnung = { { data = FHC_AjaxClient.getData(data); - // Add row on top - adminAnrechnung.prependRow( - data.anrechnungszeitraum_id, - studiensemester_kurzbz, - anrechnungstart, - anrechnungende - ); + // Update row + $('#tableWidgetTabulator').tabulator('addData', [{ + anrechnungszeitraum_id: data.anrechnungszeitraum_id, + studiensemester_kurzbz: studiensemester_kurzbz, + anrechnungstart: anrechnungstart, + anrechnungende: anrechnungende + }], true); // true to add row on top // Close Modal $('#azrModal').modal('hide'); @@ -131,18 +136,24 @@ var adminAnrechnung = { } ); }, - prependRow: function (anrechnungszeitraum_id, studiensemester_kurzbz, anrechnungstart, anrechnungende) { - $('#azrTable').prepend($( - '' + - '' + studiensemester_kurzbz + '' + - '' + anrechnungstart + '' + - '' + anrechnungende + '' + - '' + - '' + - '' + - '' + - '' - )) + editRow: function (cell){ + // Open Modal + $('#azrModal').modal('show'); + + let row = cell.getRow(); + var anrechnungszeitraum_id = row.getData().anrechnungszeitraum_id; + var studiensemester_kurzbz = row.getData().studiensemester_kurzbz; + var anrechnungstart = row.getData().anrechnungstart; + var anrechnungende = row.getData().anrechnungende; + + $('.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'); }, updateAzr: function (anrechnungszeitraum_id, studiensemester_kurzbz, anrechnungstart, anrechnungende) { FHC_AjaxClient.ajaxCallPost( @@ -164,7 +175,12 @@ var adminAnrechnung = { if (FHC_AjaxClient.hasData(data)) { // Update row - adminAnrechnung.updateRow(anrechnungszeitraum_id, studiensemester_kurzbz, anrechnungstart, anrechnungende); + $('#tableWidgetTabulator').tabulator('updateData', [{ + anrechnungszeitraum_id: anrechnungszeitraum_id, + studiensemester_kurzbz: studiensemester_kurzbz, + anrechnungstart: anrechnungstart, + anrechnungende: anrechnungende + }]); // Close Modal $('#azrModal').modal('hide'); @@ -181,12 +197,6 @@ var adminAnrechnung = { } ); }, - 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", @@ -203,6 +213,9 @@ var adminAnrechnung = { if (FHC_AjaxClient.hasData(data)) { + let row = $('#tableWidgetTabulator').tabulator('getRow', anrechnungszeitraum_id); + row.delete(anrechnungszeitraum_id); + // Success message FHC_DialogLib.alertSuccess(FHC_PhrasesLib.t("ui", "geloescht")); @@ -214,5 +227,14 @@ var adminAnrechnung = { } } ); + }, + deleteRow: function (cell){ + if(!confirm(FHC_PhrasesLib.t("ui", "frageSicherLoeschen"))) + { + return; + } + + // Delete Anrechnungszeitraum + adminAnrechnung.deleteAzr(cell.getRow().getData().anrechnungszeitraum_id); } } \ No newline at end of file From c78e715c3e6f0f07a7c86a5bd0d518085d04c96f Mon Sep 17 00:00:00 2001 From: Cris Date: Tue, 7 Mar 2023 14:07:14 +0100 Subject: [PATCH 11/20] Added phrases 'bearbeitetVon', 'bearbeitetAm' --- system/phrasesupdate.php | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index b3c01518a..1518aee59 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -13185,6 +13185,46 @@ array( ) ) ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'bearbeitetVon', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => "bearbeitet von", + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => "edited by", + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'bearbeitetAm', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => "bearbeitet am", + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => "edited on", + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), array( 'app' => 'core', 'category' => 'global', From f8349a2a9b649e53ba9146d45d7b4987cbb7a89b Mon Sep 17 00:00:00 2001 From: Cris Date: Tue, 7 Mar 2023 17:18:21 +0100 Subject: [PATCH 12/20] Changed Bootstrap 5 -> Bootstrap 3 Tablewidget is not working fine with Bootstrap 5 by now. --- .../lehre/anrechnung/adminAnrechnung.php | 75 ++++++++++--------- public/css/sbadmin2/tablesort_bootstrap.css | 9 +-- public/js/lehre/anrechnung/adminAnrechnung.js | 6 +- 3 files changed, 43 insertions(+), 47 deletions(-) diff --git a/application/views/lehre/anrechnung/adminAnrechnung.php b/application/views/lehre/anrechnung/adminAnrechnung.php index f333b0cdc..5b62bbda2 100644 --- a/application/views/lehre/anrechnung/adminAnrechnung.php +++ b/application/views/lehre/anrechnung/adminAnrechnung.php @@ -3,7 +3,7 @@ $includesArray = array( 'title' => $this->p->t('anrechnung', 'neueAnrechnung'), 'jquery3' => true, 'jqueryui1' => true, - 'bootstrap5' => true, + 'bootstrap3' => true, 'fontawesome6' => true, 'ajaxlib' => true, 'dialoglib' => true, @@ -23,7 +23,8 @@ $includesArray = array( 'aktion', 'geloescht', 'gespeichert', - 'frageSicherLoeschen' + 'frageSicherLoeschen', + 'spaltenEinstellen' ), 'lehre' => array('studiensemester') ), @@ -46,57 +47,59 @@ $this->load->view('templates/FHC-Header', $includesArray); +
-

p->t('anrechnung', 'anrechnungszeitraumFestlegen'); ?>

+

p->t('anrechnung', 'anrechnungszeitraumFestlegen'); ?>


-
-
-
+
load->view('lehre/anrechnung/adminAnrechnungData.php'); ?>
-