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);
+ }
+}