Thorsten Bus
ae42b48753
feat(songs): per-song sections + section editing; fix CCLI import bugs
...
Refactor lyric storage so each song owns its sections instead of sharing
global labels. Adds song_sections (per song+label) owning song_slides;
labels stay global ProPresenter group tags (name/color/macro). Arrangements
now reference sections, so editing/importing one song no longer corrupts
others that share a label name.
- New: song_sections table + migration with safe backfill; SongSection,
SongArrangementSection models; SongSectionController (edit/add/delete
sections, immediate persistence) wired into SongEditModal.
- Refactor writers/readers: CcliImport, ProImport, SongService,
ArrangementController, SongController, ProExport, PDF, Translation
(translation reset now section-scoped), CCLI pairing.
- CCLI import fixes: parse SongSelect copy-icon format (German "Vers"
abbrev + trailing author), fill empty CTS-synced songs instead of
blocking as duplicate, distinct label colors per section kind,
import&edit/existing-song open the edit modal (no 404/405), teleport
paste dialog above assign dialog, preview shows section content,
correct SongSelect search URL, copy-icon instructions.
- Bookmarklet clicks #generalCopyLyricsButton and captures clipboard;
serves correct host from request.
- Export: embed key-visual/background under fixed bundle-relative names.
- Tests updated for the section model; new section + isolation coverage.
2026-05-31 14:45:47 +02:00
Thorsten Bus
1756473701
feat: Laravel 12 scaffolding with Breeze Vue + Docker setup
...
- Install Laravel 12 with Breeze (Vue stack + Inertia.js)
- Configure Pest testing framework (5 tests passing)
- Add Docker multi-stage build (PHP 8.3 + LibreOffice + ImageMagick)
- Create docker-compose.yml with app + node services
- Configure Vite for Docker hot-reload
- Set app locale to 'de' (German)
- Add Vue packages: @vueuse/core, vue-draggable-plus, vue3-dropzone
- Update .env.example with all project vars
- Relocate spike files: src/Cts/ → app/Cts/ (Laravel autoload)
- Tests: 5 passed (14 assertions)
- Vite build: successful
- Docker: app container running
Task: T1 - Laravel Scaffolding + Breeze Vue + Docker
2026-03-01 19:25:32 +01:00
Thorsten Bus
d99ca1e017
chore: verify CTS API token auth and package compatibility
...
- Install 5pm-hdh/churchtools-api v2.1.0
- Verify CTConfig::setApiKey() and authWithLoginToken() both available
- Document API response shapes for /api/events and /api/songs
- Confirm CCLI field present, lyrics available, arrangements included
- TDD: CtsApiSpikeTest with 2 tests, 11 assertions - all passing
- Evidence saved to .sisyphus/evidence/task-0-*.txt
- Findings documented in docs/api-response-shapes.md
Related: Task 0 (Wave 0 - API Spike)
2026-03-01 18:56:03 +01:00