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