This website requires JavaScript.
ff3484466b
fix(songs): resolve seven song/service editing bugs
master
Thorsten Bus
2026-05-31 21:39:44 +0200
ae42b48753
feat(songs): per-song sections + section editing; fix CCLI import bugs
Thorsten Bus
2026-05-31 14:45:47 +0200
e95abbc1e6
feat(export): sermon sequence + moderator injection
Thorsten Bus
2026-05-31 06:30:25 +0200
e2d6d813de
test(e2e): nametag name override fields + namenseinblender settings
Thorsten Bus
2026-05-31 05:03:55 +0200
4606bb26d6
fix(e2e): correct auth path + strict selector for Namenseinblender
Thorsten Bus
2026-05-31 05:01:38 +0200
078811e959
fix(ui): remove unused usePage import in ServiceImagePanel
Thorsten Bus
2026-05-31 04:42:35 +0200
ec275ec026
docs: keyvisual/background/nametag features
Thorsten Bus
2026-05-31 04:35:09 +0200
c544f1db60
test: full playlist export assertions
Thorsten Bus
2026-05-31 04:32:47 +0200
45221ced32
test(e2e): image upload + detail page
Thorsten Bus
2026-05-31 04:20:54 +0200
b36ed6e221
feat(ui): name overrides + namenseinblender setting
Thorsten Bus
2026-05-31 03:41:24 +0200
f948b5665c
feat(ui): keyvisual/background panels
Thorsten Bus
2026-05-31 03:38:22 +0200
edceebb2f8
feat(service): finalize snapshot + sync protection
Thorsten Bus
2026-05-31 02:33:32 +0200
929bda2018
feat(export): sermon sequence + moderator injection
Thorsten Bus
2026-05-31 01:58:08 +0200
bb877d16c6
feat(export): nametag slide builder
Thorsten Bus
2026-05-31 00:48:46 +0200
a19c967594
feat(export): keyvisual fallback slides
Thorsten Bus
2026-05-31 00:43:59 +0200
196657b52b
feat(export): background layer on song/sermon slides
Thorsten Bus
2026-05-31 00:37:23 +0200
d2193bb3b2
feat(service): moderator/preacher name resolution
Thorsten Bus
2026-05-31 00:20:33 +0200
b31f21959f
feat(service): keyvisual/background upload + scope choice
Thorsten Bus
2026-05-31 00:15:08 +0200
1ce30b76e3
feat(service): lazy image resolver
Thorsten Bus
2026-05-31 00:08:50 +0200
38e79553eb
feat(settings): namenseinblender macro + default image settings
Thorsten Bus
2026-05-31 00:04:49 +0200
7de25b7423
docs: add T3 evidence and learnings
Thorsten Bus
2026-05-31 00:01:51 +0200
6061e4c4dd
feat(service): add image columns and overrides
Thorsten Bus
2026-05-31 00:01:24 +0200
73a523d0e1
feat(images): cover-fit conversion mode
Thorsten Bus
2026-05-30 23:56:05 +0200
0a345aa3b2
fix(docker): remove Node.js from production stage; add public-build asset sync pattern
Thorsten Bus
2026-05-11 13:37:58 +0200
e7ad1b3cce
chore: commit pint style fix, CCLI-API.md planning doc, and npm lock update
Thorsten Bus
2026-05-11 11:00:50 +0200
f25715a4fc
fix(sanctum): add pp-planer.ddev.site to stateful domains for DDEV dev environment
Thorsten Bus
2026-05-11 10:55:26 +0200
8a2e250f14
fix(ccli): remove empty if block in CcliPasteParser constructor
Thorsten Bus
2026-05-11 10:47:10 +0200
73a9c18a10
docs(ccli): add CCLI import section to AGENTS.md
Thorsten Bus
2026-05-11 10:37:31 +0200
03fdfac3d3
test(e2e): add CCLI paste import, bookmarklet, and translation pairing e2e tests
Thorsten Bus
2026-05-11 10:36:44 +0200
f2b10a4cd7
feat(settings): add CCLI section with bookmarklet installer and default language
Thorsten Bus
2026-05-11 10:31:22 +0200
3ec25bf70b
feat(ccli): add bookmarklet redirect import page
Thorsten Bus
2026-05-11 10:29:52 +0200
d77eb6ad1e
feat(translate): accept prefilled translation from CCLI pairing
Thorsten Bus
2026-05-11 10:29:52 +0200
b0320fbef5
feat(ccli): integrate CCLI buttons in ArrangementDialog and SongDB Index
Thorsten Bus
2026-05-11 10:29:52 +0200
3020800acb
feat(ccli): add CcliPasteDialog component
Thorsten Bus
2026-05-11 10:26:10 +0200
35d3298251
feat(ccli): add CcliPasteController endpoints
Thorsten Bus
2026-05-11 09:23:11 +0200
cd0a72124d
feat(ccli): serve CCLI bookmarklet JS
Thorsten Bus
2026-05-10 19:34:30 +0200
cd44d6289c
feat(ccli): add CcliTranslationPairingService
Thorsten Bus
2026-05-10 19:02:10 +0200
091e00f255
feat(ccli): add CcliImportService for song upsert
Thorsten Bus
2026-05-10 18:56:38 +0200
e4e5df912e
fix(ccli): parse common CCLI metadata
Thorsten Bus
2026-05-10 18:54:33 +0200
9412ca71c9
feat(ccli): implement CcliPasteParser parsing logic
Thorsten Bus
2026-05-10 18:49:18 +0200
55a3ea3df8
feat(ccli): scaffold CcliPasteParser service
Thorsten Bus
2026-05-10 18:42:21 +0200
85608f774d
feat(settings): add default translation language setting
Thorsten Bus
2026-05-10 18:38:14 +0200
73b7afcc2f
feat(songs): track CCLI import metadata on songs table
Thorsten Bus
2026-05-10 18:33:24 +0200
fc2060b926
docs(ccli): add verification evidence
Thorsten Bus
2026-05-10 18:28:27 +0200
5c590eda9e
feat(ccli): add section-label constants and language mapping
Thorsten Bus
2026-05-10 18:28:18 +0200
02de6b03c0
test(ccli): add fixture corpus for CCLI paste parser
Thorsten Bus
2026-05-10 18:24:29 +0200
a10068e783
add sisyphus notepad changes
Thorsten Bus
2026-05-04 07:41:39 +0200
eee35722fb
fix(export): inject macros for information/moderation/sermon/agenda_item parts
Thorsten Bus
2026-05-04 06:48:17 +0200
84adf2b6fb
fix: add hidden-label warning badge, use null color fallback in ProImportService
Thorsten Bus
2026-05-04 06:41:05 +0200
41d4bfe2b7
fix: rename song_group_id to label_id in Vue, add data-testid to MacroIcon, fix Pint style
Thorsten Bus
2026-05-04 06:33:04 +0200
6d83b5f38c
feat(service-edit): macro icon + Anpassen/Standard flow on service edit page
Thorsten Bus
2026-05-04 00:37:05 +0200
444e6704c5
feat(components): add MacroIcon badge component with count and warning indicator
Thorsten Bus
2026-05-04 00:30:28 +0200
c714f30647
refactor(vue): update ArrangementConfigurator and ArrangementDialog to use label_id
Thorsten Bus
2026-05-04 00:28:49 +0200
b88ae3e918
feat(settings): SettingsController passes assignments, macros, labels, collections to Settings page
Thorsten Bus
2026-05-04 00:26:56 +0200
f494a8a0d7
feat(settings): add LabelImport, MacroImport, MacroAssignments, MacroPicker, LabelPicker components
Thorsten Bus
2026-05-04 00:25:57 +0200
c1cb9bf820
feat(settings): restructure Settings.vue into sidebar layout with 4 submenus + AgendaSettings.vue
Thorsten Bus
2026-05-03 23:50:46 +0200
6ce5b6e018
feat(controllers): add macro/label import + global assignment + service override controllers and routes
Thorsten Bus
2026-05-03 23:17:04 +0200
cef247336e
feat(export): use MacroResolutionService in ProExportService for flexible macro injection
Thorsten Bus
2026-05-03 23:08:22 +0200
81b2a9caf6
feat(services): add LabelsImportService, MacrosImportService, MacroResolutionService
Thorsten Bus
2026-05-03 23:03:32 +0200
bdbf0c65e3
refactor(php): rename SongGroup references throughout controllers/services/tests
Thorsten Bus
2026-05-03 22:55:02 +0200
a1612dc3ef
feat(support): add MacroColorConverter utility
Thorsten Bus
2026-05-03 22:31:44 +0200
846bd12f90
feat(models): add Label/Macro/MacroAssignment/ServiceMacro models and remove SongGroup
Thorsten Bus
2026-05-03 22:27:21 +0200
2a02f65517
test: update DatabaseSchemaTest and WipeLegacySongDataTest for new schema
Thorsten Bus
2026-05-03 22:21:49 +0200
bf153b2906
feat(db): auto-migrate 4 legacy macro settings to new assignment system
Thorsten Bus
2026-05-03 22:20:07 +0200
2b27aa50d5
feat(db)!: drop song_groups, introduce label_id on song_slides, add song_arrangement_labels (BREAKING)
Thorsten Bus
2026-05-03 22:20:01 +0200
a65bf3d595
feat(db): add macro_assignments, service macro override tables, and guarded legacy data wipe
Thorsten Bus
2026-05-03 22:16:46 +0200
09ab4821fc
feat(db): create macros, macro_collections, and junction tables
Thorsten Bus
2026-05-03 22:13:28 +0200
860db0405f
docs: record labels migration verification
Thorsten Bus
2026-05-03 22:10:46 +0200
767e22eac8
feat(db): create labels table for global slide labels
Thorsten Bus
2026-05-03 22:10:35 +0200
e489a984eb
chore(deps): bump PHP to 8.4 and update propresenter/parser with Macro/Label support
Thorsten Bus
2026-05-03 22:07:56 +0200
599b8635c9
feat(dev): migrate local development from Valet to DDEV
dev-with-ddev
Thorsten Bus
2026-05-03 18:46:48 +0200
49d557a184
AI Tryfix for storage 404 problem
dev-with-valet
Thorsten Bus
2026-04-11 16:33:07 +0200
17a8d602ce
add update script for production
Thorsten Bus
2026-04-01 07:41:16 +0200
5eeca25d18
fix: derive Sanctum stateful domain from APP_URL for production
Thorsten Bus
2026-03-31 14:40:56 +0200
0d7e150fe2
fix: add missing CTLog import in ChurchToolsService
Thorsten Bus
2026-03-31 14:18:01 +0200
936d38ecdc
fix: disable ChurchTools API file logging to prevent vendor/ write errors
Thorsten Bus
2026-03-31 13:58:03 +0200
00bffab74f
fix(docker): build Vite assets at boot instead of syncing from image
Thorsten Bus
2026-03-31 11:28:43 +0200
1fb07f40c9
fix(docker): remove Vite hot file at boot to prevent localhost:5173 asset URLs
Thorsten Bus
2026-03-31 11:05:35 +0200
d8da3ba678
chore(docker): remove obsolete entrypoint.sh
Thorsten Bus
2026-03-31 09:20:18 +0200
56cbc4109a
fix(db): enable SQLite WAL mode and busy_timeout for concurrent access
Thorsten Bus
2026-03-31 09:20:03 +0200
2645aff3af
feat(docker): add docker-compose.yml and .dockerignore for production
Thorsten Bus
2026-03-31 09:19:54 +0200
fa10d792fa
feat(docker): add boot-container.sh and init-app.sh lifecycle scripts
Thorsten Bus
2026-03-31 09:17:47 +0200
d4abc61f24
feat(docker): add supervisord, PHP and FPM configs
Thorsten Bus
2026-03-31 09:17:43 +0200
28b2c61e36
feat(docker): add multi-stage Dockerfile with PHP-FPM on Debian bookworm
Thorsten Bus
2026-03-31 09:17:37 +0200
862b9f6c16
fix: build Vite assets in entrypoint for production (APP_ENV=production)
Thorsten Bus
2026-03-30 22:55:47 +0200
04ef0b08c8
refactor: entrypoint with WWWUSER/WWWGROUP for FPM UID/GID mapping
Thorsten Bus
2026-03-30 22:37:02 +0200
3832aaa9d8
fix: chown storage to www-data for FPM write access
Thorsten Bus
2026-03-30 22:35:20 +0200
db15a71378
fix: pipe PHP/FPM errors to stderr for docker compose logs
Thorsten Bus
2026-03-30 19:06:45 +0200
843553b743
change permission of gitignore files
Thorsten Bus
2026-03-30 19:05:08 +0200
dc536dd078
fix: join caddy external network, use expose instead of ports
Thorsten Bus
2026-03-30 18:58:23 +0200
6c7c6c076d
fix: Docker FPM on port 9000, proper healthcheck, runtime dep install
Thorsten Bus
2026-03-30 17:29:32 +0200
07008f3f33
fix: install deps on container start (anonymous volumes mask host dirs)
Thorsten Bus
2026-03-30 16:39:33 +0200
1eb4f1642f
rename cts-work to pp-planer, move Dockerfile to build/, optimize dev scripts
Thorsten Bus
2026-03-30 16:00:02 +0200
af9b8d1882
Merge branch 'cts-presenter-app'
Thorsten Bus
2026-03-30 14:01:10 +0200
1ed8ca3ee7
ignore files
Thorsten Bus
2026-03-30 14:00:08 +0200
af46e1829d
feat: switch propresenter/parser to remote VCS, add local dev toggle script
Thorsten Bus
2026-03-30 13:45:42 +0200
2ba612072f
fix: resolve 17 pre-existing test failures (path refs, Mockery alias mocks)
Thorsten Bus
2026-03-30 12:43:50 +0200
0e3c647cfc
feat: probundle export with media, image upscaling, upload dimension warnings
Thorsten Bus
2026-03-30 10:29:37 +0200
63f40f8364
feat(ui): click left pill scrolls to and highlights right preview
Thorsten Bus
2026-03-29 17:42:55 +0200
b8b92f094e
feat(ui): add MASTER arrangement, fix slide upload/thumbnail bugs, add slide preview with navigation
Thorsten Bus
2026-03-29 17:41:26 +0200