Merge branch 'master' into PHRAS-3144-install-plugin

This commit is contained in:
Nicolas Maillat
2020-06-22 10:11:26 +02:00
committed by GitHub
26 changed files with 2437 additions and 1879 deletions

View File

@@ -155,6 +155,8 @@ class LanguageController
'description notice' => $translator->trans('prod:mapboxgl: description notice'),
'title-map-dialog' => $translator->trans('prod:mapboxgl: title map dialog'),
'create new user' => $translator->trans('prod:push: create new user'),
'prod:videoeditor:subtitletab:messsage:: error' => $translator->trans('prod:videoeditor:subtitletab:messsage:: error'),
'prod:videoeditor:subtitletab:messsage:: success' => $translator->trans('prod:videoeditor:subtitletab:messsage:: success'),
]);
}
}

View File

@@ -463,6 +463,7 @@ class ToolsController extends Controller
$metadatas = false;
$record = null;
$JSFields = [];
$videoTextTrackFields = [];
if (count($records) == 1) {
/** @var \record_adapter $record */
@@ -480,6 +481,19 @@ class ToolsController extends Controller
'name' => $meta->get_name(),
'_value' => $record->getCaption([$meta->get_name()]),
];
if (preg_match('/^VideoTextTrack(.*)$/iu', $meta->get_name(), $matches) && !empty($matches[1]) && strlen($matches[1]) == 2 ) {
$field['label'] = $matches[1];
$field['meta_struct_id'] = $meta->get_id();
$field['value'] = '';
if ($record->get_caption()->has_field($meta->get_name())) {
$fieldValues = $record->get_caption()->get_field($meta->get_name())->get_values();
$fieldValue = array_pop($fieldValues);
$field['value'] = $fieldValue->getValue();
}
$videoTextTrackFields[] = $field;
unset($field);
}
}
if (!$record->isStory()) {
@@ -489,11 +503,12 @@ class ToolsController extends Controller
$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),
'records' => $records,
'record' => $record,
'videoEditorConfig' => $conf->get(['video-editor']),
'metadatas' => $metadatas,
'JSonFields' => json_encode($JSFields),
'videoTextTrackFields' => $videoTextTrackFields
]);
}
}

View File

