/** * @file * Global utilities. * */ (function($, Drupal) { 'use strict'; Drupal.behaviors.bootstrap_barrio_subtheme = { attach: function(context, settings) { var position = $(window).scrollTop(); $(window).scroll(function () { if ($(this).scrollTop() > 50) { $('body').addClass("scrolled"); } else { $('body').removeClass("scrolled"); } if ($(this).scrollTop() > 250) { $('body').addClass("show_go_top"); } else { $('body').removeClass("show_go_top"); } var scroll = $(window).scrollTop(); if (scroll > position) { $('body').addClass("scrolldown"); $('body').removeClass("scrollup"); } else { $('body').addClass("scrollup"); $('body').removeClass("scrolldown"); } position = scroll; }); } }; // Dom is ready var allLoaded = false; Drupal.behaviors.icsii = { attach: function (context, settings) { /** * Dom ready */ //console.log('Big Pipe block load count : ' + $('[data-big-pipe-placeholder-id]').length); if (($('[data-big-pipe-placeholder-id]').length == 0 || $('[data-big-pipe-placeholder-id]').length == 1) && !allLoaded) { var isIE11 = !!window.MSInputMethodContext && !!document.documentMode; allLoaded = true; console.log('global.js : dom is ready'); // Language selector $('.language-link').each(function() { var lang = $(this).attr('hreflang'); $(this).text(lang); }); // Desktop Menu hover if($(window).width() > 980){ $('#CollapsingNavbar .menu-item--expanded.dropdown').hover(function(e){ e.stopPropagation(); $(this).addClass('show'); $(this).find('> .dropdown-menu').addClass('show'); // Hide third level on second level open if($(this).hasClass('nav-item')) $(this).find('.dropdown-menu .dropdown-menu').removeClass('show'); },function(e){ e.stopPropagation(); $(this).removeClass('show'); // Only hide if is second level (not third) if($(this).hasClass('nav-item')) $(this).find('> .dropdown-menu').removeClass('show'); }); // Allow click on second level $('#CollapsingNavbar .menu-item--expanded.dropdown').click(function(e){ e.stopPropagation(); }); } // Menu item subtitles $('#navbar-main .block-menu .nav-link').each(function() { if ($(this).attr('title')) { var subtitle = $(this).attr('title'); $(this).append( ""+subtitle+"" ); } }); // Hamburger menu $('#CollapsingNavbar').on('show.bs.collapse', function() { $('.hamburger').addClass('is-active'); }) $('#CollapsingNavbar').on('hide.bs.collapse', function() { $('.hamburger').removeClass('is-active'); }) // Masonry & form behavior (plus / more filter button) if($(window).width() > 980){ var massonry_option = { itemSelector: '.result', columnWidth: 2, horizontalOrder: true, //percentPosition: true }; // SetTimeOut for masonry for loading all elements before setTimeout(function(){ $('.section.publications .liste').masonry({ itemSelector: '.views-row', columnWidth: 2, horizontalOrder: true, }); $('.news_results').masonry(massonry_option); }, 800); // Listings form, more filters button $('#recherche_formation button.plus').on('click',function(e){ e.preventDefault(); $('#recherche_formation .more_filters').toggleClass('open'); }); }else{ // Show listings form as "accordions" (all listings) $('body:not(.path-frontpage) form[id^="recherche_"] .title').on('click',function(){ $('form[id^="recherche_"]').toggleClass('active'); }); } $(window).resize(function(e) { //home header display header_home_display(); }); // Paginate JS $('.paginate').on('click','a',function(e){ e.preventDefault(); var $container = $(this).closest('.container'); $container.find('.result:hidden').slice(0,16).fadeIn(300,function(){ // Reload massonry if page is listing news if($(window).width() > 980 && $('.news_results').length){ $('.news_results').masonry(massonry_option); // rebuild masonry } }); $container.find('.paginate .current').text($container.find('.result:not(:hidden)').length); if($container.find('.paginate .current').text() == $container.find('.paginate .total').text()) $container.find('.paginate').hide(); }); if($(".autodi_results .node ").length > 0){ $(".autodi_results .node:gt(3)").hide(); } $('.paginate_podcast').on('click','a',function(e){ e.preventDefault(); var total = $(".paginate_podcast .total").text(); var current = $(".paginate_podcast .current").text(); var podcastsShow = parseInt(current) + 4; $(".autodi_results .node:lt("+podcastsShow+")").show(); $(".paginate_podcast .current").text(podcastsShow); if(parseInt(podcastsShow) >= parseInt(total)){ $(".paginate_podcast").hide(); } }); // Wow var wow = new WOW({mobile:false,offset: 0}); wow.init(); // Select2 $('.main-content select').select2(); // Home events if ($('.next-events').length > 0) { $('.next-events .node--type-article').each(function() { $(this).find('.date').insertBefore($(this).find('.title')); }) } if($(window).width() > 980 && !isIE11){ // Home Parallax var img_entete = $('body:not(.adminimal-admin-toolbar):not(.node--type-prestation):not(.node--type-formation):not(.node--type-thematique):not(.node--type-accueil-corporate):not(.node--type-produit):not(.page-node-37) .field--name-field-image-entete'); if (img_entete.length > 0 && !img_entete.parent().hasClass('video_entete')) { var rellax1 = new Rellax('.field--name-field-image-entete img', { speed: -4, center: true, vertical: true }); } header_home_display(); } function header_home_display () { if ($('.node--type-accueil-corporate').length > 0) { var headerHeight = $('.node--type-accueil-corporate .header_icsi').outerHeight(); var menuHeight = $('.node--type-accueil-corporate #navbar-top').outerHeight() + $('.node--type-accueil-corporate #navbar-main').outerHeight(); $('.node--type-accueil-corporate .header_icsi').css('top','0'); if($(window).width() > 980) $('.section.liste_thematiques').css('margin-top',headerHeight - menuHeight); } } // Scroller if($('.caroussel-icsi-wrapper').length){ var options = { horizontal: 1, scrollBar: $('.scrollbar'), speed: 800, //scrollBy: 1, //mouseDragging: 0, //touchDragging: 1, dragHandle: 1, startAt: 2, activateMiddle: 1, activateOn: 'click', smart: 1, //dynamicHandle: 1, clickBar: 1, itemNav: 'forceCentered', //centered , basic , forceCentered prev: $('.caroussel-icsi-wrapper').parent().find('.prev'), next: $('.caroussel-icsi-wrapper').parent().find('.next') }; var frame = new Sly('.caroussel-icsi-wrapper', options).init(); //console.log("INIT SLY. Test : ", $('.caroussel-icsi-wrapper').length); $(window).resize(function(e) { frame.reload(); }); } // Blocklink $('.blocklink, .node--type-article.node--view-mode-teaser, .node--view-mode-teaser.dossier').click(function(){ if ($(this).find('a').length > 0) { var link = $(this).find('a').attr('href'); if ($(this).find('a').attr('target')) { window.open(link, '_blank'); } else { window.location = link; } } }); // Formation count if ($('.count').length > 0) { $('.count').appendTo("#recherche_formation"); } // Force l'ouverture des liens externes dans de nouveaux onglets var domain = window.location.hostname; console.warn(domain); $('#block-icsii-content a').each(function(){ var link = $(this).attr('href'); if(link != null){ if(link != '#' && link.indexOf('http') !== -1 && link.indexOf(domain) == -1){ //console.log(link, 'is external link, and does not contain (must add target blank)', domain); $(this).attr('target', '_blank'); } } }); // Bouton inscription session et formulaire d'inscription à une session $(".form-item-session").hide(); $('.bouton_inscription_session').each(function(){ var titre = $('h1 .field--name-field-titre').html(); var inter = $('.field--name-field-duree-de-session-inter').length ? 'inter' : ''; var intra = $('.field--name-field-duree-de-session-intra').length ? 'intra' : ''; var lieu = $(this).parent().find('.field--name-field-ville').text(); var session = $(this).parent().find('.field--name-field-session-titre').text(); $(this).attr('href',"/inscription?nom=" + titre + "&type=" + inter + intra + "&session=" + session + ' à ' + lieu); }); $('.form-item-formation-list').parent().after($('.form-item-session.form-group')); $('#edit-formation-list').change(function(){ var formation_id = $(this).val(); var option_enabled = false; $('#edit-dates-de-la-session').val(''); // remove selected option $('#edit-nom-de-la-formation').val($(this).find('option:selected').text()).change(); // add selected option $('.form-item-session select option').each(function(){ $(this).prop('disabled','disabled'); if($(this).attr('value').indexOf(formation_id + '-') !== -1){ $(this).removeAttr('disabled'); option_enabled = true; $(".form-item-session select").val($(this).attr('value')).trigger('change'); // refresh select2 } }); if(option_enabled){ $(".form-item-session").show(); }else{ $(".form-item-session").hide(); } }); $('.form-item-session select').change(function(){ var session_selected = $(this).find("option:selected").text(); $('#edit-dates-de-la-session').val(session_selected).change(); }); if (window.location.href.indexOf("nom") > -1) { $('.form-item-session.form-group').hide(); $('.form-item-formation-list').hide(); // Debug iield "Formation souhaitée" $('#edit-nom-de-la-formation').val($('#edit-nom-de-la-formation').val().replace(/'/g,"'")); } else { $('#edit-nom-de-la-formation').parent().hide(); $('#edit-dates-de-la-session').parent().hide(); } // Homepage prestation, formulaire de recherche $('.plus_de_criteres').click(function(e){ e.preventDefault(); $(this).hide(); $('#recherche_formation').addClass('active'); }); // En savoir plus $('.collapse').on('show.bs.collapse', function () { $(this).parent().addClass('active'); $('.collapse').collapse('hide'); }) $('.collapse').on('hide.bs.collapse', function () { $(this).parent().removeClass('active'); }) $('.card-savoir-plus').each(function() { var rand = Math.floor(Math.random() * 10000) + 1 $(this).find('h3').attr('data-target','#col'+rand); $(this).find('.collapse').attr('id','col'+rand); }) // thematique list count if($('.liste_thematiques').length){ var thematique_length = $('.liste_thematiques .field--name-field-accueil-liens-thematiques > .field__item'); $('.liste_thematiques .counter').text(thematique_length.length); } if ($(window).width() > 980){ // Big menu (prestation) $('#block-safetyinpracticeorgnavigation ul.nav.navbar-nav > li:first-child a').hover(function(e){ e.stopPropagation(); /*if ($('.icsi_big_menu').hasClass('active')) { $(this).parent().removeClass('active'); $('.icsi_big_menu').removeClass('active').addClass('inactive'); } else {*/ $(this).parent().toggleClass('active'); $('.icsi_big_menu').toggleClass('active').removeClass('inactive'); //} },function(e){ /*e.stopPropagation(); $(this).parent().removeClass('active'); $('.icsi_big_menu').removeClass('active').addClass('inactive');*/ }); // Close big menu $("#block-navigationprincipaleprestation .dropdown").on("show.bs.dropdown", function(event){ if ($('.icsi_big_menu').hasClass('active')) { $(this).parent().removeClass('active'); $('.icsi_big_menu').removeClass('active').addClass('inactive'); } }); // Close big menu when hover on other elements $('#block-safetyinpracticeorgnavigation ul.nav.navbar-nav > li:nth-child(2) a, #block-safetyinpracticeorgnavigation ul.nav.navbar-nav > li:nth-child(3) a').hover(function (e) { $('#block-safetyinpracticeorgnavigation ul.nav.navbar-nav > li:first-child').parent().removeClass('active'); $('.icsi_big_menu').removeClass('active').addClass('inactive'); }); $('.icsi_big_menu').hover(function () { }, function () { $('#block-safetyinpracticeorgnavigation ul.nav.navbar-nav > li:first-child').parent().removeClass('active'); $('.icsi_big_menu').removeClass('active').addClass('inactive'); }); } // Video player if($('.header_right').hasClass('video')){ /* var iframe = $('.header_right iframe:first'); var iframe_src = iframe.attr('src'); var youtube_video_id = iframe_src.match(/youtube\.com.*(\?v=|\/embed\/)(.{11})/).pop(); if (youtube_video_id.length == 11) { $('.icsi-modal').modal({ show: false}) var video_thumbnail = '';*/ $('.video_entete iframe').hide(); //$('.video_entete').append('