diff --git a/src/structure/components/com_sportsmanager/admin.php b/src/structure/components/com_sportsmanager/admin.php index 120fe0b..66edaa2 100644 --- a/src/structure/components/com_sportsmanager/admin.php +++ b/src/structure/components/com_sportsmanager/admin.php @@ -169,8 +169,10 @@ function exportCSV(array $rows, string $dateiname): void function exportJSON(array $rows, string $dateiname): void { if (empty($rows)) { - // Keine Daten → nichts exportieren - return; + // Keine Daten → Request hier beenden, damit der Aufrufer nicht in + // nachfolgenden Code (z. B. einen CSV-Export mit undefiniertem $rows) durchläuft + http_response_code(204); + exit; } // Dateiname absichern @@ -13168,9 +13170,6 @@ function sportsmanagerExportErgaenzeSpielberichte($db, int $veranstaltungId, arr foreach ($rows as $value) { - $Bestaetigt = []; - $Bestaetigt = []; - $Moderator = []; $value->vorgeschlagen_um = ""; $value->vorgeschlagen_von = ""; $value->bestaetigt_um = ""; @@ -13178,67 +13177,42 @@ function sportsmanagerExportErgaenzeSpielberichte($db, int $veranstaltungId, arr $value->moderator_um = ""; $value->moderator_von = ""; - // Endergebnis vorgeschlagen + // Endergebnis vorgeschlagen / bestätigt (Gegner) / bestätigt (Moderator) $query = " - SELECT t1.eingetragen AS gespeichert_um, + SELECT t1.aktion, + t1.eingetragen AS gespeichert_um, t2.name AS gespeichert_von_user, t3.teamname AS gespeichert_von_team FROM #__sportsmanager_begegnung_historie AS t1 LEFT JOIN #__users AS t2 ON t1.user_id = t2.id LEFT JOIN #__sportsmanager_team AS t3 ON t1.team_id = t3.team_id WHERE begegnung_id = " . $value->ID . " - AND aktion IN (6) - ORDER BY eingetragen DESC LIMIT 1; + AND aktion IN (6,7,8) + ORDER BY eingetragen DESC; "; - $Vorgeschlagen = loadObjectList($db, $query); - if (!empty($Vorgeschlagen)) { - $value->vorgeschlagen_um = $Vorgeschlagen[0]->gespeichert_um; - if (!empty($Vorgeschlagen[0]->gespeichert_von_user)) - $value->vorgeschlagen_von = $Vorgeschlagen[0]->gespeichert_von_user; - if (!empty($Vorgeschlagen[0]->gespeichert_von_team)) - $value->vorgeschlagen_von = $Vorgeschlagen[0]->gespeichert_von_team; - } - - // Endergebnis bestätigen Gegner - $query = " - SELECT t1.eingetragen AS gespeichert_um, - t2.name AS gespeichert_von_user, - t3.teamname AS gespeichert_von_team - FROM #__sportsmanager_begegnung_historie AS t1 - LEFT JOIN #__users AS t2 ON t1.user_id = t2.id - LEFT JOIN #__sportsmanager_team AS t3 ON t1.team_id = t3.team_id - WHERE begegnung_id = " . $value->ID . " - AND aktion IN (7) - ORDER BY eingetragen DESC LIMIT 1; - "; - $Bestaetigt = loadObjectList($db, $query); - if (!empty($Bestaetigt)) { - $value->bestaetigt_um = $Bestaetigt[0]->gespeichert_um; - if (!empty($Bestaetigt[0]->gespeichert_von_user)) - $value->bestaetigt_von = $Bestaetigt[0]->gespeichert_von_user; - if (!empty($Bestaetigt[0]->gespeichert_von_team)) - $value->bestaetigt_von = $Bestaetigt[0]->gespeichert_von_team; - } - - // Endergebnis bestätigen Moderator - $query = " - SELECT t1.eingetragen AS gespeichert_um, - t2.name AS gespeichert_von_user, - t3.teamname AS gespeichert_von_team - FROM #__sportsmanager_begegnung_historie AS t1 - LEFT JOIN #__users AS t2 ON t1.user_id = t2.id - LEFT JOIN #__sportsmanager_team AS t3 ON t1.team_id = t3.team_id - WHERE begegnung_id = " . $value->ID . " - AND aktion IN (8) - ORDER BY eingetragen DESC LIMIT 1; - "; - $Moderator = loadObjectList($db, $query); - if (!empty($Moderator)) { - $value->moderator_um = $Moderator[0]->gespeichert_um; - if (!empty($Moderator[0]->gespeichert_von_user)) - $value->moderator_von = $Moderator[0]->gespeichert_von_user; - if (!empty($Moderator[0]->gespeichert_von_team)) - $value->moderator_von = $Moderator[0]->gespeichert_von_team; + $Historie = loadObjectList($db, $query); + foreach ($Historie as $eintrag) { + if ($eintrag->aktion == 6 && empty($value->vorgeschlagen_um)) { + $value->vorgeschlagen_um = $eintrag->gespeichert_um; + if (!empty($eintrag->gespeichert_von_user)) + $value->vorgeschlagen_von = $eintrag->gespeichert_von_user; + if (!empty($eintrag->gespeichert_von_team)) + $value->vorgeschlagen_von = $eintrag->gespeichert_von_team; + } + if ($eintrag->aktion == 7 && empty($value->bestaetigt_um)) { + $value->bestaetigt_um = $eintrag->gespeichert_um; + if (!empty($eintrag->gespeichert_von_user)) + $value->bestaetigt_von = $eintrag->gespeichert_von_user; + if (!empty($eintrag->gespeichert_von_team)) + $value->bestaetigt_von = $eintrag->gespeichert_von_team; + } + if ($eintrag->aktion == 8 && empty($value->moderator_um)) { + $value->moderator_um = $eintrag->gespeichert_um; + if (!empty($eintrag->gespeichert_von_user)) + $value->moderator_von = $eintrag->gespeichert_von_user; + if (!empty($eintrag->gespeichert_von_team)) + $value->moderator_von = $eintrag->gespeichert_von_team; + } } // Spielbericht @@ -13289,8 +13263,8 @@ function sportsmanagerExportErgaenzeSpielberichte($db, int $veranstaltungId, arr $jInput = Factory::getContainer()->get(SiteApplication::class)->input; $veranstaltungId = $jInput->get('veranstaltungId', 0, 'INT'); - $export = $jInput->get('export', '', 'RAW'); - $exportformat = $jInput->get('exportformat', 'csvdatei', 'RAW'); + $export = $jInput->get('export', '', 'CMD'); + $exportformat = $jInput->get('exportformat', 'csvdatei', 'CMD'); if ($veranstaltungId == 0) die("Missing id!"); @@ -13317,7 +13291,7 @@ function sportsmanagerExportErgaenzeSpielberichte($db, int $veranstaltungId, arr $spielberichte = sportsmanagerExportErgaenzeSpielberichte($db, $veranstaltungId, sportsmanagerExportErmittleSpielplan($db, $veranstaltungId)); if (empty($teams) && empty($spieler) && empty($spielberichte)) { - redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=1', "Zu dieser Auswahl sind keine Daten vorhanden!"); + redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=$veranstaltungId', "Zu dieser Auswahl sind keine Daten vorhanden!"); } $daten = [ @@ -13333,7 +13307,7 @@ function sportsmanagerExportErgaenzeSpielberichte($db, int $veranstaltungId, arr if ($export == "spieler") { $rows = sportsmanagerExportErmittleSpieler($db, $veranstaltungId); if (!isset($rows) or count($rows) == 0) { - redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=1', "Zu dieser Auswahl sind keine Daten vorhanden!"); + redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=$veranstaltungId', "Zu dieser Auswahl sind keine Daten vorhanden!"); } $dateiname = "Spieler " . $veranstaltung->bezeichnung; } @@ -13343,7 +13317,7 @@ function sportsmanagerExportErgaenzeSpielberichte($db, int $veranstaltungId, arr $dateiname = "Spielplan " . $veranstaltung->bezeichnung; if (!isset($rows) or count($rows) == 0) { - redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=1', "Zu dieser Auswahl sind keine Daten vorhanden!"); + redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=$veranstaltungId', "Zu dieser Auswahl sind keine Daten vorhanden!"); } } @@ -13355,7 +13329,7 @@ function sportsmanagerExportErgaenzeSpielberichte($db, int $veranstaltungId, arr if ($export == "teams") { $rows = sportsmanagerExportErmittleTeams($db, $veranstaltungId); if (!isset($rows) or count($rows) == 0) { - redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=1', "Zu dieser Auswahl sind keine Daten vorhanden!"); + redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=$veranstaltungId', "Zu dieser Auswahl sind keine Daten vorhanden!"); } $dateiname = "Teams " . $veranstaltung->bezeichnung; } diff --git a/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php b/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php index 84fa83d..7c088b0 100644 --- a/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php +++ b/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php @@ -12847,6 +12847,7 @@ static function adminVerbandsorganMitglieder($rows,$verbandsorgan): void function anzeige_aktualisieren() { document.getElementById("export_row").style.display = document.adminForm.exportformat.value !== "jsondatei" ? '' : 'none'; } + window.addEventListener("pageshow", anzeige_aktualisieren);