From e16ddcfe47c432cffbbc57d1f69700480b0306de Mon Sep 17 00:00:00 2001 From: int2001 Date: Sat, 21 Mar 2026 17:11:43 +0000 Subject: [PATCH 1/2] Fix CSV-Download at LBA --- application/views/logbookadvanced/index.php | 1 + assets/js/sections/logbookadvanced.js | 18 +++++++++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/application/views/logbookadvanced/index.php b/application/views/logbookadvanced/index.php index 3db48f04c..9dd33e7ea 100644 --- a/application/views/logbookadvanced/index.php +++ b/application/views/logbookadvanced/index.php @@ -906,6 +906,7 @@ $options = json_decode($options); +
diff --git a/assets/js/sections/logbookadvanced.js b/assets/js/sections/logbookadvanced.js index 445333008..27e8a19fe 100644 --- a/assets/js/sections/logbookadvanced.js +++ b/assets/js/sections/logbookadvanced.js @@ -206,6 +206,10 @@ function loadQSOTable(rows) { // Prevent initializing if already a DataTable if ($.fn.DataTable.isDataTable($table)) { + // Remove ALL buttons containers to prevent duplicates + $('#qsoList').prev('.dt-buttons').remove(); + $('#qsoList_wrapper').find('.dt-buttons').remove(); + $('.dt-buttons').remove(); $table.DataTable().clear().destroy(); } @@ -232,14 +236,15 @@ function loadQSOTable(rows) { { targets: $(".antennaelevation-column-sort").index(), type: "numbersort" }, { targets: $(".stationpower-column-sort").index(), type: "numbersort" }, ], - dom: 'Bfrtip', + dom: 'frtip', buttons: [ { extend: 'csv', - className: 'mb-1 btn btn-sm btn-primary', // Bootstrap classes - init: function(api, node, config) { - $(node).removeClass('dt-button').addClass('btn btn-primary'); // Ensure Bootstrap class applies - }, + text: 'CSV', + className: 'mb-1 btn btn-sm btn-primary', + filename: function() { + return 'qso_export_' + new Date().toISOString().slice(0,10); + }, exportOptions: { columns: ':visible:not(:eq(0))', // export all visible except column 4 format: { @@ -275,6 +280,9 @@ function loadQSOTable(rows) { ] }); + // Place buttons in custom container + table.buttons().container().appendTo('#csv-button-container'); + for (i = 0; i < rows.length; i++) { let qso = rows[i]; From 37f901ea9817a0ac29e5caec457a2619fe0ac3bf Mon Sep 17 00:00:00 2001 From: Andreas Kristiansen <6977712+AndreasK79@users.noreply.github.com> Date: Sat, 21 Mar 2026 18:40:22 +0100 Subject: [PATCH 2/2] Fix column data stripping --- assets/js/sections/logbookadvanced.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/js/sections/logbookadvanced.js b/assets/js/sections/logbookadvanced.js index 27e8a19fe..020e3c622 100644 --- a/assets/js/sections/logbookadvanced.js +++ b/assets/js/sections/logbookadvanced.js @@ -257,7 +257,7 @@ function loadQSOTable(rows) { data = data.replace(/<[^>]*>/g, ''); } // then replace Ø with 0 in specific columns - if (column === 1 || column === 2 || column === 3) { + if (column === 1 || column === 2 || column === 3 || column === 4) { // remove a trailing "L" and trim whitespaces data = data.replace(/\s*L\s*$/, '').trim(); if (typeof data === 'string' && data.includes('Ø')) {