@@ -65,7 +65,7 @@
"normalize-css": "^2.1.0",
"npm": "^6.0.0",
"npm-modernizr": "^2.8.3",
"phraseanet-production-client": "0.34.220-d",
"phraseanet-production-client": "0.34.237-d",
"requirejs": "^2.3.5",
"tinymce": "^4.0.28",
"underscore": "^1.8.3",

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:jms="urn:jms:translation" version="1.2">
<file date="2020-06-11T06:48:12Z" source-language="en" target-language="de" datatype="plaintext" original="not.available">
<file date="2020-06-17T17:33:39Z" source-language="en" target-language="de" datatype="plaintext" original="not.available">
<header>
<tool tool-id="JMSTranslationBundle" tool-name="JMSTranslationBundle" tool-version="1.1.0-DEV"/>
<note>The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message.</note>
@@ -9,9 +9,9 @@
<trans-unit id="96f0767cb7ea65a7f86c8c9432e80d16cf9d8680" resname="Please provide the same passwords." approved="yes">
<source>Please provide the same passwords.</source>
<target state="translated">Bitte geben Sie diesselbe Passwörter ein.</target>
<jms:reference-file line="49">Form/Login/PhraseaRegisterForm.php</jms:reference-file>
<jms:reference-file line="36">Form/Login/PhraseaRenewPasswordForm.php</jms:reference-file>
<jms:reference-file line="44">Form/Login/PhraseaRecoverPasswordForm.php</jms:reference-file>
<jms:reference-file line="49">Form/Login/PhraseaRegisterForm.php</jms:reference-file>
</trans-unit>
<trans-unit id="90b8c9717bb7ed061dbf20fe1986c8b8593d43d4" resname="The token provided is not valid anymore" approved="yes">
<source>The token provided is not valid anymore</source>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:jms="urn:jms:translation" version="1.2">
<file date="2020-06-11T06:50:35Z" source-language="en" target-language="en" datatype="plaintext" original="not.available">
<file date="2020-06-17T17:34:06Z" source-language="en" target-language="en" datatype="plaintext" original="not.available">
<header>
<tool tool-id="JMSTranslationBundle" tool-name="JMSTranslationBundle" tool-version="1.1.0-DEV"/>
<note>The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message.</note>
@@ -9,9 +9,9 @@
<trans-unit id="96f0767cb7ea65a7f86c8c9432e80d16cf9d8680" resname="Please provide the same passwords." approved="yes">
<source>Please provide the same passwords.</source>
<target state="translated">Please provide the same passwords.</target>
<jms:reference-file line="49">Form/Login/PhraseaRegisterForm.php</jms:reference-file>
<jms:reference-file line="36">Form/Login/PhraseaRenewPasswordForm.php</jms:reference-file>
<jms:reference-file line="44">Form/Login/PhraseaRecoverPasswordForm.php</jms:reference-file>
<jms:reference-file line="49">Form/Login/PhraseaRegisterForm.php</jms:reference-file>
</trans-unit>
<trans-unit id="90b8c9717bb7ed061dbf20fe1986c8b8593d43d4" resname="The token provided is not valid anymore" approved="yes">
<source>The token provided is not valid anymore</source>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:jms="urn:jms:translation" version="1.2">
<file date="2020-06-11T06:53:27Z" source-language="en" target-language="fr" datatype="plaintext" original="not.available">
<file date="2020-06-17T17:34:33Z" source-language="en" target-language="fr" datatype="plaintext" original="not.available">
<header>
<tool tool-id="JMSTranslationBundle" tool-name="JMSTranslationBundle" tool-version="1.1.0-DEV"/>
<note>The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message.</note>
@@ -9,9 +9,9 @@
<trans-unit id="96f0767cb7ea65a7f86c8c9432e80d16cf9d8680" resname="Please provide the same passwords." approved="yes">
<source>Please provide the same passwords.</source>
<target state="translated">Veuillez indiquer des mots de passe identiques.</target>
<jms:reference-file line="49">Form/Login/PhraseaRegisterForm.php</jms:reference-file>
<jms:reference-file line="36">Form/Login/PhraseaRenewPasswordForm.php</jms:reference-file>
<jms:reference-file line="44">Form/Login/PhraseaRecoverPasswordForm.php</jms:reference-file>
<jms:reference-file line="49">Form/Login/PhraseaRegisterForm.php</jms:reference-file>
</trans-unit>
<trans-unit id="90b8c9717bb7ed061dbf20fe1986c8b8593d43d4" resname="The token provided is not valid anymore" approved="yes">
<source>The token provided is not valid anymore</source>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:jms="urn:jms:translation" version="1.2">
<file date="2020-06-11T06:55:24Z" source-language="en" target-language="nl" datatype="plaintext" original="not.available">
<file date="2020-06-17T17:35:01Z" source-language="en" target-language="nl" datatype="plaintext" original="not.available">
<header>
<tool tool-id="JMSTranslationBundle" tool-name="JMSTranslationBundle" tool-version="1.1.0-DEV"/>
<note>The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message.</note>
@@ -9,9 +9,9 @@
<trans-unit id="96f0767cb7ea65a7f86c8c9432e80d16cf9d8680" resname="Please provide the same passwords.">
<source>Please provide the same passwords.</source>
<target state="new">Please provide the same passwords.</target>
<jms:reference-file line="49">Form/Login/PhraseaRegisterForm.php</jms:reference-file>
<jms:reference-file line="36">Form/Login/PhraseaRenewPasswordForm.php</jms:reference-file>
<jms:reference-file line="44">Form/Login/PhraseaRecoverPasswordForm.php</jms:reference-file>
<jms:reference-file line="49">Form/Login/PhraseaRegisterForm.php</jms:reference-file>
</trans-unit>
<trans-unit id="90b8c9717bb7ed061dbf20fe1986c8b8593d43d4" resname="The token provided is not valid anymore">
<source>The token provided is not valid anymore</source>

View File

@@ -0,0 +1 @@
<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="chevron-left" class="svg-inline--fa fa-chevron-left fa-w-10" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path fill="currentColor" d="M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z"></path></svg>

After

Width:  |  Height:  |  Size: 482 B

View File

