feat(services): show CTS event ID tooltip on title hover
BIN
.sisyphus/evidence/final-qa/edge-mobile-api-log.png
Normal file
|
After Width: | Height: | Size: 38 KiB |
BIN
.sisyphus/evidence/final-qa/edge-mobile-services.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
.sisyphus/evidence/final-qa/integration-sermon-slide-visible.png
Normal file
|
After Width: | Height: | Size: 144 KiB |
BIN
.sisyphus/evidence/final-qa/integration-sync-api-log.png
Normal file
|
After Width: | Height: | Size: 80 KiB |
BIN
.sisyphus/evidence/final-qa/integration-upload-sermon.png
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
.sisyphus/evidence/final-qa/task-1-upload-invalid.png
Normal file
|
After Width: | Height: | Size: 70 KiB |
BIN
.sisyphus/evidence/final-qa/task-1-upload-valid.png
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
.sisyphus/evidence/final-qa/task-2-sermon-block.png
Normal file
|
After Width: | Height: | Size: 149 KiB |
BIN
.sisyphus/evidence/final-qa/task-3-sync-error.png
Normal file
|
After Width: | Height: | Size: 95 KiB |
BIN
.sisyphus/evidence/final-qa/task-4-direct-vergangene.png
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
.sisyphus/evidence/final-qa/task-4-toggle-kommende.png
Normal file
|
After Width: | Height: | Size: 95 KiB |
BIN
.sisyphus/evidence/final-qa/task-4-toggle-vergangene.png
Normal file
|
After Width: | Height: | Size: 37 KiB |
BIN
.sisyphus/evidence/final-qa/task-5-desktop-all-blocks.png
Normal file
|
After Width: | Height: | Size: 148 KiB |
BIN
.sisyphus/evidence/final-qa/task-5-mobile-stacked.png
Normal file
|
After Width: | Height: | Size: 119 KiB |
BIN
.sisyphus/evidence/final-qa/task-6-api-log-table.png
Normal file
|
After Width: | Height: | Size: 105 KiB |
BIN
.sisyphus/evidence/final-qa/task-6-error-filter.png
Normal file
|
After Width: | Height: | Size: 68 KiB |
BIN
.sisyphus/evidence/final-qa/task-6-search-filter.png
Normal file
|
After Width: | Height: | Size: 55 KiB |
20
.sisyphus/evidence/task-1-upload-invalid-error.txt
Normal file
|
|
@ -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
|
||||
18
.sisyphus/evidence/task-1-upload-jpg-happy.txt
Normal file
|
|
@ -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
|
||||
BIN
.sisyphus/evidence/task-2-refresh-page-works.png
Normal file
|
After Width: | Height: | Size: 145 KiB |
BIN
.sisyphus/evidence/task-2-sermon-block-rendered.png
Normal file
|
After Width: | Height: | Size: 133 KiB |
8
.sisyphus/evidence/task-3-sync-tests-pass.txt
Normal file
|
|
@ -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
|
||||
|
||||
BIN
.sisyphus/evidence/task-4-archived-toggle.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
.sisyphus/evidence/task-5-consistent-blocks.png
Normal file
|
After Width: | Height: | Size: 145 KiB |
BIN
.sisyphus/evidence/task-5-desktop-layout.png
Normal file
|
After Width: | Height: | Size: 144 KiB |
BIN
.sisyphus/evidence/task-5-mobile-layout.png
Normal file
|
After Width: | Height: | Size: 119 KiB |
1
ref/propresenter-file-api
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
../propresenter-work/
|
||||
|
|
@ -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)
|
||||
|
|
|
|||