diff --git a/resources/assets/javascripts/lib/table.js b/resources/assets/javascripts/lib/table.js index d3f2ab32d77d9263e2ab746108b2b083e05a4a47..d9507d93ba8919507e27a60e2365460fdd1685cd 100644 --- a/resources/assets/javascripts/lib/table.js +++ b/resources/assets/javascripts/lib/table.js @@ -23,6 +23,12 @@ class Table table = table.get(0); } + // Failproof + if (!table) { + console.error('Called enhanceSortableTable with invalid table object'); + return; + } + await STUDIP.loadChunk('tablesorter'); // Iterate over the header columns and determine sorting mechanism @@ -63,7 +69,7 @@ class Table } // Get additional widgets - const widgets = $(table).data().sortWidgets ?? []; + const widgets = table.dataset.sortWidgets ?? []; // Actually activate table sorter $(table).tablesorter({ diff --git a/resources/assets/javascripts/mvv.js b/resources/assets/javascripts/mvv.js index 5caba3f8c213e79ef71af3061a27b9188cefe874..5b3b21f506da307641d570548951b1f7f749052d 100644 --- a/resources/assets/javascripts/mvv.js +++ b/resources/assets/javascripts/mvv.js @@ -560,7 +560,9 @@ STUDIP.MVV.Content = { jQuery('body').trigger('ajaxLoaded'); jQuery(row).show(); STUDIP.MVV.Sort.init(jQuery('.sortable')); - STUDIP.Table.enhanceSortableTable(row.find('.sortable-table')); + row.find('.sortable-table').each((index, element) => { + STUDIP.Table.enhanceSortableTable(element); + }); }); element.closest('tbody').toggleClass('collapsed not-collapsed'); return false; @@ -808,8 +810,9 @@ STUDIP.MVV.Aufbaustg = { data: $(df).serialize(), type: 'POST', success: function (data) { - $('#mvv-aufbaustg-table').html($(data).html()); - STUDIP.Table.enhanceSortableTable($('#mvv-aufbaustg-table').find('.sortable-table')); + $('#mvv-aufbaustg-table').html($(data).html()).find('.sortable-table').each((index, element) => { + STUDIP.Table.enhanceSortableTable(element); + }); } }) }, 100); @@ -820,8 +823,9 @@ STUDIP.MVV.Aufbaustg = { url: STUDIP.URLHelper.getURL('dispatch.php/studiengaenge/studiengaenge/aufbaustg_table/' + stg_id), type: 'GET', success: function (data) { - $('#mvv-aufbaustg-table').html($(data).html()); - STUDIP.Table.enhanceSortableTable($('#mvv-aufbaustg-table').find('.sortable-table')); + $('#mvv-aufbaustg-table').html($(data).html()).find('.sortable-table').each((index, element) => { + STUDIP.Table.enhanceSortableTable(element); + }); } }) }, 100);