@@ -0,0 +1 @@
<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="chevron-right" class="svg-inline--fa fa-chevron-right fa-w-10" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path fill="currentColor" d="M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z"></path></svg>

After

Width:  |  Height:  |  Size: 527 B

View File

@@ -0,0 +1 @@
<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="file-download" class="svg-inline--fa fa-file-download fa-w-12" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="#2196f3" d="M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm76.45 211.36l-96.42 95.7c-6.65 6.61-17.39 6.61-24.04 0l-96.42-95.7C73.42 337.29 80.54 320 94.82 320H160v-80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v80h65.18c14.28 0 21.4 17.29 11.27 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"></path></svg>

After

Width:  |  Height:  |  Size: 625 B

View File

@@ -0,0 +1 @@
<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="file-download" class="svg-inline--fa fa-file-download fa-w-12" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="#ffffff" d="M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm76.45 211.36l-96.42 95.7c-6.65 6.61-17.39 6.61-24.04 0l-96.42-95.7C73.42 337.29 80.54 320 94.82 320H160v-80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v80h65.18c14.28 0 21.4 17.29 11.27 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"></path></svg>

After

Width:  |  Height:  |  Size: 625 B

View File

@@ -0,0 +1 @@
<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="home" class="svg-inline--fa fa-home fa-w-18" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="#ffffff" d="M280.37 148.26L96 300.11V464a16 16 0 0 0 16 16l112.06-.29a16 16 0 0 0 15.92-16V368a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v95.64a16 16 0 0 0 16 16.05L464 480a16 16 0 0 0 16-16V300L295.67 148.26a12.19 12.19 0 0 0-15.3 0zM571.6 251.47L488 182.56V44.05a12 12 0 0 0-12-12h-56a12 12 0 0 0-12 12v72.61L318.47 43a48 48 0 0 0-61 0L4.34 251.47a12 12 0 0 0-1.6 16.9l25.5 31A12 12 0 0 0 45.15 301l235.22-193.74a12.19 12.19 0 0 1 15.3 0L530.9 301a12 12 0 0 0 16.9-1.6l25.5-31a12 12 0 0 0-1.7-16.93z"></path></svg>

After

Width:  |  Height:  |  Size: 708 B

View File

@@ -0,0 +1 @@
<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="pause" class="svg-inline--fa fa-pause fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M144 479H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zm304-48V79c0-26.5-21.5-48-48-48h-96c-26.5 0-48 21.5-48 48v352c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48z"></path></svg>

After

Width:  |  Height:  |  Size: 444 B

View File

@@ -0,0 +1 @@
<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="play" class="svg-inline--fa fa-play fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z"></path></svg>

After

Width:  |  Height:  |  Size: 339 B

View File

