diff --git a/controller/MediaManager.php b/controller/MediaManager.php index 7306bf29b..579270b41 100755 --- a/controller/MediaManager.php +++ b/controller/MediaManager.php @@ -32,6 +32,9 @@ use oat\taoMediaManager\model\fileManagement\FileManagement; use oat\tao\model\Lists\Business\Validation\DependsOnPropertyValidator; use core_kernel_classes_Resource; +use oat\taoMediaManager\model\TaoMediaOntology; +use oat\taoMediaManager\model\transcription\TranscriptionMimeTypesProvider; +use tao_actions_form_Instance; use tao_actions_SaSModule; use tao_helpers_form_FormContainer as FormContainer; use tao_helpers_Uri; @@ -198,6 +201,12 @@ private function getFormInstance( $this->getDependsOnPropertyValidator(), ], ], + tao_actions_form_Instance::RESTRICTED_PROPERTIES => [ + TaoMediaOntology::PROPERTY_TRANSCRIPTION => [ + TaoMediaOntology::PROPERTY_MIME_TYPE => + $this->getPsrContainer()->get(TranscriptionMimeTypesProvider::class)->getAll(), + ] + ] ] ); } diff --git a/manifest.php b/manifest.php index 5c639f2ea..fcbae71bf 100755 --- a/manifest.php +++ b/manifest.php @@ -25,6 +25,7 @@ use oat\taoMediaManager\model\relation\service\MediaContainerProvider; use oat\taoMediaManager\model\sharedStimulus\encoder\SharedStimulusMediaEncoder; use oat\taoMediaManager\scripts\install\AddAssetClassEditorRolePermission; +use oat\taoMediaManager\scripts\install\ConfigFactoryExtension; use oat\taoMediaManager\scripts\install\RegisterMediaRelationEvents; use oat\taoMediaManager\scripts\install\RegisterMediaResourcePreparer; use oat\taoMediaManager\scripts\install\RegisterSharedStimulusMediaEncoder; @@ -181,6 +182,7 @@ [RegisterSharedStimulusMediaEncoder::class, ['service' => SharedStimulusMediaEncoder::class]], AddAssetClassEditorRolePermission::class, RegisterMediaRelationEvents::class, + ConfigFactoryExtension::class ] ], 'update' => 'oat\\taoMediaManager\\scripts\\update\\Updater', diff --git a/migrations/Version202502241322561888_taoMediaManager.php b/migrations/Version202502241322561888_taoMediaManager.php new file mode 100644 index 000000000..9e0acef71 --- /dev/null +++ b/migrations/Version202502241322561888_taoMediaManager.php @@ -0,0 +1,34 @@ +runAction(new ConfigFactoryExtension()); + } + + public function down(Schema $schema): void + { + throw new IrreversibleMigration(); + } +} diff --git a/model/TaoMediaOntology.php b/model/TaoMediaOntology.php index 480c38e76..9ef44019c 100644 --- a/model/TaoMediaOntology.php +++ b/model/TaoMediaOntology.php @@ -35,4 +35,5 @@ interface TaoMediaOntology public const PROPERTY_MD5 = 'http://www.tao.lu/Ontologies/TAOMedia.rdf#md5'; public const PROPERTY_MIME_TYPE = 'http://www.tao.lu/Ontologies/TAOMedia.rdf#mimeType'; + public const PROPERTY_TRANSCRIPTION = 'http://www.tao.lu/Ontologies/TAOMedia.rdf#Transcription'; } diff --git a/model/classes/ServiceProvider/MediaServiceProvider.php b/model/classes/ServiceProvider/MediaServiceProvider.php index 5e2c94146..6dbf0183f 100644 --- a/model/classes/ServiceProvider/MediaServiceProvider.php +++ b/model/classes/ServiceProvider/MediaServiceProvider.php @@ -54,6 +54,7 @@ use oat\taoMediaManager\model\sharedStimulus\specification\SharedStimulusResourceSpecification; use oat\taoMediaManager\model\TaoMediaOntology; use oat\taoMediaManager\model\Specification\MediaClassSpecification; +use oat\taoMediaManager\model\transcription\TranscriptionMimeTypesProvider; use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; use function Symfony\Component\DependencyInjection\Loader\Configurator\service; @@ -214,5 +215,9 @@ public function __invoke(ContainerConfigurator $configurator): void service(RdfMediaRelationRepository::class), ] ); + + + $services->set(TranscriptionMimeTypesProvider::class) + ->public(); } } diff --git a/model/ontology/taomedia.rdf b/model/ontology/taomedia.rdf index ecd047f05..7aca44570 100755 --- a/model/ontology/taomedia.rdf +++ b/model/ontology/taomedia.rdf @@ -23,6 +23,15 @@ + + + + + + + + + diff --git a/model/transcription/TranscriptionMimeTypesProvider.php b/model/transcription/TranscriptionMimeTypesProvider.php new file mode 100644 index 000000000..affc1b9f8 --- /dev/null +++ b/model/transcription/TranscriptionMimeTypesProvider.php @@ -0,0 +1,31 @@ +getServiceManager()->get(CreatorConfigFactory::SERVICE_ID); + + $extendedProperties = $creatorConfigFactory->getOption(CreatorConfigFactory::OPTION_EXTENDED_PROPERTIES, []); + $extendedProperties['transcriptionMetadata'] = TaoMediaOntology::PROPERTY_TRANSCRIPTION; + $extendedProperties['mediaManagerUriPrefix'] = MediaSource::SCHEME_NAME; + + $extendedControlEndpoints = $creatorConfigFactory + ->getOption(CreatorConfigFactory::OPTION_EXTENDED_CONTROL_ENDPOINTS, []); + $extendedControlEndpoints['resourceMetadataUrl'] = ['tao', 'ResourceMetadata', 'get']; + + $creatorConfigFactory + ->setOption(CreatorConfigFactory::OPTION_EXTENDED_PROPERTIES, $extendedProperties); + + $creatorConfigFactory + ->setOption(CreatorConfigFactory::OPTION_EXTENDED_CONTROL_ENDPOINTS, $extendedControlEndpoints); + + $this->getServiceManager()->register(CreatorConfigFactory::SERVICE_ID, $creatorConfigFactory); + } +}