diff --git a/composer.json b/composer.json index b82f007bc..08212d1c5 100644 --- a/composer.json +++ b/composer.json @@ -52,6 +52,7 @@ "drupal/filter_perms": "1.x-dev", "drupal/honeypot": "1.29.0", "drupal/linkit": "^5.0", + "drupal/login_emailusername": "^1.1", "drupal/maillog": "1.x-dev", "drupal/matomo": "1.9.0", "drupal/menu_admin_per_menu": "1.0.0", @@ -63,6 +64,7 @@ "drupal/profile": "^1.0", "drupal/redirect": "^1.3", "drupal/redis": "^1.1", + "drupal/restui": "^1.17", "drupal/search_api": "^1.12", "drupal/simple_sitemap": "^3.1", "drupal/synonyms": "1.x-dev", @@ -126,6 +128,9 @@ "patches": { "drupal/domain_site_settings": { "Circular Error or Conflict with Language_Manager" : "https://www.drupal.org/files/issues/2018-10-09/2930391-21.patch" + }, + "drupal/login_emailusername": { + "rest login email or user name https://www.drupal.org/project/login_emailusername/issues/2910511#comment-12564801" : "https://www.drupal.org/files/issues/2018-04-10/allow-rest-login-with-email-2910511-9.patch" } }, "drupal-scaffold": { diff --git a/composer.lock b/composer.lock index 01d268d98..7b4c170d2 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "afac9754e49e7dbd6c3cfd14393471ff", + "content-hash": "9092399791e0168d53586b646fb13c3b", "packages": [ { "name": "alchemy/zippy", @@ -1385,6 +1385,7 @@ ], "description": "Promoting the interoperability of container objects (DIC, SL, etc.)", "homepage": "https://github.com/container-interop/container-interop", + "abandoned": "psr/container", "time": "2017-02-14T19:40:03+00:00" }, { @@ -4598,6 +4599,53 @@ "issues": "http://drupal.org/project/linkit" } }, + { + "name": "drupal/login_emailusername", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://git.drupalcode.org/project/login_emailusername.git", + "reference": "8.x-1.1" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/login_emailusername-8.x-1.1.zip", + "reference": "8.x-1.1", + "shasum": "f484b76b538f4dbbae5a75b49577f4ddf576809e" + }, + "require": { + "drupal/core": "~8.0" + }, + "type": "drupal-module", + "extra": { + "branch-alias": { + "dev-1.x": "1.x-dev" + }, + "drupal": { + "version": "8.x-1.1", + "datestamp": "1483456142", + "security-coverage": { + "status": "covered", + "message": "Covered by Drupal's security advisory policy" + } + } + }, + "notification-url": "https://packages.drupal.org/8/downloads", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "rjjakes", + "homepage": "https://www.drupal.org/user/3457245" + } + ], + "description": "Allow users to log in with either their username OR email address using the same input box on the login form.", + "homepage": "https://www.drupal.org/project/login_emailusername", + "support": { + "source": "https://git.drupalcode.org/project/login_emailusername" + } + }, { "name": "drupal/maillog", "version": "dev-1.x", @@ -5313,6 +5361,65 @@ "source": "https://git.drupalcode.org/project/redis" } }, + { + "name": "drupal/restui", + "version": "1.17.0", + "source": { + "type": "git", + "url": "https://git.drupalcode.org/project/restui.git", + "reference": "8.x-1.17" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/restui-8.x-1.17.zip", + "reference": "8.x-1.17", + "shasum": "2fff1b74759d5e490884d002330ad04d1bf241ba" + }, + "require": { + "drupal/core": "^8.2.0" + }, + "type": "drupal-module", + "extra": { + "branch-alias": { + "dev-1.x": "1.x-dev" + }, + "drupal": { + "version": "8.x-1.17", + "datestamp": "1557845581", + "security-coverage": { + "status": "covered", + "message": "Covered by Drupal's security advisory policy" + } + } + }, + "notification-url": "https://packages.drupal.org/8/downloads", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "-enzo-", + "homepage": "https://www.drupal.org/user/294937" + }, + { + "name": "clemens.tolboom", + "homepage": "https://www.drupal.org/user/125814" + }, + { + "name": "juampynr", + "homepage": "https://www.drupal.org/user/682736" + }, + { + "name": "klausi", + "homepage": "https://www.drupal.org/user/262198" + } + ], + "description": "Provides a user interface to manage REST resources.", + "homepage": "https://www.drupal.org/project/restui", + "support": { + "source": "https://git.drupalcode.org/project/restui" + } + }, { "name": "drupal/search_api", "version": "1.15.0", diff --git a/config/sync/autologout.settings.yml b/config/sync/autologout.settings.yml index c80b641a1..fd9d463ac 100644 --- a/config/sync/autologout.settings.yml +++ b/config/sync/autologout.settings.yml @@ -1,4 +1,4 @@ -timeout: 1800 +timeout: 7200 max_timeout: 172800 padding: 20 role_logout: false diff --git a/config/sync/core.extension.yml b/config/sync/core.extension.yml index d29cb3c0d..7df0d4aa0 100644 --- a/config/sync/core.extension.yml +++ b/config/sync/core.extension.yml @@ -67,6 +67,7 @@ module: link: 0 linkit: 0 locale: 0 + login_emailusername: 0 maillog: 0 menu_ui: 0 metatag: 0 @@ -84,8 +85,11 @@ module: redirect: 0 redis: 0 responsive_image: 0 + rest: 0 + restui: 0 search_api: 0 search_api_db: 0 + serialization: 0 simple_sitemap: 0 synonyms: 0 system: 0 diff --git a/config/sync/email_registration.settings.yml b/config/sync/email_registration.settings.yml index a9d88fde1..f033a20d4 100644 --- a/config/sync/email_registration.settings.yml +++ b/config/sync/email_registration.settings.yml @@ -1,4 +1,4 @@ -login_with_username: false +login_with_username: true _core: default_config_hash: 6cFmNHjhs_glkuywBEhzcUQ8aiHXcFe6hZfW7PLN-qg langcode: fr diff --git a/config/sync/language/en/addtoany.settings.yml b/config/sync/language/en/addtoany.settings.yml index 45d1291a0..7c2ef4de0 100644 --- a/config/sync/language/en/addtoany.settings.yml +++ b/config/sync/language/en/addtoany.settings.yml @@ -1 +1 @@ -additional_html: "\r\n\r\n\r\n" +additional_html: "\n\n\n" diff --git a/config/sync/rest.resource.entity.user.yml b/config/sync/rest.resource.entity.user.yml new file mode 100644 index 000000000..872c34472 --- /dev/null +++ b/config/sync/rest.resource.entity.user.yml @@ -0,0 +1,18 @@ +uuid: 76f64e4d-009d-4e41-958b-8fd3f5aa0a68 +langcode: fr +status: true +dependencies: + module: + - serialization + - user +id: entity.user +plugin_id: 'entity:user' +granularity: resource +configuration: + methods: + - GET + - POST + formats: + - json + authentication: + - cookie diff --git a/config/sync/rest.resource.user_registration.yml b/config/sync/rest.resource.user_registration.yml new file mode 100644 index 000000000..635437b3c --- /dev/null +++ b/config/sync/rest.resource.user_registration.yml @@ -0,0 +1,17 @@ +uuid: af90996e-898d-4bb5-a7ae-ca4a9e26714f +langcode: fr +status: true +dependencies: + module: + - serialization + - user +id: user_registration +plugin_id: user_registration +granularity: resource +configuration: + methods: + - POST + formats: + - json + authentication: + - cookie diff --git a/config/sync/rest.settings.yml b/config/sync/rest.settings.yml new file mode 100644 index 000000000..bcf19a256 --- /dev/null +++ b/config/sync/rest.settings.yml @@ -0,0 +1,4 @@ +bc_entity_resource_permissions: false +_core: + default_config_hash: Jg3_yqsTIZ51KOKp3OV2KDVVrlx3N3OCEfniEse09KE +langcode: fr diff --git a/config/sync/serialization.settings.yml b/config/sync/serialization.settings.yml new file mode 100644 index 000000000..f95bef36f --- /dev/null +++ b/config/sync/serialization.settings.yml @@ -0,0 +1,5 @@ +bc_primitives_as_strings: false +bc_timestamp_normalizer_unix: false +_core: + default_config_hash: 6A1rmsmNf4SJrwCEt_aZyO_kPYuFnIOPC2n5lJiIftA +langcode: fr diff --git a/config/sync/user.mail.yml b/config/sync/user.mail.yml index 40bca009e..ef556d3f8 100644 --- a/config/sync/user.mail.yml +++ b/config/sync/user.mail.yml @@ -18,7 +18,7 @@ register_pending_approval_admin: subject: 'Détails du compte [user:display-name] sur [site:name] (en attente de validation d''un administrateur)' status_activated: body: "[user:display-name],\r\n\r\nVotre compte sur [site:name] a été activé.\r\n\r\nVous pouvez maintenant vous connecter en cliquant sur le lien ci-dessous ou en le copiant dans votre navigateur : \r\n\r\n[user:one-time-login-url]\r\n\r\nCe lien ne peut être utilisé qu'une seule fois et vous redirigera vers une page où vous pourrez choisir votre mot de passe.\r\n\r\nAprès avoir choisi votre mot de passe, vous pourrez vous connecter sur [site:login-url] en utilisant :\r\n\r\nnom d'utilisateur : [user:account-name]\r\nmot de passe : Votre mot de passe\r\n\r\n-- L'équipe de [site:name]" - subject: 'Détails du compte [user:display-name] sur [site:name] (validé)' + subject: 'Détails du compte pour [user:display-name] sur [site:name]' status_blocked: body: "[user:display-name],\r\n\r\nVotre compte sur [site:name] a été bloqué.\r\n\r\n-- L'équipe [site:name]" subject: 'Détails du compte [user:display-name] sur [site:name] (bloqué)' diff --git a/config/sync/user.role.anonymous.yml b/config/sync/user.role.anonymous.yml index 9c0fb2da9..8e71b3087 100644 --- a/config/sync/user.role.anonymous.yml +++ b/config/sync/user.role.anonymous.yml @@ -15,6 +15,7 @@ permissions: - 'access synonyms entity autocomplete' - 'create corpus_documents workflow_transition' - 'create generique workflow_transition' + - 'restful post user_registration' - 'use text format wysiwyg' - 'view published fil entities' - 'view search api pages' diff --git a/config/sync/user.role.authenticated.yml b/config/sync/user.role.authenticated.yml index c6903e163..1b1387743 100644 --- a/config/sync/user.role.authenticated.yml +++ b/config/sync/user.role.authenticated.yml @@ -23,6 +23,7 @@ permissions: - 'edit own composition entities' - 'edit own fil entities' - 'opt-in or out of matomo tracking' + - 'restful post user_registration' - 'use chutier' - 'use text format wysiwyg' - 'view own unpublished chutier entities' diff --git a/config/sync/views.view.profiles.yml b/config/sync/views.view.profiles.yml index 09516e093..378979be7 100644 --- a/config/sync/views.view.profiles.yml +++ b/config/sync/views.view.profiles.yml @@ -1,5 +1,5 @@ uuid: ecb1909a-9cc2-4579-bfd3-7e0c8b38ea40 -langcode: en +langcode: fr status: true dependencies: module: diff --git a/web/modules/custom/edlp_ajax/src/Controller/EdlpAjaxController.php b/web/modules/custom/edlp_ajax/src/Controller/EdlpAjaxController.php index b7db581f0..ff71453ff 100644 --- a/web/modules/custom/edlp_ajax/src/Controller/EdlpAjaxController.php +++ b/web/modules/custom/edlp_ajax/src/Controller/EdlpAjaxController.php @@ -319,6 +319,10 @@ class EdlpAjaxController extends ControllerBase { 'tags' => [ 'edlp-ajax-blocks-cache', // $this->entity_type.':'.$this->id // not necessary as we add $renderable as CacheableMetadata to the response + ], + 'contexts' => [ + 'languages:language_content', + 'user' ] ] ]; diff --git a/web/themes/custom/edlptheme/assets/dist/scripts/main.min.js b/web/themes/custom/edlptheme/assets/dist/scripts/main.min.js index 9947adfd2..cc5d4d39c 100644 --- a/web/themes/custom/edlptheme/assets/dist/scripts/main.min.js +++ b/web/themes/custom/edlptheme/assets/dist/scripts/main.min.js @@ -1,12 +1,14 @@ -(function($,Drupal,drupalSettings){EdlpTheme=function(){var _ajax_settings=drupalSettings.edlp_ajax;var _$body=$('body');var _corpus_ready=false;var _$corpus_canvas;var _$row=$('main[role="main"]>.layout-content>.row');var _$ajaxLinks;var _audioPlayer;var _randomPlayer;var _compoPlayer;var _ajax_timing={start:0,end:0};var _corpus_promise;var _is_mobile=edlp_mobile.device_is_mobile;function init(){void 0;if(_is_mobile){initMobile();} +(function($,Drupal,drupalSettings){EdlpTheme=function(){var _origin=window.location.origin;var _base_url=drupalSettings.path.baseUrl;var _ajax_settings=drupalSettings.edlp_ajax;var _$body=$('body');var _corpus_ready=false;var _$corpus_canvas;var _$row=$('main[role="main"]>.layout-content>.row');var _$ajaxLinks;var _audioPlayer;var _randomPlayer;var _compoPlayer;var _ajax_timing={start:0,end:0};var _corpus_promise;var _is_mobile=edlp_mobile.device_is_mobile;var _is_loggedin=drupalSettings.user.uid===0?false:true;var _$log_form;var _user_tokens;function init(){void 0;if(!_is_loggedin){initLogForm();} +if(_is_mobile){initMobile();} initEvents();_audioPlayer=new AudioPlayer();_compoPlayer=new CompoPlayer();initAjaxLinks();initHistory();if(!_is_mobile){checkLayout();initAudioLinksHover();} if(_is_mobile){if(drupalSettings.path.isFront){initHomeMobile();} -_$body.attr('booted','booted');}};function initMobile(){$('h2, a','#block-mainnavigation').add('h2, a','#block-mainnavigation-2').on('click',onclickHomeMobileMenu);} +_$body.attr('booted','booted');}};function initLogForm(){void 0;_$log_form=$('#user-login-form:not(ajax-enebled)').on('submit',onSubmitLogForm).addClass('ajax-enabled');};function onSubmitLogForm(e){e.preventDefault();var args={name:$('input#edit-name[type="text"]',this).val(),pass:$('input#edit-pass[type="password"]',this).val()};logIn(args).then(getStudioLinkBlock);return false;};function logIn(args){void 0;_$log_form.addClass('ajax-loading');_$body.addClass('ajax-loading');return $.ajax({type:'POST',headers:{'Content-Type':'application/json'},xhrFields:{withCredentials:true},url:_origin+_base_url+"user/login?_format=json",data:JSON.stringify(args),success:function(response){_user_tokens=response;},error:function(xhr,ajaxOptions,thrownError){void 0;void 0;}});};function getStudioLinkBlock(){var path=_origin+_base_url+'edlp/ajax/blocks/json/';$.getJSON(path+"studiolinkblock",{}).done(onStudioLinkBlockLoaded).fail(function(jqxhr,textStatus,error){void 0;});};function onStudioLinkBlockLoaded(data){void 0;$('#block-studiouserlogin').replaceWith(data.blocks.studiolinkblock.rendered);initAjaxLinks();_$log_form.removeClass('ajax-loading');_$body.removeClass('ajax-loading');} +function initMobile(){$('h2, a','#block-mainnavigation').add('h2, a','#block-mainnavigation-2').on('click',onclickHomeMobileMenu);} function onclickHomeMobileMenu(e){$('#block-mainnavigation-2').toggleClass('opened');};function initHomeMobile(){};function initEvents(){var $corpus_df=$.Deferred();_corpus_promise=$corpus_df.promise();_$body.on('corpus-map-ready',function(e){onCorpusMapReady(e);$corpus_df.resolve();}).on('on-studio-chutier-updated',initAjaxLinks).on('studio-initialized',function(e){_compoPlayer.newCompo();}).on('studio-not-active',function(e){_compoPlayer.deactivate();}).on('on-studio-compo-updated',function(e){initAjaxLinks();_compoPlayer.refresh();}).on('on-studio-compo-opened',function(e){initAjaxLinks();_compoPlayer.newCompo();}).on('search-results-loaded',function(e){initAjaxLinks();initAudioLinksHover();checkVisibleCorpusMapSpace();}).on('open_entree',function(e){void 0;closeAllModals();checkLayout();_$body.removeClass();if(typeof e.url!='undefined'){var state=getSysPathState(e.sys_path);history.pushState(state,null,e.url);if(typeof _paq!=='undefined'){_paq.push(['setCustomUrl',e.url]);_paq.push(['setDocumentTitle',e.title]);_paq.push(['trackPageView']);}}}).on('close_entree',function(e){backToFrontPage();checkLayout();});window.addEventListener('resize',checkLayout,false);} function checkLayout(){var $audioplayer=$("#audio-player");if($audioplayer.length){var navpos=$('#block-mainnavigation').position();if(typeof navpos!='undefined'){$audioplayer.css({'width':navpos.left+'px'});}} checkGridBlockHeight();checkGridBlockVisible();};function initScrollbars(){};function getSysPathState(sys_path,view_mode){var state={'sys_path':sys_path,'ajax_path':sys_path};var node_match=state.ajax_path.match(/^\/?(node\/(\d+))$/i);void 0;var term_match=state.ajax_path.match(/^\/?(taxonomy\/term\/(\d+))$/i);void 0;if(node_match){state.ajax_path=_ajax_settings.entityjson_path+'/'+node_match[1];state.node_nid=node_match[2];if(view_mode){state.ajax_path+='/'+view_mode;state.view_mode=view_mode;}}else if(term_match){state.ajax_path=_ajax_settings.entityjson_path+'/'+term_match[1];state.ajax_path=state.ajax_path.replace(/taxonomy\/term/,'taxonomy_term');state.entree_tid=term_match[2];if(view_mode){state.ajax_path+='/'+view_mode;state.view_mode=view_mode;}else{state.ajax_path=null;}}else{state.ajax_path+='/ajax'} -return state;};function ajaxLoadContent(state){void 0;_$body.addClass('ajax-loading');_ajax_timing.start=performance.now();var path=window.location.origin+Drupal.url(state.ajax_path);$.getJSON(path,{}).done(function(data){onAjaxLoaded(data,state);}).fail(function(jqxhr,textStatus,error){onAjaxLoadError(jqxhr,textStatus,error,state.sys_path);});};function onAjaxLoadError(jqxhr,textStatus,error,sys_path){void 0;$('.ajax-loading').removeClass('ajax-loading');_$body.removeClass('ajax-loading');};function onAjaxLoaded(data,state){void 0;var $rendered=$(data.rendered);$rendered.attr({'sys_path':state.sys_path,'view_mode':state.view_mode});if(data.entity_type=="node"&&data.bundle=="evenement"){if(_$row.find('.col.event').length){_$row.find('.col.event').replaceWith($rendered);}else if(_$row.find('.col.aside').length){_$row.find('.col.aside').replaceWith($rendered);}else{_$row.append($rendered);}}else{_$row.removeAttr('style').html($rendered);} +return state;};function ajaxLoadContent(state){void 0;_$body.addClass('ajax-loading');_ajax_timing.start=performance.now();var path=_origin+Drupal.url(state.ajax_path);$.getJSON(path,{}).done(function(data){onAjaxLoaded(data,state);}).fail(function(jqxhr,textStatus,error){onAjaxLoadError(jqxhr,textStatus,error,state.sys_path);});};function onAjaxLoadError(jqxhr,textStatus,error,sys_path){void 0;$('.ajax-loading').removeClass('ajax-loading');_$body.removeClass('ajax-loading');};function onAjaxLoaded(data,state){void 0;var $rendered=$(data.rendered);$rendered.attr({'sys_path':state.sys_path,'view_mode':state.view_mode});if(data.entity_type=="node"&&data.bundle=="evenement"){if(_$row.find('.col.event').length){_$row.find('.col.event').replaceWith($rendered);}else if(_$row.find('.col.aside').length){_$row.find('.col.aside').replaceWith($rendered);}else{_$row.append($rendered);}}else{_$row.removeAttr('style').html($rendered);} if((data.entity_type=="node"&&data.bundle=="static")||state.sys_path=="docsindex"){$('.ajax-link.is-active.articles-link').removeClass('is-active');} var body_classes=['path-'+state.sys_path.replace(/\//g,'-'),'entity-type-'+data.entity_type,'bundle-'+data.bundle,'view-mode-'+data.view_mode];_$body.removeClass().addClass(body_classes.join(' '));if(state.node_nid) _$body.addClass('path-edlp-node');$('.ajax-loading').removeClass('ajax-loading');$('.ajax-link.is-active:not(.articles-link)').removeClass('is-active');$('.is-active-trail').removeClass('is-active-trail');if(typeof state.selector!='undefined'){void 0;$('a[selector="'+state.selector+'"]').addClass('is-active');initAudioLinksHover();}else{if(typeof state.view_mode!='undefined'){$('a[viewmode="'+state.view_mode+'"][data-drupal-link-system-path="'+state.sys_path+'"]').addClass('is-active');}else{_corpus_promise.done(function(){$('a[data-drupal-link-system-path="'+state.sys_path+'"]').addClass('is-active');});} @@ -48,11 +50,11 @@ this.emmit('audio-open-document',{caller:caller});if(typeof _paq!=='undefined'){ this.launch();},launch(){this.clearTimeOutToHide();this.clearIntervalAutoCartelSwitch();this.setSRC(this.historic[this.currentHistoricIndex].audio_url);if(!_is_mobile){this.loadNode(this.historic[this.currentHistoricIndex].nid);} try{_$corpus_canvas.trigger({'type':'audio-node-opened','nid':this.historic[this.currentHistoricIndex].nid});}catch(e){void 0;var that=this;_corpus_promise.done(function(){_$corpus_canvas.trigger({'type':'audio-node-opened','nid':that.historic[that.currentHistoricIndex].nid});});} this.showHidePreviousBtn();this.showHideNextBtn();this.show();},openSound(url,title){this.hide();this.clearTimeOutToHide();this.$cartel.html("");this.setSRC(url);this.show();if(typeof _paq!=='undefined'){_paq.push(['trackEvent','Audio','play',url]);}},setSRC(url){void 0;this.audio.src=url;this.play();},onLoadedmetadata(){var rem=parseInt(this.audio.duration,10),mins=Math.floor(rem/60,10),secs=rem-mins*60;this.$duration.html(''+(mins<10?'0':'')+mins+':'+(secs<10?'0':'')+secs+'');this.updateLoadingBar();},updateLoadingBar(){void 0;if(this.audio.buffered.length>0){this.$loader.css({'width':parseInt((100*this.audio.buffered.end(0)/this.audio.duration),10)+'%'});if(this.audio.buffered.end(0)0){this.currentHistoricIndex-=1;this.launch();}},playNext(){if(this.currentHistoricIndex'+(mins<10?'0':'')+mins+':'+(secs<10?'0':'')+secs+'');},onEnded(){void 0;this.stop();this.emmit('audio-ended');},loadNode(nid){this.$cartel.addClass('loading');var vm='player_cartel';var ajax_path=_ajax_settings.entityjson_path+'/node/'+nid+'/'+vm;var path=window.location.origin+Drupal.url(ajax_path);$.getJSON(path,{}).done(this.onNodeLoaded.bind(this)).fail(this.onNodeLoadFail.bind(this));},onNodeLoaded(data){void 0;this.$cartel.html(data.rendered).removeClass('loading');_$body.trigger({'type':'new-audio-cartel-loaded'});initAjaxLinks();this.scndCartel_visible=0;this.$cartel.removeClass('second-visible');if(this.$cartel.find('.second-cartel .col-left').children().length>1||this.$cartel.find('.second-cartel').children('.col-right').length){this.cartelSwitchInterval=setInterval(this.switchCartel.bind(this),this.cartelSwitchIntervalMS);} +void 0;this.audio.currentTime=seek;},onPlaying(){this.$btns.addClass('is-playing');this.emmit('audio-play');},onPause(){this.$btns.removeClass('is-playing');this.emmit('audio-pause');},onTimeupdate(){this.$cursor.css({'left':(this.audio.currentTime/this.audio.duration*this.timeline_w)+"px"});var rem=parseInt(this.audio.currentTime,10),mins=Math.floor(rem/60,10),secs=rem-mins*60;this.$currentTime.html(''+(mins<10?'0':'')+mins+':'+(secs<10?'0':'')+secs+'');},onEnded(){void 0;this.stop();this.emmit('audio-ended');},loadNode(nid){this.$cartel.addClass('loading');var vm='player_cartel';var ajax_path=_ajax_settings.entityjson_path+'/node/'+nid+'/'+vm;var path=_origin+Drupal.url(ajax_path);$.getJSON(path,{}).done(this.onNodeLoaded.bind(this)).fail(this.onNodeLoadFail.bind(this));},onNodeLoaded(data){void 0;this.$cartel.html(data.rendered).removeClass('loading');_$body.trigger({'type':'new-audio-cartel-loaded'});initAjaxLinks();this.scndCartel_visible=0;this.$cartel.removeClass('second-visible');if(this.$cartel.find('.second-cartel .col-left').children().length>1||this.$cartel.find('.second-cartel').children('.col-right').length){this.cartelSwitchInterval=setInterval(this.switchCartel.bind(this),this.cartelSwitchIntervalMS);} Drupal.attachBehaviors(this.$cartel);this.setAutoOpenArticle();if(this.auto_open_article){this.$cartel.find('a.link-article').trigger('click');this.auto_open_article=false;}},onNodeLoadFail(jqxhr,textStatus,error){void 0;this.$cartel.removeClass('loading').html('');},setAutoOpenArticle(art){this.auto_open_article=$('a.articles-link').is('.is-active');return this;},show(){this.$container_parent.addClass('audio-player-visible');this.$container.addClass('visible');},showHidePreviousBtn(){if(this.historic.length>1&&this.currentHistoricIndex>0){this.$previous.addClass('is-active');}else{this.$previous.removeClass('is-active');}},showHideNextBtn(){if(this.currentHistoricIndex=0;i--){handler=this.event_handlers[event_name][i];(function(handler,args){setTimeout(function(){handler(args);},0);}(handler,args));} return this;},} -function RandomPlayer(playlist){this.active=false;this.playlist=playlist;this.path=drupalSettings.path.baseUrl+drupalSettings.path.pathPrefix+'#random' +function RandomPlayer(playlist){this.active=false;this.playlist=playlist;this.path=_base_url+drupalSettings.path.pathPrefix+'#random' this.$btn=$('').html('Shuffle').attr('href',this.path).attr('alt',drupalSettings.edlp_corpus.random_link_title).addClass('random-player-btn');this.init();};RandomPlayer.prototype={init(){$('
').addClass('block random-player').append(this.$btn).prependTo('.region-footer-right');this.$btn.on('click',this.toggleActive.bind(this));_audioPlayer.on('audio-play-next',this.onAudioPlayNext.bind(this)).on('audio-ended',this.onAudioPlayerEnded.bind(this)).on('stop-shuffle',this.stop.bind(this));_$corpus_canvas.on('update-random-playlist',this.updatePlaylist.bind(this));if(window.location.hash=='#random'){this.start();}},updatePlaylist(e){this.playlist=e.playlist;this.shuffle();},shuffle(){var tempPLaylist=[];for(var i=this.playlist.length-1;i>=0;i--){tempPLaylist.push(this.playlist[i]);} this.shuffledPlaylist=[];while(tempPLaylist.length>0){var r=Math.floor(Math.random()*tempPLaylist.length);this.shuffledPlaylist.push(tempPLaylist.splice(r,1)[0]);}},toggleActive(e){e.preventDefault();if(this.active){this.stop();}else{this.start();} return false;},start(){this.active=_audioPlayer.shuffle_is_active=true;this.$btn.addClass('is-active');this.shuffle();this.next();if(typeof _paq!=='undefined'){_paq.push(['trackEvent','RandomPlayer','start']);}},stop(){this.active=false;this.$btn.removeClass('is-active');history.replaceState(history.state,null,window.location.pathname);_audioPlayer.deActivateRandom();if(typeof _paq!=='undefined'){_paq.push(['trackEvent','RandomPlayer','stop']);}},next(){void 0;if(this.active&&this.shuffledPlaylist.length>0) @@ -69,7 +71,7 @@ if(false){var $grid=$('.grid',_$row).masonry({itemSelector:'.col',columnWidth:'. $this.height(Math.min($this.attr('init-height'),_$row.height()));});};function checkGridBlockVisible(){var $r_h=_$row.height();var $this,pos;$('.grid .col',_$row).each(function(i,e){$this=$(this);pos=$this.position();if(pos.top+$this.height()<=$r_h){$this.removeClass('offfield');}else{$this.addClass('offfield');}});} function initCollectionNav(){void 0;$('.field--name-field-notice, .index','.taxonomy-term.vocabulary-entrees.home_mobile').addClass('closed');$('.field--name-field-notice>.field__label','.taxonomy-term.vocabulary-entrees.home_mobile').on('click',onClickCollectionNotice);$('.index>.field__label','.taxonomy-term.vocabulary-entrees.home_mobile').on('click',onClickCollectionIndex);};function onClickCollectionNotice(e){toggleEntreeOpening($(this).parent(),'notice');};function onClickCollectionIndex(e){toggleEntreeOpening($(this).parent(),'index');};function toggleEntreeOpening($e,part){$e.toggleClass('closed').parents('.taxonomy-term.vocabulary-entrees.home_mobile').toggleClass(part+'-opened');} function initSearch(){$('#edit-entries--wrapper legend','#edlp-search-form').on('click',function(){$(this).parent().toggleClass('opened');});};function initEnregistrementTranscript(){void 0;var $node=_$row.find('article.node--type-enregistrement.node--view-mode-transcript');var $nav=$('