@@ -99,7 +99,7 @@ img {
overflow: scroll;
}
.display_id {
top: 5px;
top: 0;
margin: 0 0 0 5px;
}
}
@@ -134,8 +134,8 @@ img {
background-color: #212121;
}
.display_id {
top: 4px;
left: 8px;
top: 5px;
left: 5px;
}
.agreement {
position: absolute;
@@ -173,7 +173,9 @@ img {
.display_id {
background-color: #FFFFFF;
padding: 3px 6px;
padding: 3.5px 6px;
min-width: 15px;
text-align: center;
font-weight: bold;
z-index: 99;
color: #212121;
@@ -214,6 +216,28 @@ img {
overflow: hidden;
background-color: #1F1E1B;
color: #BFBFBF;
.PNB.choices {
position: relative;
}
.comment_button {
text-align: center;
background: #353430;
margin: 0;
width: 118px;
position: absolute;
left: 50%;
transform: translateX(-50%);
padding: 7px;
font-size: 14px;
line-height: 14px;
border: 0;
bottom: -30px;
.fa-comment.icon-white {
font-size: 15px;
line-height: 18px;
margin-right: 10px;
}
}
}
#basket_options {
@@ -230,6 +254,11 @@ img {
#basket_infos .user_infos {
height: 120px;
top: auto;
bottom: 43px;
}
.lightbox-icon {
width: 10px;
padding-bottom: 1px;
}
#basket_infos {
@@ -284,7 +313,7 @@ img {
}
#right_column .right_column_wrapper {
//top: 30px;
top: 30px;
bottom: 45px;
}
@@ -296,6 +325,7 @@ img {
#record_infos {
overflow-x: hidden;
overflow-y: auto;
margin-bottom: 80px;
}
#record_compare {
@@ -303,7 +333,10 @@ img {
top: auto;
left: auto;
}
.download-feed{
color: #fff;
font-size: 22px;
}
#record_compare .header, #record_compare .lightbox_container {
left: 5px;
}
@@ -546,10 +579,14 @@ table th i {
}
.basket_downloader {
background-color: #1F1E1B;
background-color: #ffffff;
margin: 0 10px;
padding: 2px;
padding: 4px 0;
border: 0;
transition: 0.3s all;
&:hover {
background-color: #e6e6e6;
}
}
hr {
@@ -562,6 +599,13 @@ hr {
.report {
margin: 0 10px;
vertical-align: bottom;
}.back-home {
margin: 0 10px;
vertical-align: bottom;
width: 20px;
background: #1F1E1B;
padding: 5px;
border-radius: 3px;
}
/*

View File

@@ -47,4 +47,16 @@
</div>
</div>
{% endif %}
{% if basket_element.getBasket().getValidation() %}
<button class="comment_button btn btn-mini btn-inverse">
<i class="fa fa-comment icon-white" aria-hidden="true"></i>
{% set n = 0 %}
{% for validationData in basket_element.getValidationDatas() %}
{% if validationData.getNote() %}
{% set n = n+1 %}
{% endif %}
{% endfor %}
{{ n }}
</button>
{% endif %}
</div>

View File

@@ -92,11 +92,12 @@
<div class="PNB" style="height:30px;bottom:auto;">
<table border="0" cellspacing="0" cellpadding="0" style="width:100%;">
<tr>
<td style="width:20px;">
<td style="width:50px;">
<a href="/lightbox"><img title="{{ 'lightbox::recaptitulatif' | trans }}" class="back-home" src="/assets/lightbox/images/home-solid.svg"/></a>
</td>
<td style="width:40px;">
<button class="ui-corner-all basket_downloader" title="{{ 'boutton::telecharger tous les documents' | trans }}">
<img src="/assets/lightbox/images/save.png"/>
<img width="15" src="/assets/lightbox/images/file-download-solid-blue.svg" >
</button>
</td>
<td>

View File

@@ -1,25 +1,25 @@
<span style="padding:10px 4px 7px;">
{% if feed_element %}
<button class="previous_button play btn btn-mini" title="{{ 'boutton::precedent' | trans }}">
<i class="fa fa-chevron-left" aria-hidden="true"></i>
<img class="lightbox-icon" src="/assets/lightbox/images/chevron-left-solid.svg"/>
</button>
<button class="previous_button pause btn btn-mini btn-inverse" title="{{ 'boutton::precedent' | trans }}">
<i class="fa fa-chevron-left icon-white" aria-hidden="true"></i>
<img class="lightbox-icon" src="/assets/lightbox/images/chevron-left-solid.svg"/>
</button>
<button class="play_button btn btn-mini" title="{{ 'boutton::demarrer' | trans }}">
<i class="fa fa-play" aria-hidden="true"></i>
<img class="lightbox-icon" src="/assets/lightbox/images/play-solid.svg"/>
</button>
<button class="pause_button btn btn-mini" title="{{ 'boutton::pause' | trans }}">
<i class="fa fa-pause" aria-hidden="true"></i>
<img class="lightbox-icon" src="/assets/lightbox/images/pause-solid.svg"/>
</button>
<button class="next_button play btn btn-mini" title="{{ 'boutton::suivant' | trans }}">
<i class="fa fa-chevron-right" aria-hidden="true"></i>
<img class="lightbox-icon" src="/assets/lightbox/images/chevron-right-solid.svg"/>
</button>
<button class="next_button pause btn btn-mini btn-inverse" title="{{ 'boutton::suivant' | trans }}">
<i class="fa fa-chevron-right icon-white" aria-hidden="true"></i>
<img class="lightbox-icon" src="/assets/lightbox/images/chevron-right-solid.svg"/>
</button>
<button class="download_button btn btn-mini btn-inverse" title="{{ 'boutton::telecharger' | trans }}">
<i class="fa fa-arrow-circle-o-down icon-white" aria-hidden="true"></i>
<img class="lightbox-icon" src="/assets/lightbox/images/file-download-solid.svg"/>
</button>
<form name="download_form" style="display:none;">
<input type="hidden" name="basrec" value="{{feed_element.getRecord(app).get_serialize_key()}}"/>

View File

@@ -1,42 +1,31 @@
<span style="padding:10px 4px 7px;">
{% if basket_element %}
<button class="previous_button play btn btn-mini" title="{{ 'boutton::precedent' | trans }}">
<i class="fa fa-chevron-left" aria-hidden="true"></i>
<img class="lightbox-icon" src="/assets/lightbox/images/chevron-left-solid.svg"/>
</button>
<button class="previous_button pause btn btn-mini btn-inverse" title="{{ 'boutton::precedent' | trans }}" style="display:none">
<i class="fa fa-chevron-left icon-white" aria-hidden="true"></i>
<img class="lightbox-icon" src="/assets/lightbox/images/chevron-left-solid.svg"/>
</button>
<button class="play_button btn btn-mini" title="{{ 'boutton::demarrer' | trans }}">
<i class="fa fa-play" aria-hidden="true"></i>
<img class="lightbox-icon" src="/assets/lightbox/images/play-solid.svg"/>
</button>
<button class="pause_button btn btn-mini" title="{{ 'boutton::pause' | trans }}" style="display:none">
<i class="fa fa-pause" aria-hidden="true"></i>
<img class="lightbox-icon" src="/assets/lightbox/images/pause-solid.svg"/>
</button>
<button class="next_button play btn btn-mini" title="{{ 'boutton::suivant' | trans }}">
<i class="fa fa-chevron-right" aria-hidden="true"></i>
<img class="lightbox-icon" src="/assets/lightbox/images/chevron-right-solid.svg"/>
</button>
<button class="next_button pause btn btn-mini btn-inverse" title="{{ 'boutton::suivant' | trans }}" style="display:none">
<i class="fa fa-chevron-right icon-white" aria-hidden="true"></i>
<img class="lightbox-icon" src="/assets/lightbox/images/chevron-right-solid.svg"/>
</button>
<button class="download_button btn btn-mini btn-inverse" title="{{ 'boutton::telecharger' | trans }}">
<i class="fa fa-arrow-circle-o-down icon-white" aria-hidden="true"></i>
<img class="lightbox-icon" src="/assets/lightbox/images/file-download-solid.svg"/>
</button>
<form name="download_form" style="display:none;">
<input type="hidden" name="basrec" value="{{basket_element.getRecord(app).get_serialize_key()}}"/>
</form>
|
{% if basket_element.getBasket().getValidation() %}
<button class="comment_button btn btn-mini btn-inverse">
<i class="fa fa-pencil-square-o icon-white" aria-hidden="true"></i>
{% set n = 0 %}
{% for validationData in basket_element.getValidationDatas() %}
{% if validationData.getNote() %}
{% set n = n+1 %}
{% endif %}
{% endfor %}
{{ n }}
</button>
{% endif %}
{% endif %}
</span>

View File

@@ -155,11 +155,10 @@
<tr>
<td style="width:20px;">
</td>
{% if basket.getValidation() %}
<td style="width:50px;">
<img title="{{ 'lightbox::recaptitulatif' | trans }}" class="report" src="/assets/lightbox/images/retour.png"/>
</td>
{% endif %}
<td style="width:50px;">
<a href="/lightbox"><img title="{{ 'lightbox::recaptitulatif' | trans }}" class="back-home" src="/assets/lightbox/images/home-solid.svg"/></a>
</td>
<td style="width:220px;">
<select id="navigation" style='margin:0'>
<optgroup label="{{ 'Validations' | trans }}">
@@ -182,7 +181,7 @@
</td>
<td style="width:50px;">
<button style='width:30px;margin:0;' class="ui-corner-all basket_downloader" title="{{ 'boutton::telecharger tous les documents' | trans }}">
<img src="/assets/lightbox/images/save.png"/>
<img width="15" src="/assets/lightbox/images/file-download-solid-blue.svg" >
</button>
</td>
<td>

View File

@@ -29,6 +29,16 @@
{{ "video range extractor" | trans }}
</a>
</li>
<li>
<a href="#subtitleEditor" class="subtitleEditortoggle">
{{ "prod:videoeditor:subtitleTab:: title" | trans }}
</a>
</li>
<li>
<a href="#subtitleRequest" class="subtitleEditortoggle">
{{ "prod:videoeditor:subtitleRequestTab:: title" | trans }}
</a>
</li>
</ul>
</div>
@@ -158,6 +168,113 @@
<div id="rangeExtractor" class="">
<div class="video-range-editor-container"></div>
</div>
<div id="subtitleEditor" class="subtitleEditor video-subtitle-editor-container">
<input type="hidden" id="defaultStartValue" value="00:00:00.000">
<input type="hidden" id="defaultEndValue" value="00:00:02.000">
<div id="default-item" class="default-item hide">
<fieldset class='video-subtitle-item'><span class='number'>0</span>
<div class='item-field start-time' ><label>{{ "prod:videoeditor:subtitletab:: Start time" | trans }}</label><input class='time startTime' type='text' name='startTime' size='12' value="00:00:00.000"/></div>
<div class='item-field end-time'><label>{{ "prod:videoeditor:subtitletab:: End time" | trans }}</label><input class='time endTime' type='text' name='endTime' size='12'value="00:00:02.000" /></div>
<div class='item-field show-for-time'><label>{{ "prod:videoeditor:subtitletab:: Show for" | trans }}</label><input class='showForTime' readonly type='text' size='12' value="00:00:02.000"/></div>
<div class='item-field caption-text'><textarea class="captionText" name='captionText' placeholder='{{ "prod:videoeditor:subtitletab:: Caption placeholder" | trans }}' rows='2' ></textarea></div>
<div class='remove-item'><i class='fa fa-times-circle'></i></div>
</fieldset>
</div>
<form name="video_subtitle_data" id="video-subtitle-data">
<div class="video-subtitle-top">
<label>{{ "prod:videoeditor:subtitletab:: work on" | trans }}</label>
<select name="meta_struct_id" id="metaStructId">
{% for videoTextTrackField in videoTextTrackFields %}
<option value="{{ videoTextTrackField.meta_struct_id}}">{{ videoTextTrackField.label}}</option>
{% endfor %}
</select>
{% for videoTextTrackField in videoTextTrackFields %}
<input type="hidden" id="caption_{{ videoTextTrackField.meta_struct_id}}" value='{{ videoTextTrackField.value}}' name='databox_id'>
{% endfor %}
<input type="text" id="record-vtt">
<input type="hidden" value='{{ record.get_sbas_id() }}' name='databox_id'>
<input type="hidden" value='{{ record.get_record_id() }}' name='record_id'>
<input type="hidden" id="no_caption" value='{{ "prod:videoeditor:subtitletab:: No caption message" | trans }}'>
</div>
</form>
<form name="video_subtitle_list" id="video-subtitle-list">
<div class="video-subtitle-bottom">
<div class="video-subtitle-left">
<div class="video-subtitle-left-inner">
<div class="fields-wrapper">
</div>
</div>
<div class="video-subtitle-left-button">
<button type="button" id="submit-subtitle" class="btn submit-subtitle btn-blue">{{ "prod:videoeditor:subtitletab:: save" | trans }}</button>
<button type="button" id="copy-subtitle" class="btn copy-subtitle btn-blue">{{ "prod:videoeditor:subtitletab:: copy to clipboard" | trans }}</button>
<button class="add-subtitle-vtt" tabindex="0" type="button" aria-label="Add VTT" title = {{ "prod:videoeditor:subtitletab:: add caption" | trans }}>
<i class="fa fa-plus"></i>
</button>
</div>
</div>
<div class="video-subtitle-right">
<div class="video-subtitle-wrapper">
</div>
</div>
</div>
</form>
</div>
<div id ="subtitleRequest" class="subtitleRequest">
<div class="video-subtitle-bottom">
<div class="video-subtitle-left">
<div class="video-request-left-inner">
<form id="video-subtitle-request" class="video-subtitle-request">
<p class="item">
<label>{{ "prod:videoeditor:subtitleRequestTab:label:: Provider" | trans }}</label>
<select name="subtitleProvider" id="subtitle_provider">
<option value="Ginger">Ginger</option>
</select>
</p>
<p class="item">
<label>{{ "prod:videoeditor:subtitleRequestTab:label:: Kind" | trans }}</label>
<select name="subtitle_kindr" id="subtitle_kindr">
<option value="fr">Fr</option>
<option value="en">En</option>
<option value="de">De</option>
</select>
</p>
<p class="item">
<label>{{ "prod:videoeditor:subtitleRequestTab:label:: Source Audio language" | trans }}</label>
<select name="subtitle_language_source" id="subtitle_language_source">
<option value="fr">Fr</option>
<option value="en">En</option>
<option value="de">De</option>
</select>
</p>
<p class="item">
<label>{{ "prod:videoeditor:subtitleRequestTab:label:: Language destination" | trans }}</label>
<select name="subtitle_language_destination" id="subtitle_language_destination">
<option value="fr">Fr</option>
<option value="en">En</option>
<option value="de">De</option>
</select>
</p>
<div class="video-subtitle-center-button">
<button type="button" id="submit-subtitle-request" class="btn submit-subtitle btn-blue">{{ "prod:videoeditor:subtitleRequestTab:: submit" | trans }}</button>
</div>
<input type="hidden" value='{{ record.get_sbas_id() }}' name='record_sbas_id'>
<input type="hidden" value='{{ record.get_record_id() }}' name='record_record_id'>
</form>
</div>
</div>
<div class="video-subtitle-right">
<div class="video-subtitle-wrapper">
<video class="thumb_video" controls="" preload="auto" data-ratio="{{ prevRatio }}">
{% for subdef in previewHtml5 %}
<source type="{{ subdef.get_mime() }}" src="{{ subdef.get_url() }}"/>
{% endfor %}
{{ 'No preview available' | trans }}
</video>
</div>
</div>
</div>
</div>
{% endif %}
{% endfor %}
{% endif %}
@@ -173,7 +290,14 @@
>
</iframe>
</div>
<style>
.video-subtitle-editor-container .number {
float: none;
}
.video-subtitle-editor-container .editing .number {
float: left;
}
</style>
<script type="text/javascript">
var toolsConfig = {
selectionLength: {{ selectionLength }},
@@ -217,6 +341,8 @@
{% for subdef in previewHtml5 %}
{
ratio: '{{ ratio }}',
width: '{{ width }}',
height: '{{ height }}',
framerate: {{ record.exif[constant('media_subdef::TC_DATA_FRAMERATE')] | round(2) }},
type: "{{ subdef.get_mime() }}",
src: "{{ subdef.get_url() }}"
@@ -231,6 +357,5 @@
preferences: {
overlapChapters: {% if overlapChapters != NULL %}{{ overlapChapters }}{% else %}1{% endif %},
}
};
</script>

View File

@@ -7578,10 +7578,10 @@ phraseanet-common@^0.4.5-d:
js-cookie "^2.1.0"
pym.js "^1.3.1"
phraseanet-production-client@0.34.220-d:
version "0.34.220-d"
resolved "https://registry.yarnpkg.com/phraseanet-production-client/-/phraseanet-production-client-0.34.220-d.tgz#5046bff7f86e26e3d239fa97a7f3618e27cbacfb"
integrity sha512-cPEFyCRkgf36wS8axGtIhkLHXdq4Rg9yRZozPm3BA93R8tD9fFWSMc6y1z6Ux10qUcyEXhtje6+a8tSqpKUPyw==
phraseanet-production-client@0.34.237-d:
version "0.34.237-d"
resolved "https://registry.yarnpkg.com/phraseanet-production-client/-/phraseanet-production-client-0.34.237-d.tgz#0ec3bf5d6b1260e15148a794e43a7a3b2a7adbcf"
integrity sha512-jttbZLvKiWg7FaTzhN7RT3viVbS7CUO77cu4LNycWD7ZUsycwPUWPomGDGMT9a8uRtJ7X0uHJXnAhGTDtBDvEg==
dependencies:
"@mapbox/mapbox-gl-language" "^0.9.2"
"@turf/turf" "^5.1.6"