Skip to content

Commit ff88e3b

Browse files
Andrey ErdikovAndrey Erdikov
authored andcommitted
[C0-3455] Пофиксил ошибки, добавил controls для video, убрал возможность очистить каталог или файл, добавил валидацию для пустого файла
1 parent c76ac75 commit ff88e3b

File tree

4 files changed

+21
-6
lines changed

4 files changed

+21
-6
lines changed

src/Application/Cms/MediaFile/Service/MediaFilePathResolver.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
class MediaFilePathResolver
1111
{
1212
private const IMAGE_HTML_MASK = '<img src="%s" title="%s"/>';
13-
private const VIDEO_HTML_MASK = '<video><source src="%s"></video>';
13+
private const VIDEO_HTML_MASK = '<video controls><source src="%s"></video>';
1414
private const PDF_HTML_MASK = '<embed src="%s"/>';
1515

1616
/**

src/Application/EventListener/MediaFileUpdatedListener.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,15 @@ private function handleEventArgs(LifecycleEventArgs $args): void
4646
return;
4747
}
4848

49-
$object->setType($this->mediaFileTypeResolver->getMediaFileTypeByFile($object->getFile()));
49+
if (!$object->getFile()) {
50+
return;
51+
}
5052

53+
$object->setType($this->mediaFileTypeResolver->getMediaFileTypeByFile($object->getFile()));
5154
$mapping = $this->fileMappingFactory->fromField($object, 'file');
52-
$object->setStorage(new MediaFileStorage($mapping->getUploadDestination()));
55+
56+
if ($mapping) {
57+
$object->setStorage(new MediaFileStorage($mapping->getUploadDestination()));
58+
}
5359
}
5460
}

src/Resources/config/validator/validation.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,3 +52,6 @@ Skyeng\MarketingCmsBundle\Domain\Entity\MediaFile:
5252
properties:
5353
file:
5454
- File: { maxSize: 20M, mimeTypes: [ image/jpeg, image/png, image/gif, application/pdf, video/mp4 ] }
55+
- NotBlank: ~
56+
catalog:
57+
- NotBlank: ~

src/UI/Controller/Admin/MediaFileCrudController.php

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,11 @@ public function configureCrud(Crud $crud): Crud
7575

7676
public function configureAssets(Assets $assets): Assets
7777
{
78-
return $assets->addJsFile('bundles/marketingcms/ea-copy-actions.js');
78+
$hideMediaCatalogSelectorClearButton = '#MediaFile_catalog + .select2 .select2-selection__clear {display:none;}';
79+
80+
return $assets
81+
->addHtmlContentToHead("<style>$hideMediaCatalogSelectorClearButton</style>")
82+
->addJsFile('bundles/marketingcms/ea-copy-actions.js');
7983
}
8084

8185
public function configureActions(Actions $actions): Actions
@@ -118,8 +122,10 @@ public function getFileHtml(AdminContext $context)
118122
public function configureFields(string $pageName): iterable
119123
{
120124
$title = TextField::new('title', 'Заголовок файла');
121-
$file = VichFileField::new('file', 'Файл');
122-
$catalog = AssociationField::new('catalog', 'Каталог');
125+
$file = VichFileField::new('file', 'Файл')->setFormTypeOptions([
126+
'allow_delete' => false,
127+
]);
128+
$catalog = AssociationField::new('catalog', 'Каталог')->setRequired(true);
123129
$originalName = TextField::new('originalName', 'Название файла');
124130

125131
if (in_array($pageName, [Crud::PAGE_INDEX, Crud::PAGE_DETAIL], true)) {

0 commit comments

Comments
 (0)