diff --git a/.sisyphus/evidence/final-qa/edge-mobile-api-log.png b/.sisyphus/evidence/final-qa/edge-mobile-api-log.png new file mode 100644 index 0000000..1d41ad7 Binary files /dev/null and b/.sisyphus/evidence/final-qa/edge-mobile-api-log.png differ diff --git a/.sisyphus/evidence/final-qa/edge-mobile-services.png b/.sisyphus/evidence/final-qa/edge-mobile-services.png new file mode 100644 index 0000000..f3a074e Binary files /dev/null and b/.sisyphus/evidence/final-qa/edge-mobile-services.png differ diff --git a/.sisyphus/evidence/final-qa/integration-sermon-slide-visible.png b/.sisyphus/evidence/final-qa/integration-sermon-slide-visible.png new file mode 100644 index 0000000..b62eb05 Binary files /dev/null and b/.sisyphus/evidence/final-qa/integration-sermon-slide-visible.png differ diff --git a/.sisyphus/evidence/final-qa/integration-sync-api-log.png b/.sisyphus/evidence/final-qa/integration-sync-api-log.png new file mode 100644 index 0000000..fc7bb13 Binary files /dev/null and b/.sisyphus/evidence/final-qa/integration-sync-api-log.png differ diff --git a/.sisyphus/evidence/final-qa/integration-upload-sermon.png b/.sisyphus/evidence/final-qa/integration-upload-sermon.png new file mode 100644 index 0000000..9aa2ce9 Binary files /dev/null and b/.sisyphus/evidence/final-qa/integration-upload-sermon.png differ diff --git a/.sisyphus/evidence/final-qa/task-1-upload-invalid.png b/.sisyphus/evidence/final-qa/task-1-upload-invalid.png new file mode 100644 index 0000000..55922dc Binary files /dev/null and b/.sisyphus/evidence/final-qa/task-1-upload-invalid.png differ diff --git a/.sisyphus/evidence/final-qa/task-1-upload-valid.png b/.sisyphus/evidence/final-qa/task-1-upload-valid.png new file mode 100644 index 0000000..6016e75 Binary files /dev/null and b/.sisyphus/evidence/final-qa/task-1-upload-valid.png differ diff --git a/.sisyphus/evidence/final-qa/task-2-sermon-block.png b/.sisyphus/evidence/final-qa/task-2-sermon-block.png new file mode 100644 index 0000000..99f58a4 Binary files /dev/null and b/.sisyphus/evidence/final-qa/task-2-sermon-block.png differ diff --git a/.sisyphus/evidence/final-qa/task-3-sync-error.png b/.sisyphus/evidence/final-qa/task-3-sync-error.png new file mode 100644 index 0000000..e654bf3 Binary files /dev/null and b/.sisyphus/evidence/final-qa/task-3-sync-error.png differ diff --git a/.sisyphus/evidence/final-qa/task-4-direct-vergangene.png b/.sisyphus/evidence/final-qa/task-4-direct-vergangene.png new file mode 100644 index 0000000..09d19ac Binary files /dev/null and b/.sisyphus/evidence/final-qa/task-4-direct-vergangene.png differ diff --git a/.sisyphus/evidence/final-qa/task-4-toggle-kommende.png b/.sisyphus/evidence/final-qa/task-4-toggle-kommende.png new file mode 100644 index 0000000..d9a114d Binary files /dev/null and b/.sisyphus/evidence/final-qa/task-4-toggle-kommende.png differ diff --git a/.sisyphus/evidence/final-qa/task-4-toggle-vergangene.png b/.sisyphus/evidence/final-qa/task-4-toggle-vergangene.png new file mode 100644 index 0000000..e55e044 Binary files /dev/null and b/.sisyphus/evidence/final-qa/task-4-toggle-vergangene.png differ diff --git a/.sisyphus/evidence/final-qa/task-5-desktop-all-blocks.png b/.sisyphus/evidence/final-qa/task-5-desktop-all-blocks.png new file mode 100644 index 0000000..6a1ec80 Binary files /dev/null and b/.sisyphus/evidence/final-qa/task-5-desktop-all-blocks.png differ diff --git a/.sisyphus/evidence/final-qa/task-5-mobile-stacked.png b/.sisyphus/evidence/final-qa/task-5-mobile-stacked.png new file mode 100644 index 0000000..779e66e Binary files /dev/null and b/.sisyphus/evidence/final-qa/task-5-mobile-stacked.png differ diff --git a/.sisyphus/evidence/final-qa/task-6-api-log-table.png b/.sisyphus/evidence/final-qa/task-6-api-log-table.png new file mode 100644 index 0000000..840a08f Binary files /dev/null and b/.sisyphus/evidence/final-qa/task-6-api-log-table.png differ diff --git a/.sisyphus/evidence/final-qa/task-6-error-filter.png b/.sisyphus/evidence/final-qa/task-6-error-filter.png new file mode 100644 index 0000000..a668fa8 Binary files /dev/null and b/.sisyphus/evidence/final-qa/task-6-error-filter.png differ diff --git a/.sisyphus/evidence/final-qa/task-6-search-filter.png b/.sisyphus/evidence/final-qa/task-6-search-filter.png new file mode 100644 index 0000000..c8f51b2 Binary files /dev/null and b/.sisyphus/evidence/final-qa/task-6-search-filter.png differ diff --git a/.sisyphus/evidence/task-1-upload-invalid-error.txt b/.sisyphus/evidence/task-1-upload-invalid-error.txt new file mode 100644 index 0000000..790a729 --- /dev/null +++ b/.sisyphus/evidence/task-1-upload-invalid-error.txt @@ -0,0 +1,20 @@ +# Task 1: Upload Invalid File Type - Error Handling + +## Test Scenario +- Attempted to upload test.txt file to Information block +- File type validation should reject .txt files +- Error message should display cleanly without JavaScript crash + +## Results +✓ File type validation triggered correctly +✓ Error message displayed: "test.txt" — Dateityp nicht erlaubt. Nur PNG, JPG, PPT, PPTX und ZIP. +✓ No JavaScript TypeError (fix prevents file.name crash) +✓ Error dismissal button functional +✓ User-friendly German error message shown + +## Evidence +- Page: http://cts-work.test/services/2/edit +- File: test.txt (20 bytes) +- Component: SlideUploader.vue +- Validation: Line 79-81 correctly accesses actualFile.name for extension check +- Error handling: Defensive guard on line 76 prevents wrapper access errors diff --git a/.sisyphus/evidence/task-1-upload-jpg-happy.txt b/.sisyphus/evidence/task-1-upload-jpg-happy.txt new file mode 100644 index 0000000..5780bf2 --- /dev/null +++ b/.sisyphus/evidence/task-1-upload-jpg-happy.txt @@ -0,0 +1,18 @@ +# Task 1: Upload JPG File - Happy Path + +## Test Scenario +- Uploaded test.jpg file to Information block +- File was processed without JavaScript errors +- Vue3Dropzone wrapper {file: File, id: number} was correctly unwrapped + +## Results +✓ File upload initiated successfully +✓ No TypeError on file.name access (was the original bug) +✓ FormData correctly contains raw File object (not wrapper) +✓ Upload request sent to /slides endpoint + +## Evidence +- Page: http://cts-work.test/services/2/edit +- File: test.jpg (16 bytes) +- Component: SlideUploader.vue +- Fix Applied: Lines 76, 79, 81, 87 now use actualFile instead of file wrapper diff --git a/.sisyphus/evidence/task-2-refresh-page-works.png b/.sisyphus/evidence/task-2-refresh-page-works.png new file mode 100644 index 0000000..d8cae3e Binary files /dev/null and b/.sisyphus/evidence/task-2-refresh-page-works.png differ diff --git a/.sisyphus/evidence/task-2-sermon-block-rendered.png b/.sisyphus/evidence/task-2-sermon-block-rendered.png new file mode 100644 index 0000000..a5b4069 Binary files /dev/null and b/.sisyphus/evidence/task-2-sermon-block-rendered.png differ diff --git a/.sisyphus/evidence/task-3-sync-tests-pass.txt b/.sisyphus/evidence/task-3-sync-tests-pass.txt new file mode 100644 index 0000000..b595997 --- /dev/null +++ b/.sisyphus/evidence/task-3-sync-tests-pass.txt @@ -0,0 +1,8 @@ + + PASS Tests\Feature\SyncControllerTest + ✓ sync controller propagiert Fehlermeldung bei Sync-Fehler 0.17s + ✓ sync controller zeigt Erfolgsmeldung bei erfolgreichem Sync 0.01s + + Tests: 2 passed (4 assertions) + Duration: 0.28s + diff --git a/.sisyphus/evidence/task-4-archived-toggle.png b/.sisyphus/evidence/task-4-archived-toggle.png new file mode 100644 index 0000000..e7bf4d5 Binary files /dev/null and b/.sisyphus/evidence/task-4-archived-toggle.png differ diff --git a/.sisyphus/evidence/task-5-consistent-blocks.png b/.sisyphus/evidence/task-5-consistent-blocks.png new file mode 100644 index 0000000..a60df9c Binary files /dev/null and b/.sisyphus/evidence/task-5-consistent-blocks.png differ diff --git a/.sisyphus/evidence/task-5-desktop-layout.png b/.sisyphus/evidence/task-5-desktop-layout.png new file mode 100644 index 0000000..9b595d4 Binary files /dev/null and b/.sisyphus/evidence/task-5-desktop-layout.png differ diff --git a/.sisyphus/evidence/task-5-mobile-layout.png b/.sisyphus/evidence/task-5-mobile-layout.png new file mode 100644 index 0000000..f1f5d95 Binary files /dev/null and b/.sisyphus/evidence/task-5-mobile-layout.png differ diff --git a/ref/propresenter-file-api b/ref/propresenter-file-api new file mode 120000 index 0000000..44e4899 --- /dev/null +++ b/ref/propresenter-file-api @@ -0,0 +1 @@ +../propresenter-work/ \ No newline at end of file diff --git a/test.jpg b/test.jpg new file mode 100644 index 0000000..5075dc9 --- /dev/null +++ b/test.jpg @@ -0,0 +1 @@ +test image data diff --git a/test.txt b/test.txt new file mode 100644 index 0000000..9f4b6d8 --- /dev/null +++ b/test.txt @@ -0,0 +1 @@ +This is a test file diff --git a/tests/Feature/ServiceControllerTest.php b/tests/Feature/ServiceControllerTest.php index c55bebf..686d994 100644 --- a/tests/Feature/ServiceControllerTest.php +++ b/tests/Feature/ServiceControllerTest.php @@ -133,6 +133,7 @@ public function test_services_index_zeigt_nur_heutige_und_kuenftige_services_mit ->component('Services/Index') ->has('services', 2) ->where('services.0.id', $todayService->id) + ->where('services.0.cts_event_id', $todayService->cts_event_id) ->where('services.0.title', 'Gottesdienst Heute') ->where('services.0.songs_total_count', 3) ->where('services.0.songs_mapped_count', 2)