From f98173fd80a7f7ce0a6d7337925d2ba2783b1c83 Mon Sep 17 00:00:00 2001 From: Roger Rehnelt Date: Sun, 27 Sep 2026 21:24:41 +0200 Subject: Rechnungsarchiv: Liste erst beim Öffnen des Reiters laden MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- views/mods/mod_rechnungen/archive.phtml | 105 ++++++++++++++++++++++++ views/mods/mod_rechnungen/settings_edit.phtml | 113 ++++---------------------- 2 files changed, 119 insertions(+), 99 deletions(-) create mode 100644 views/mods/mod_rechnungen/archive.phtml diff --git a/views/mods/mod_rechnungen/archive.phtml b/views/mods/mod_rechnungen/archive.phtml new file mode 100644 index 0000000..8397037 --- /dev/null +++ b/views/mods/mod_rechnungen/archive.phtml @@ -0,0 +1,105 @@ + +view['arArchive']) === 0) { ?> +

+ + +callMod('wpsg_mod_rechnungen', 'getArchiveKeepUntil', [$year]); + $confirm = wpsg_translate(__('Alle Rechnungsdateien aus #1# endgültig löschen? Die Einträge in den Bestellungen bleiben, die PDFs lassen sich danach nicht mehr herunterladen. Vorher das ZIP sichern!', 'wpsg'), $period); + + if (date('Y-m-d') <= $keep_until) $confirm = wpsg_translate(__('Achtung: Die Aufbewahrungsfrist für #1# läuft noch bis #2#.', 'wpsg'), $period, wpsg_formatTimestamp(strtotime($keep_until), true))."\n\n".$confirm; + + return ''.__('ZIP', 'wpsg').' '. + ''.__('Löschen', 'wpsg').' '; + + }; + +?> + + + [], 'deleted' => []]; + + foreach ($this->view['arArchive'] as $year => $arMonth) { + + $bDeleted = (array_sum(array_column($arMonth, 'files')) === 0 && sizeof(array_filter(array_column($arMonth, 'deleted'))) > 0); + $arArchiveView[($bDeleted)?'deleted':'present'][$year] = $arMonth; + + } + +?> + +

+ + 0) { ?> + + +

+ + $arYear) { if (sizeof($arYear) === 0) continue; ?> +> + + + + + + + + + + + + + + $arMonth) { ?> + + + + + + + + + + + $m) { ?> + > + + + + + + + + + + + + +
0)?size_format(array_sum(array_column($arMonth, 'size')), 1):''; ?>callMod('wpsg_mod_rechnungen', 'getArchiveKeepUntil', [$year])), true); ?>
      0)?size_format($m['size'], 1):''; ?> + 0) echo $archive_actions($year.'/'.$month, $year, $m['files']); ?> + '.wpsg_translate(__('Dateien gelöscht am #1#', 'wpsg'), wpsg_formatTimestamp(strtotime($m['deleted']), true)).''; ?> +
+ + + + diff --git a/views/mods/mod_rechnungen/settings_edit.phtml b/views/mods/mod_rechnungen/settings_edit.phtml index 4ea6a3f..346dc43 100644 --- a/views/mods/mod_rechnungen/settings_edit.phtml +++ b/views/mods/mod_rechnungen/settings_edit.phtml @@ -283,103 +283,7 @@
- view['arArchive']) === 0) { ?> -

- - - callMod('wpsg_mod_rechnungen', 'getArchiveKeepUntil', [$year]); - $confirm = wpsg_translate(__('Alle Rechnungsdateien aus #1# endgültig löschen? Die Einträge in den Bestellungen bleiben, die PDFs lassen sich danach nicht mehr herunterladen. Vorher das ZIP sichern!', 'wpsg'), $period); - - if (date('Y-m-d') <= $keep_until) $confirm = wpsg_translate(__('Achtung: Die Aufbewahrungsfrist für #1# läuft noch bis #2#.', 'wpsg'), $period, wpsg_formatTimestamp(strtotime($keep_until), true))."\n\n".$confirm; - - return ''.__('ZIP', 'wpsg').' '. - ''.__('Löschen', 'wpsg').' '; - - }; - - ?> - - - [], 'deleted' => []]; - - foreach ($this->view['arArchive'] as $year => $arMonth) { - - $bDeleted = (array_sum(array_column($arMonth, 'files')) === 0 && sizeof(array_filter(array_column($arMonth, 'deleted'))) > 0); - $arArchiveView[($bDeleted)?'deleted':'present'][$year] = $arMonth; - - } - - ?> - -

- - 0) { ?> - - -

- - $arYear) { if (sizeof($arYear) === 0) continue; ?> - > - - - - - - - - - - - - - - $arMonth) { ?> - - - - - - - - - - - $m) { ?> - > - - - - - - - - - - - - -
0)?size_format(array_sum(array_column($arMonth, 'size')), 1):''; ?>callMod('wpsg_mod_rechnungen', 'getArchiveKeepUntil', [$year])), true); ?>
      0)?size_format($m['size'], 1):''; ?> - 0) echo $archive_actions($year.'/'.$month, $year, $m['files']); ?> - '.wpsg_translate(__('Dateien gelöscht am #1#', 'wpsg'), wpsg_formatTimestamp(strtotime($m['deleted']), true)).''; ?> -
- - - +

@@ -394,9 +298,20 @@ jQuery(document).ready(function() { + jQuery('[href="#tab4"]').on('shown.bs.tab', function() { + + var oList = jQuery('#wpsg_archive_list'); + + if (oList.data('loaded') === true) return; + oList.data('loaded', true); + + jQuery.get(oList.data('url'), function(html) { oList.html(html); } ); + + } ); + if (location.hash === '#tab4') jQuery('[href="#tab4"]').tab('show'); - jQuery('.wpsg_archive_toggle').on('click', function() { + jQuery('#wpsg_archive_list').on('click', '.wpsg_archive_toggle', function() { var year = jQuery(this).closest('tr').data('year'); var oTable = jQuery(this).closest('table'); @@ -408,7 +323,7 @@ } ); - jQuery('.wpsg_archive_views .button').on('click', function() { + jQuery('#wpsg_archive_list').on('click', '.wpsg_archive_views .button', function() { jQuery('.wpsg_archive_views .button').removeClass('button-primary'); jQuery(this).addClass('button-primary'); -- cgit v1.2.3