enregistrement transcription interface is ok

This commit is contained in:
2018-04-15 00:00:40 +02:00
parent 6d88ca7c8d
commit ea435b7517
9 changed files with 196 additions and 20 deletions
@@ -194,7 +194,11 @@
console.log('selector', state.selector);
$('a[selector="'+state.selector+'"]').addClass('is-active');
}else{
$('a[data-drupal-link-system-path="'+state.sys_path+'"]').addClass('is-active');
if(typeof state.view_mode != 'undefined'){
$('a[viewmode="'+state.view_mode+'"][data-drupal-link-system-path="'+state.sys_path+'"]').addClass('is-active');
}else{
$('a[data-drupal-link-system-path="'+state.sys_path+'"]').addClass('is-active');
}
// as new content is not related to entree, we trigger close entree
_$body.trigger({'type':'new-content-not-entree-ajax-loaded'});
}
@@ -228,6 +232,12 @@
addCloseModalBtnToCols();
}
// enregistrement transcription
if(data.entity_type == "node" && data.bundle == "enregistrement" && data.view_mode == "transcript"){
// window.requestAnimationFrame(initEnregistrementTranscript);
initEnregistrementTranscript();
}
// update the language switcher block if it comes in the response
if(typeof data.translations_links != 'undefined'){
console.log('state',state);
@@ -261,7 +271,6 @@
_$body.attr('booted', 'booted');
_$body.removeClass('ajax-loading');
// url is null means that we are loading content on popState event
// so we don't record the state again
if(state.url){
@@ -271,7 +280,7 @@
// };
// console.log('url:'+url+' ; state',state);
// console.log(window.location);
// we can not pushestate with absolute url
// /!\ we can not pushestate with absolute url /!\
history.pushState(state, null, state.url);
}
};
@@ -713,6 +722,7 @@
stop(){
// console.log('AudioPlayer stop()');
this.audio.pause();
// TODO: don't close player if article or transcript is open
this.timeOutToHide();
},
// audio events
@@ -1201,6 +1211,30 @@
});
};
// ___ _ _ _
// | __|_ _ _ _ ___ __ _(_)__| |_ _ _ ___ _ __ ___ _ _| |_
// | _|| ' \| '_/ -_) _` | (_-< _| '_/ -_) ' \/ -_) ' \ _|
// |___|_||_|_| \___\__, |_/__/\__|_| \___|_|_|_\___|_||_\__|
// |___/
function initEnregistrementTranscript(){
console.log('initEnregistrementTranscript');
var $node = _$row.find('article.node--type-enregistrement.node--view-mode-transcript');
var $nav = $('<nav>').prependTo($node);
$node.find('.field--name-field-transcript-vo').addClass('visible').find('.field__label')
.clone().appendTo($nav).addClass('is-active')
.attr('field_target', '.field--name-field-transcript-vo');
$node.find('.field--name-field-transcript-trad').find('.field__label')
.clone().appendTo($nav)
.attr('field_target', '.field--name-field-transcript-trad');
$nav.find('.field__label').on('click', function(){
var $this = $(this).addClass('is-active');
$this.siblings('.is-active').removeClass('is-active');
$this.parents('article.node').find('.field.visible').removeClass('visible');
$this.parents('article.node').find($this.attr('field_target')).addClass('visible');
});
};
// __ __ _ _
// | \/ |___ __| |__ _| |___
// | |\/| / _ \/ _` / _` | (_-<
@@ -1306,14 +1306,59 @@ main[role="main"] .layout-content {
main[role="main"] .layout-content .field.text-formatted a.audio-link {
border-bottom: 1px dotted red; }
main[role="main"] article.node > h2, main[role="main"] h2.title {
main[role="main"] h3.sur-title {
font-size: 0.9em;
font-weight: normal;
text-transform: uppercase;
margin: 0.9em 0 0; }
main[role="main"] article.node:not(.node--type-enregistrement) > h2, main[role="main"] h2.title {
font-size: 0.9em;
font-weight: normal;
text-transform: uppercase; }
main[role="main"] article.node.node--type-enregistrement > h2 {
font-size: 0.82em;
font-weight: 600;
line-height: 1.6;
margin: 0.9em 0 0 0; }
html.js main[role="main"] article.node.node--type-enregistrement h3.sur-title {
display: none; }
main[role="main"] article.node.node--type-enregistrement .field--name-field-transcript-vo .field__label, main[role="main"] article.node.node--type-enregistrement .field--name-field-transcript-trad .field__label {
font-size: 0.9em;
font-weight: normal;
text-transform: uppercase; }
html.js main[role="main"] article.node.node--type-enregistrement .field--name-field-transcript-vo .field__label, html.js main[role="main"] article.node.node--type-enregistrement .field--name-field-transcript-trad .field__label {
display: none; }
main[role="main"] article.node.node--type-enregistrement .field--name-field-transcript-vo:not(.visible), main[role="main"] article.node.node--type-enregistrement .field--name-field-transcript-trad:not(.visible) {
display: none; }
main[role="main"] article.node.node--type-enregistrement nav {
padding: 1em 0 0; }
main[role="main"] article.node.node--type-enregistrement nav div.field__label {
font-size: 0.9em;
font-weight: normal;
text-transform: uppercase;
display: inline-block;
cursor: pointer;
margin-right: 1em; }
main[role="main"] article.node.node--type-enregistrement nav div.field__label:before {
content: "";
display: inline-block;
width: 7px;
height: 7px;
border: 1px solid red;
margin-right: 0.5em; }
main[role="main"] article.node.node--type-enregistrement nav div.field__label:hover:before, main[role="main"] article.node.node--type-enregistrement nav div.field__label.is-active:before {
background-color: red; }
main[role="main"] article.node p {
font-size: 0.75em;
font-weight: normal; }
font-size: 0.82em;
font-weight: normal;
line-height: 1.6; }
main[role="main"] img {
max-width: 100%;
@@ -194,7 +194,11 @@
console.log('selector', state.selector);
$('a[selector="'+state.selector+'"]').addClass('is-active');
}else{
$('a[data-drupal-link-system-path="'+state.sys_path+'"]').addClass('is-active');
if(typeof state.view_mode != 'undefined'){
$('a[viewmode="'+state.view_mode+'"][data-drupal-link-system-path="'+state.sys_path+'"]').addClass('is-active');
}else{
$('a[data-drupal-link-system-path="'+state.sys_path+'"]').addClass('is-active');
}
// as new content is not related to entree, we trigger close entree
_$body.trigger({'type':'new-content-not-entree-ajax-loaded'});
}
@@ -228,6 +232,12 @@
addCloseModalBtnToCols();
}
// enregistrement transcription
if(data.entity_type == "node" && data.bundle == "enregistrement" && data.view_mode == "transcript"){
// window.requestAnimationFrame(initEnregistrementTranscript);
initEnregistrementTranscript();
}
// update the language switcher block if it comes in the response
if(typeof data.translations_links != 'undefined'){
console.log('state',state);
@@ -261,7 +271,6 @@
_$body.attr('booted', 'booted');
_$body.removeClass('ajax-loading');
// url is null means that we are loading content on popState event
// so we don't record the state again
if(state.url){
@@ -271,7 +280,7 @@
// };
// console.log('url:'+url+' ; state',state);
// console.log(window.location);
// we can not pushestate with absolute url
// /!\ we can not pushestate with absolute url /!\
history.pushState(state, null, state.url);
}
};
@@ -713,6 +722,7 @@
stop(){
// console.log('AudioPlayer stop()');
this.audio.pause();
// TODO: don't close player if article or transcript is open
this.timeOutToHide();
},
// audio events
@@ -1201,6 +1211,30 @@
});
};
// ___ _ _ _
// | __|_ _ _ _ ___ __ _(_)__| |_ _ _ ___ _ __ ___ _ _| |_
// | _|| ' \| '_/ -_) _` | (_-< _| '_/ -_) ' \/ -_) ' \ _|
// |___|_||_|_| \___\__, |_/__/\__|_| \___|_|_|_\___|_||_\__|
// |___/
function initEnregistrementTranscript(){
console.log('initEnregistrementTranscript');
var $node = _$row.find('article.node--type-enregistrement.node--view-mode-transcript');
var $nav = $('<nav>').prependTo($node);
$node.find('.field--name-field-transcript-vo').addClass('visible').find('.field__label')
.clone().appendTo($nav).addClass('is-active')
.attr('field_target', '.field--name-field-transcript-vo');
$node.find('.field--name-field-transcript-trad').find('.field__label')
.clone().appendTo($nav)
.attr('field_target', '.field--name-field-transcript-trad');
$nav.find('.field__label').on('click', function(){
var $this = $(this).addClass('is-active');
$this.siblings('.is-active').removeClass('is-active');
$this.parents('article.node').find('.field.visible').removeClass('visible');
$this.parents('article.node').find($this.attr('field_target')).addClass('visible');
});
};
// __ __ _ _
// | \/ |___ __| |__ _| |___
// | |\/| / _ \/ _` / _` | (_-<
@@ -254,8 +254,53 @@ main[role="main"]{
}
}
}
article.node>h2, h2.title{
h3.sur-title{
@include content_titles;
margin:0.9em 0 0;
}
article.node:not(.node--type-enregistrement)>h2, h2.title{
@include content_titles;
}
article.node.node--type-enregistrement{
>h2{
@include content_subtitles;
margin:0.9em 0 0 0;
}
html.js &{
h3.sur-title{display:none;}
}
.field--name-field-transcript-vo, .field--name-field-transcript-trad{
.field__label{
@include content_titles;
html.js &{
display: none;
}
}
&:not(.visible){
display:none;
}
}
nav{
padding:1em 0 0;
div.field__label{
@include content_titles;
display: inline-block;
cursor:pointer;
margin-right: 1em;
&:before{
content: "";
display:inline-block;
$sq:7px;
width: $sq; height:$sq;
border: 1px solid red;
margin-right: 0.5em;
}
&:hover:before,
&.is-active:before{
background-color: red;
}
}
}
}
article.node p{
@include content_courant;
@@ -3,7 +3,15 @@
font-weight: normal;
text-transform: uppercase;
}
@mixin content_courant {
font-size: 0.75em;
font-weight: normal;
@mixin content_subtitles {
font-size: 0.82em;
font-weight: 600;
line-height: 1.6;
}
@mixin content_courant {
font-size: 0.82em;
font-weight: normal;
line-height: 1.6;
}
@@ -36,6 +36,11 @@ function edlptheme_preprocess_node(&$vars){
$vars['link_attributes'] = new Attribute(array(
'data-drupal-link-system-path' => $system_path=='' ? '<front>' : $system_path
));
if($node->bundle() == 'enregistrement' && in_array($vars['view_mode'], ['article','transcript'])){
$vars['page'] = true;
$vars['sur_title'] = $vars['view_mode'];
}
}
/**
@@ -83,12 +83,17 @@
{{ attach_library('classy/node') }}
<article{{ attributes.addClass(classes) }}>
{{ title_prefix }}
{% if not page %}
<h2{{ title_attributes.addClass('node-title') }}>
<a href="{{ url }}" rel="bookmark" {{ link_attributes }}>{{ label }}</a>
</h2>
{% if sur_title %}
<h3 class="sur-title">{{ sur_title }}</h3>
{% endif %}
{{ title_prefix }}
<h2{{ title_attributes.addClass('node-title') }}>
{% if not page %}
<a href="{{ url }}" rel="bookmark" {{ link_attributes }}>{{ label }}</a>
{% else %}
{{ label }}
{% endif %}
</h2>
{{ title_suffix }}
{% if display_submitted %}
@@ -11,7 +11,7 @@ id: node.enregistrement.field_transcript_trad
field_name: field_transcript_trad
entity_type: node
bundle: enregistrement
label: 'Transcription (Traduction)'
label: Traduction
description: ''
required: false
translatable: true
@@ -11,7 +11,7 @@ id: node.enregistrement.field_transcript_vo
field_name: field_transcript_vo
entity_type: node
bundle: enregistrement
label: 'Transcription (Version Originale)'
label: Transcription
description: ''
required: false
translatable: false