diff --git a/lib/Alchemy/Phrasea/Controller/Prod/LanguageController.php b/lib/Alchemy/Phrasea/Controller/Prod/LanguageController.php index e35b95f51d..1f1be97ce3 100644 --- a/lib/Alchemy/Phrasea/Controller/Prod/LanguageController.php +++ b/lib/Alchemy/Phrasea/Controller/Prod/LanguageController.php @@ -97,33 +97,34 @@ class LanguageController 'onlyOneRecord' => $translator->trans('You can choose only one record'), 'errorAjaxRequest' => $translator->trans('An error occured, please retry'), 'fileBeingDownloaded' => $translator->trans('Some files are being downloaded'), - 'warning' => $translator->trans('Attention'), - 'browserFeatureSupport' => $translator->trans('This feature is not supported by your browser'), - 'noActiveBasket' => $translator->trans('No active basket'), - 'pushUserCanDownload' => $translator->trans('User can download HD'), - 'feedbackCanContribute' => $translator->trans('User contribute to the feedback'), - 'feedbackCanSeeOthers' => $translator->trans('User can see others choices'), - 'forceSendDocument' => $translator->trans('Force sending of the document ?'), - 'export' => $translator->trans('Export'), - 'share' => $translator->trans('Share'), - 'move' => $translator->trans('Move'), - 'push' => $translator->trans('Push'), - 'feedback' => $translator->trans('Feedback'), - 'toolbox' => $translator->trans('Tool box'), - 'print' => $translator->trans('Print'), - 'attention' => $translator->trans('Attention !'), - 'mapMarkerEdit' => $translator->trans('Edit position'), - 'mapMarkerAdd' => $translator->trans('Add a position'), - 'mapMarkerMoveLabel' => $translator->trans('Drag and drop the pin to move position'), - 'mapMarkerEditCancel' => $translator->trans('Cancel'), - 'mapMarkerEditSubmit' => $translator->trans('Submit'), - 'Keyboard shortcuts' => $translator->trans('Keyboard shortcuts'), - 'Play' => $translator->trans('Play'), - 'Change play speed' => $translator->trans('Change play speed'), - 'Pause' => $translator->trans('Pause'), - 'One frame forward' => $translator->trans('One frame forward'), - 'One frame backward' => $translator->trans('One frame backward'), - 'Add an entry point' => $translator->trans('Add an entry point'), + 'warning' => $translator->trans('Attention'), + 'browserFeatureSupport' => $translator->trans('This feature is not supported by your browser'), + 'noActiveBasket' => $translator->trans('No active basket'), + 'pushUserCanDownload' => $translator->trans('User can download HD'), + 'feedbackCanContribute' => $translator->trans('User contribute to the feedback'), + 'feedbackCanSeeOthers' => $translator->trans('User can see others choices'), + 'forceSendDocument' => $translator->trans('Force sending of the document ?'), + 'export' => $translator->trans('Export'), + 'share' => $translator->trans('Share'), + 'move' => $translator->trans('Move'), + 'push' => $translator->trans('Push'), + 'feedback' => $translator->trans('Feedback'), + 'toolbox' => $translator->trans('Tool box'), + 'videoEditor' => $translator->trans('prod:edit: video-editor'), + 'print' => $translator->trans('Print'), + 'attention' => $translator->trans('Attention !'), + 'mapMarkerEdit' => $translator->trans('Edit position'), + 'mapMarkerAdd' => $translator->trans('Add a position'), + 'mapMarkerMoveLabel' => $translator->trans('Drag and drop the pin to move position'), + 'mapMarkerEditCancel' => $translator->trans('Cancel'), + 'mapMarkerEditSubmit' => $translator->trans('Submit'), + 'Keyboard shortcuts' => $translator->trans('Keyboard shortcuts'), + 'Play' => $translator->trans('Play'), + 'Change play speed' => $translator->trans('Change play speed'), + 'Pause' => $translator->trans('Pause'), + 'One frame forward' => $translator->trans('One frame forward'), + 'One frame backward' => $translator->trans('One frame backward'), + 'Add an entry point' => $translator->trans('Add an entry point'), 'Add an end point' => $translator->trans('Add an end point'), 'Navigate to entry point' => $translator->trans('Navigate to entry point'), 'Navigate to end point' => $translator->trans('Navigate to end point'), @@ -131,20 +132,21 @@ class LanguageController 'Toggle loop' => $translator->trans('Toggle loop'), 'Shift' => $translator->trans('Shift'), 'Ctrl' => $translator->trans('Ctrl'), - 'Space bar' => $translator->trans('Space bar'), - 'or' => $translator->trans('or'), - 'Suppr' => $translator->trans('Suppr'), - 'Add new range' => $translator->trans('Add new range'), - 'Export ranges' => $translator->trans('Export ranges'), - 'Start Range' => $translator->trans('Start Range'), - 'End Range' => $translator->trans('End Range'), - 'Remove current Range' => $translator->trans('Remove current Range'), - 'Go to start point' => $translator->trans('Go to start point'), - 'Go 1 frame backward' => $translator->trans('Go 1 frame backward'), - 'Go 1 frame forward' => $translator->trans('Go 1 frame forward'), - 'Go to end point' => $translator->trans('Go to end point'), - 'Move up range' => $translator->trans('Move up range'), - 'Move down range' => $translator->trans('Move down range'), + 'Space bar' => $translator->trans('Space bar'), + 'or' => $translator->trans('or'), + 'Suppr' => $translator->trans('Suppr'), + 'Add new range' => $translator->trans('Add new range'), + 'Export ranges' => $translator->trans('Export ranges'), + 'Start Range' => $translator->trans('Start Range'), + 'End Range' => $translator->trans('End Range'), + 'Remove current Range' => $translator->trans('Remove current Range'), + 'Go to start point' => $translator->trans('Go to start point'), + 'Go 1 frame backward' => $translator->trans('Go 1 frame backward'), + 'Go 1 frame forward' => $translator->trans('Go 1 frame forward'), + 'Go to end point' => $translator->trans('Go to end point'), + 'Move up range' => $translator->trans('Move up range'), + 'Move down range' => $translator->trans('Move down range'), + 'error video editor' => $translator->trans('prod:edit: only a media of type video can be edited'), ]); } } diff --git a/lib/Alchemy/Phrasea/Controller/Prod/ToolsController.php b/lib/Alchemy/Phrasea/Controller/Prod/ToolsController.php index 63b5cd0917..872f385455 100644 --- a/lib/Alchemy/Phrasea/Controller/Prod/ToolsController.php +++ b/lib/Alchemy/Phrasea/Controller/Prod/ToolsController.php @@ -40,26 +40,12 @@ class ToolsController extends Controller $metadatas = false; $record = null; $recordAccessibleSubdefs = array(); - $JSFields = []; if (count($records) == 1) { /** @var \record_adapter $record */ $record = $records->first(); $databox = $record->getDatabox(); - - foreach ($databox->get_meta_structure() as $meta) { - /** @var \databox_field $meta */ - $fields[] = $meta; - - /** @Ignore */ - $JSFields[$meta->get_id()] = [ - 'id' => $meta->get_id(), - 'name' => $meta->get_name(), - '_value' => $record->getCaption([$meta->get_name()]), - ]; - } - // fetch subdef list: $subdefs = $record->get_subdefs(); @@ -105,10 +91,8 @@ class ToolsController extends Controller return $this->render('prod/actions/Tools/index.html.twig', [ 'records' => $records, 'record' => $record, - 'videoEditorConfig' => $conf->get(['video-editor']), 'recordSubdefs' => $recordAccessibleSubdefs, 'metadatas' => $metadatas, - 'JSonFields' => json_encode($JSFields), ]); } @@ -468,4 +452,45 @@ class ToolsController extends Controller return $this->app->json(['success' => true, 'errorMessage' => '']); } + + public function videoEditorAction(Request $request) + { + $records = RecordsRequest::fromRequest($this->app, $request, false); + + $metadatas = false; + $record = null; + $JSFields = []; + + if (count($records) == 1) { + /** @var \record_adapter $record */ + $record = $records->first(); + $databox = $record->getDatabox(); + + + foreach ($databox->get_meta_structure() as $meta) { + /** @var \databox_field $meta */ + $fields[] = $meta; + + /** @Ignore */ + $JSFields[$meta->get_id()] = [ + 'id' => $meta->get_id(), + 'name' => $meta->get_name(), + '_value' => $record->getCaption([$meta->get_name()]), + ]; + } + + if (!$record->isStory()) { + $metadatas = true; + } + } + $conf = $this->getConf(); + + return $this->render('prod/actions/Tools/videoEditor.html.twig', [ + 'records' => $records, + 'record' => $record, + 'videoEditorConfig' => $conf->get(['video-editor']), + 'metadatas' => $metadatas, + 'JSonFields' => json_encode($JSFields), + ]); + } } diff --git a/lib/Alchemy/Phrasea/ControllerProvider/Prod/Tools.php b/lib/Alchemy/Phrasea/ControllerProvider/Prod/Tools.php index dfef3af2e6..8d6932aecf 100644 --- a/lib/Alchemy/Phrasea/ControllerProvider/Prod/Tools.php +++ b/lib/Alchemy/Phrasea/ControllerProvider/Prod/Tools.php @@ -72,6 +72,7 @@ class Tools implements ControllerProviderInterface, ServiceProviderInterface $controllers->post('/metadata/save/', 'controller.prod.tools:saveMetasAction') ->bind('prod_tools_metadata_save'); + $controllers->get('/videoEditor', 'controller.prod.tools:videoEditorAction'); return $controllers; } diff --git a/templates/web/prod/actions/Tools/videoEditor.html.twig b/templates/web/prod/actions/Tools/videoEditor.html.twig new file mode 100644 index 0000000000..d01700d4f5 --- /dev/null +++ b/templates/web/prod/actions/Tools/videoEditor.html.twig @@ -0,0 +1,211 @@ +{% set selectionLength = records|length %} +{% set isVideo = 'false' %} + +{% if selectionLength == 1 %} + {% for record in records %} + {% set subdefs = record.get_subdefs() %} + {% if record.get_type() == 'video' %} + {% set isVideo = 'true' %} + {% endif %} + {% endfor %} +{% endif %} + +
{{ 'To take a screenshot click on camera' | trans }}
+ +