diff --git a/.gitignore b/.gitignore index 760cf08..0633aaf 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,4 @@ /CLAUDE.md /config/reference.php +.claude/ diff --git a/CHANGELOG.md b/CHANGELOG.md index 44863eb..7a0b77d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,9 @@ See [keep a changelog](https://keepachangelog.com/en/1.0.0/) for information abo ## [Unreleased] +- [PR-53](https://github.com/itk-dev/aapodwalk_api/pull/53) + Update guidelines for attaching media to POIs + ## [1.0.2] - 2026-05-21 - [PR-54](https://github.com/itk-dev/aapodwalk_api/pull/54) @@ -20,6 +23,8 @@ See [keep a changelog](https://keepachangelog.com/en/1.0.0/) for information abo ## [1.0.1] - 2025-23-06 +- [PR-42](https://github.com/itk-dev/aapodwalk_api/pull/42) + Upgraded Symfony from 7.2 to 7.4 LTS - [PR-41](https://github.com/itk-dev/aapodwalk_api/pull/41) Security Updates @@ -82,7 +87,3 @@ See [keep a changelog](https://keepachangelog.com/en/1.0.0/) for information abo - Added order param to PointOfInterest. - Added centerlatitude, centerlongitude, zoom, partcount and totalduration to route. - Add proximity to point of interest, that allows for setting an unlockable distance in meters. - -[Unreleased]: https://github.com/itk-dev/aapodwalk_api/compare/1.0.2...HEAD -[1.0.2]: https://github.com/itk-dev/aapodwalk_api/compare/1.0.0...1.0.2 -[1.0.0]: https://github.com/itk-dev/aapodwalk_api/releases/tag/1.0.0 diff --git a/assets/styles/admin.css b/assets/styles/admin.css index de57d3a..747b9ba 100644 --- a/assets/styles/admin.css +++ b/assets/styles/admin.css @@ -34,21 +34,43 @@ } /* Show label and inputs above eachother instead for inline when in collection */ -.form-group.field-collection.accordion { - .accordion-item { - .form-group { - display: block; +.form-group.field-collection { + .accordion-item .accordion-body .form-group { + display: block; - > label { - margin: 0; - padding: 0 0 8px; - inline-size: initial; - } + > label { + margin: 0; + padding: 0 0 8px; + inline-size: initial; } } .accordion-button { padding: 8px 7px; } + + /* Keep the move/delete buttons inline with the accordion headline */ + .accordion-header { + display: flex; + align-items: center; + padding-inline-end: 0; + + .accordion-button { + flex: 1 1 auto; + width: auto; + } + + .accordion-actions { + display: flex; + align-items: center; + flex-shrink: 0; + gap: 4px; + padding-inline-end: 8px; + } + + .field-collection-delete-button { + position: static; + } + } } .ea-index { diff --git a/config/services.yaml b/config/services.yaml index b88cdb8..bff12c7 100644 --- a/config/services.yaml +++ b/config/services.yaml @@ -10,38 +10,19 @@ parameters: media_processor.options: # Template are processed in the defined order; the first one with a matching pattern will be used. templates: - - name: 'Videotool (audio)' + - name: 'MP3 audio' help: en: | - Insert "direkte link til playeren", e.g. https://media.videotool.dk/?vn=467_2024120710215424183468967435 + Use the "Kopier download link til lydfil i MP3" button from the Videotool admin (under "Del download links") to copy a direct MP3 download link, then paste it here. + Videotool: Del download links — Kopier download link til lydfil i MP3 da: | - Indsæt "direkte link til playeren", fx https://media.videotool.dk/?vn=467_2024120710215424183468967435 - pattern: "~^https://media.videotool.dk/?\\?vn=(?P[^&#]+)&is_audio=1$~" + Brug knappen "Kopier download link til lydfil i MP3" i Videotool-administrationen (under "Del download links") til at kopiere et direkte MP3-downloadlink, og indsæt det her. + Videotool: Del download links — Kopier download link til lydfil i MP3 + pattern: '~^https?://~i' template: >- -
- -
- - - name: 'Videotool (video)' - help: | - Indsæt "direkte link til playeren", fx https://media.videotool.dk/?vn=467_2024120710155950260322839288 - pattern: "~^https://media.videotool.dk/?\\?vn=(?P[^&#]+)$~" - template: >- -
- -
+ services: # default configuration for services in *this* file diff --git a/public/images/videotool-mp3-download-link.png b/public/images/videotool-mp3-download-link.png new file mode 100644 index 0000000..fcd7110 Binary files /dev/null and b/public/images/videotool-mp3-download-link.png differ diff --git a/src/Controller/Admin/PointOfInterestCrudController.php b/src/Controller/Admin/PointOfInterestCrudController.php index a830563..bf1c0a1 100644 --- a/src/Controller/Admin/PointOfInterestCrudController.php +++ b/src/Controller/Admin/PointOfInterestCrudController.php @@ -10,7 +10,6 @@ use App\Service\EasyAdminHelper; use EasyCorp\Bundle\EasyAdminBundle\Config\Crud; use EasyCorp\Bundle\EasyAdminBundle\Field\AssociationField; -use EasyCorp\Bundle\EasyAdminBundle\Field\BooleanField; use EasyCorp\Bundle\EasyAdminBundle\Field\DateField; use EasyCorp\Bundle\EasyAdminBundle\Field\IdField; use EasyCorp\Bundle\EasyAdminBundle\Field\NumberField; @@ -42,11 +41,13 @@ public function configureCrud(Crud $crud): Crud public function configureFields(string $pageName): iterable { $route = AssociationField::new('route', new TranslatableMessage('Route', [], 'admin')) - ->setRequired(true); + ->setRequired(true) + ->setColumns(12); $position = NumberField::new('poiOrder', new TranslatableMessage('Order', [], 'admin')) ->addCssClass('route-point-position') - ->setRequired(false); + ->setRequired(false) + ->setColumns(12); // Check if this controller is being used in a collection. if ($this->getContext()?->getEntity()?->getInstance() instanceof Route) { @@ -80,14 +81,10 @@ public function configureFields(string $pageName): iterable $mediaUrlLabel = new TranslatableMessage('Media URL', [], 'admin'); yield UrlField::new('mediaUrl', $mediaUrlLabel) + ->setHelp(new TranslatableMessage('Insert a direct mp3 download link to the audio file (not a Videotool iframe/player link).', [], 'admin')) ->setFormTypeOptions([ 'block_name' => 'mediaUrl', ])->setColumns(12); - yield BooleanField::new('mediaIsAudio', new TranslatableMessage('Is audio?', [], 'admin')) - ->setHelp(new TranslatableMessage('Check if "{media_url}" points to an audio file.', [ - 'media_url' => $mediaUrlLabel, - ], 'admin')) - ->renderAsSwitch(false)->setColumns(12); yield TextareaField::new('subtitles', new TranslatableMessage('Subtitles', [], 'admin')) ->setRequired(true) diff --git a/translations/admin+intl-icu.da.xlf b/translations/admin+intl-icu.da.xlf index 8fb52ab..55bd8dc 100644 --- a/translations/admin+intl-icu.da.xlf +++ b/translations/admin+intl-icu.da.xlf @@ -237,10 +237,6 @@ Media URL Medie-url - - Is audio? - Er lyd? - Media preview Forhåndsvisning @@ -253,9 +249,9 @@ Information on media URLs Information om medie-url’er - - Check if "{media_url}" points to an audio file. - Marker hvis "{media_url}" peger på en lydfil. + + Insert a direct mp3 download link to the audio file (not a Videotool iframe/player link). + Indsæt et direkte mp3-downloadlink til lydfilen (ikke et Videotool iframe/afspiller-link). Add new point diff --git a/translations/admin+intl-icu.en.xlf b/translations/admin+intl-icu.en.xlf index 3d87d5d..956ec03 100644 --- a/translations/admin+intl-icu.en.xlf +++ b/translations/admin+intl-icu.en.xlf @@ -237,10 +237,6 @@ Media URL Media URL - - Is audio? - Is audio? - Media preview Media preview @@ -253,9 +249,9 @@ Information on media URLs Information on media URLs - - Check if "{media_url}" points to an audio file. - Check if "{media_url}" points to an audio file. + + Insert a direct mp3 download link to the audio file (not a Videotool iframe/player link). + Insert a direct mp3 download link to the audio file (not a Videotool iframe/player link). Add new point