From f118b8799b356f26c1746e5350955092e03661a9 Mon Sep 17 00:00:00 2001 From: Jan-Hendrik Willms <tleilax+studip@gmail.com> Date: Tue, 13 Jun 2023 09:24:57 +0000 Subject: [PATCH] fix and failproof STUDIP.Tables.enhanceSortableTable, fixes #2728 Closes #2728 Merge request studip/studip!1846 --- resources/assets/javascripts/lib/table.js | 8 +++++++- resources/assets/javascripts/mvv.js | 14 +++++++++----- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/resources/assets/javascripts/lib/table.js b/resources/assets/javascripts/lib/table.js index d3f2ab32d77..d9507d93ba8 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 5caba3f8c21..5b3b21f506d 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); -- GitLab