diff --git a/app/Http/Controllers/BulkEventUploadController.php b/app/Http/Controllers/BulkEventUploadController.php index 23f590c6f..aa673010a 100644 --- a/app/Http/Controllers/BulkEventUploadController.php +++ b/app/Http/Controllers/BulkEventUploadController.php @@ -141,10 +141,10 @@ public function import(Request $request): View|RedirectResponse $this->clearMapCache(); - return view('admin.bulk-upload.report', [ - 'created' => $result->created, - 'failures' => $result->failures, - ]); + $request->session()->flash('bulk_upload_report_created', $result->created); + $request->session()->flash('bulk_upload_report_failures', $result->failures); + + return redirect()->route('admin.bulk-upload.report'); } catch (\Throwable $e) { if (Storage::exists($path)) { Storage::delete($path); @@ -156,6 +156,26 @@ public function import(Request $request): View|RedirectResponse } } + /** + * Show the import report (GET). Data is flashed from import() redirect. + * Refreshing this page will redirect back to index as flash data is gone. + */ + public function report(Request $request): View|RedirectResponse + { + $created = $request->session()->get('bulk_upload_report_created'); + $failures = $request->session()->get('bulk_upload_report_failures'); + + if ($created === null && $failures === null) { + return redirect()->route('admin.bulk-upload.index') + ->with('info', 'Report no longer available. Run an import to see a new report.'); + } + + return view('admin.bulk-upload.report', [ + 'created' => $created ?? [], + 'failures' => $failures ?? [], + ]); + } + /** * Clear map cache so new/updated events appear on the map immediately. */ diff --git a/resources/views/admin/bulk-upload/index.blade.php b/resources/views/admin/bulk-upload/index.blade.php index 6d61ee397..0a1afc2f8 100644 --- a/resources/views/admin/bulk-upload/index.blade.php +++ b/resources/views/admin/bulk-upload/index.blade.php @@ -15,6 +15,12 @@ @endif + @if (session('info')) +