« MediaWiki:Common.js » : différence entre les versions

De Wiki Campus Cyber
Aller à :navigation, rechercher
Aucun résumé des modifications
Aucun résumé des modifications
 
(166 versions intermédiaires par le même utilisateur non affichées)
Ligne 19 : Ligne 19 :
})
})


/** Déplace le sélecteur de langue **/
jQuery( document ).ready( function( $ ) {
jQuery( document ).ready( function( $ ) {
   $("#pt-uls").detach().appendTo("#langue_interface");
   $("#pt-uls").detach().appendTo("#langue_interface");
  $("#langue_interface a.uls-trigger").text("FR | EN");
});
})


/** MATOMO OPT-OUT **/
jQuery( document ).ready( function( $ ) {
jQuery( document ).ready( function( $ ) {
$(window).on('load', function() {
    showContent();
});
})


//MATOMO - OPT-OUT //
var settings = {
jQuery( document ).ready( function( $ ) {
  showIntro: true,
    settings = {"showIntro":true,
  divId: 'matomo-opt-out',
    "divId":"matomo-opt-out",
  useSecureCookies: true,
    "useSecureCookies":true,
  cookiePath: "/",
    "cookiePath":null,
  cookieDomain: "wiki.campuscyber.fr",
    "cookieDomain":null,
  cookieSameSite: 'Lax',
    "cookieSameSite":"Lax",
  OptOutComplete: "<p class='font-bold'>Cookie d'exclusion install\u00e9.</p><p>Vos visites sur ce site web ne seront PAS enregistr\u00e9es par notre outil d'analyse web.</p>",
    "OptOutComplete":"Cookie d'exclusion install\u00e9. Vos visites sur ce site web ne seront PAS enregistr\u00e9es par notre outil d'analyse web.",
  OptOutCompleteBis: "<p>Note\u00a0: si vous nettoyez vos cookies et supprimez le cookie d'exclusion, ou bien si vous changez d'ordinateur et\/ou de navigateur, il vous faudra de nouveau effectuer la proc\u00e9dure d'exclusion.</p>",
    "OptOutCompleteBis":"Note\u00a0: si vous nettoyez vos cookies et supprimez le cookie d'exclusion, ou bien si vous changez d'ordinateur et\/ou de navigateur, il vous faudra de nouveau effectuer la proc\u00e9dure d'exclusion.",
  YouMayOptOut2: 'Vous pouvez vous opposer au suivi de votre navigation sur ce site web. ',
    "YouMayOptOut2":"Vous pouvez vous opposer au suivi de votre navigation sur ce site web.",
  YouMayOptOut3: "Cela prot\u00e9gera votre vie priv\u00e9e, mais emp\u00eachera \u00e9galement le propri\u00e9taire d'apprendre de vos actions et de cr\u00e9er une meilleure exp\u00e9rience pour vous et les autres utilisateurs.",
    "YouMayOptOut3":"Cela prot\u00e9gera votre vie priv\u00e9e, mais emp\u00eachera \u00e9galement le propri\u00e9taire d'apprendre de vos actions et de cr\u00e9er une meilleure exp\u00e9rience pour vous et les autres utilisateurs.",
  OptOutErrorNoCookies: 'La fonctionnalit\u00e9 de d\u00e9sactivation du suivi n\u00e9cessite que les cookies soient autoris\u00e9s.',
    "OptOutErrorNoCookies":"La fonctionnalit\u00e9 de d\u00e9sactivation du suivi n\u00e9cessite que les cookies soient autoris\u00e9s.",
  OptOutErrorNotHttps: "La fonctionnalit\u00e9 de d\u00e9sactivation du suivi pourrait ne pas fonctionner car ce site n'a pas \u00e9t\u00e9 charg\u00e9 en HTTPS. Veuillez recharger la page pour v\u00e9rifier que le statut de ce suivi a bien \u00e9t\u00e9 chang\u00e9.",
    "OptOutErrorNotHttps":"La fonctionnalit\u00e9 de d\u00e9sactivation du suivi pourrait ne pas fonctionner car ce site n'a pas \u00e9t\u00e9 charg\u00e9 en HTTPS. Veuillez recharger la page pour v\u00e9rifier que le statut de ce suivi a bien \u00e9t\u00e9 chang\u00e9.",
  YouAreNotOptedOut: "<span class='px-3'>Vous n'\u00eates pas exclu(e).</span>",
    "YouAreNotOptedOut":"Vous n'\u00eates pas exclu(e).",
  UncheckToOptOut: 'D\u00e9cochez cette case pour vous exclure.',
    "UncheckToOptOut":"D\u00e9cochez cette case pour vous exclure.",
  YouAreOptedOut: "<span class='px-3'>Vous n'\u00eates actuellement pas suivi(e).</span>",
    "YouAreOptedOut":"Vous n'\u00eates actuellement pas suivi(e).",
  CheckToOptIn: 'Cochez cette case pour ne plus \u00eatre exclu(e).',
    "CheckToOptIn":"Cochez cette case pour ne plus \u00eatre exclu(e)."
};
  };       
 
function showContent(consent,errorMessage, useTracker) {
 
    var errorBlock = '<p style="color: red; font-weight: bold;">';
 
    var div = document.getElementById(settings.divId);
 
    if (!div) {
    // var warningDiv = document.createElement('div');
    var msg = "Unable to find opt-out content div : " + settings.divId ;
    // warningDiv.id = settings.divId + '-warning';
    // warningDiv.innerHTML = errorBlock + msg ;
    // document.body.insertBefore(warningDiv, document.body.firstChild);
    // console.log(msg);
    return;
    }
      
      
function showContent(consent, errorMessage = null, useTracker = false,) {
    if (!navigator || !navigator.cookieEnabled) {
            var errorBlock = '<p style="color: red; font-weight: bold;">';
      div.innerHTML = errorBlock + settings.OptOutErrorNoCookies ;
      return;
    }
    if (location.protocol !== 'https:') {
      div.innerHTML = errorBlock + settings.OptOutErrorNotHttps;
      return;
    }
    if (errorMessage !== null) {
      div.innerHTML = errorBlock + errorMessage;
      return;
    }
    content = '';
     
    if (consent) {
    console.log(useTracker + "0");
      if (settings.showIntro) {
        content += "<p>" + settings.YouMayOptOut2 + settings.YouMayOptOut3 + "</p>";
      }
      if (useTracker) {
      console.log(useTracker + "1");
        content += '<input onclick="_paq.push([\"optUserOut\"]);window.location.reload(true);" id="trackVisits" type="checkbox" checked="checked" />';
      } else {
      console.log(useTracker + "2");
        content += '<input onclick="window.MatomoConsent.consentRevoked();window.location.reload(true);" id="trackVisits" type="checkbox" checked="checked" />';
      }
      content += '<label for="trackVisits"><strong><span>' + settings.YouAreNotOptedOut + settings.UncheckToOptOut + "</span></strong></label>";
    } else {
      if (settings.showIntro) {
        content += '<p>' + settings.OptOutComplete + settings.OptOutCompleteBis + "</p>";
      }
      if (useTracker) {
            console.log(useTracker + "3");
        content += '<input onclick="_paq.push([\"forgetUserOptOut\"]);window.location.reload(true);" id="trackVisits" type="checkbox" />';
      } else {
      console.log(useTracker + "4");
 
        content += '<input onclick="window.MatomoConsent.consentGiven();window.location.reload(true);" id="trackVisits" type="checkbox" />';
      }
        content += '<label for="trackVisits"><strong><span>' + settings.YouAreOptedOut + settings.CheckToOptIn + "</span></strong></label>";
      }
      console.log(useTracker + "99");
    div.innerHTML = content;
    }
      
      
            var div = document.getElementById(settings.divId);
window.MatomoConsent = {
            if (!div) {
  cookiesDisabled: (!navigator || !navigator.cookieEnabled),
                const warningDiv = document.createElement("div");
  CONSENT_COOKIE_NAME: 'mtm_consent',
                var msg = 'Unable to find opt-out content div: "'+settings.divId+'"';
  CONSENT_REMOVED_COOKIE_NAME: 'mtm_consent_removed',
                warningDiv.id = settings.divId+'-warning';
  cookieIsSecure: false,
                warningDiv.innerHTML = errorBlock+msg+'</p>';
  useSecureCookies: true,
                document.body.insertBefore(warningDiv, document.body.firstChild);
  cookiePath: '',
                console.log(msg);
  cookieDomain: '',
                return;
  cookieSameSite: 'Lax',
            }
  init : function(useSecureCookies, cookiePath, cookieDomain, cookieSameSite) {
            if (!navigator || !navigator.cookieEnabled) {
    this.useSecureCookies = useSecureCookies; this.cookiePath = cookiePath;
                div.innerHTML = errorBlock+settings.OptOutErrorNoCookies+'</p>';
    this.cookieDomain = cookieDomain; this.cookieSameSite = cookieSameSite;
                return;
    if (useSecureCookies && location.protocol !== 'https:') {
            }
      console.log('Error with setting useSecureCookies: You cannot use this option on http.');
            if (location.protocol !== 'https:') {
    } else {
                div.innerHTML = errorBlock+settings.OptOutErrorNotHttps+'</p>';
      this.cookieIsSecure = useSecureCookies;
                return;
    }
            }       
  },
            if (errorMessage !== null) {
  hasConsent : function() {
                div.innerHTML = errorBlock+errorMessage+'</p>';
    consentCookie = this.getCookie(this.CONSENT_COOKIE_NAME);
                return;
    removedCookie = this.getCookie(this.CONSENT_REMOVED_COOKIE_NAME);
            }
            var content = '';       
            if (consent) {
                if (settings.showIntro) {
                    content += '<p>'+settings.YouMayOptOut2+' '+settings.YouMayOptOut3+'</p>';                      
                }
                if (useTracker) {
                    content += '<input onclick="_paq.push([\'optUserOut\']);showContent(false, null, true);" id="trackVisits" type="checkbox" checked="checked" />';
                } else {
                    content += '<input onclick="window.MatomoConsent.consentRevoked();showContent(false);" id="trackVisits" type="checkbox" checked="checked" />';
                }
                content += '<label for="trackVisits"><strong><span>'+settings.YouAreNotOptedOut+' '+settings.UncheckToOptOut+'</span></strong></label>';                              
            } else {
                if (settings.showIntro) {
                    content += '<p>'+settings.OptOutComplete+' '+settings.OptOutCompleteBis+'</p>';
                }
                if (useTracker) {
                    content += '<input onclick="_paq.push([\'forgetUserOptOut\']);showContent(true, null, true);" id="trackVisits" type="checkbox" />';
                } else {
                    content += '<input onclick="window.MatomoConsent.consentGiven();showContent(true);" id="trackVisits" type="checkbox" />';
                }
                content += '<label for="trackVisits"><strong><span>'+settings.YouAreOptedOut+' '+settings.CheckToOptIn+'</span></strong></label>';
            }                  
            div.innerHTML = content;     
        }
       
    document.addEventListener('DOMContentLoaded', function() {                            
        window.MatomoConsent.init(settings.useSecureCookies, settings.cookiePath, settings.cookieDomain, settings.cookieSameSite);              
        showContent(window.MatomoConsent.hasConsent());       
    });  
      
      
        window.MatomoConsent = {                       
     if (!consentCookie && !removedCookie) {
            cookiesDisabled: (!navigator || !navigator.cookieEnabled),       
      return true; // No cookies set, so opted in
            CONSENT_COOKIE_NAME: 'mtm_consent', CONSENT_REMOVED_COOKIE_NAME: 'mtm_consent_removed',
    }
            cookieIsSecure: false, useSecureCookies: true, cookiePath: '', cookieDomain: '', cookieSameSite: 'Lax',      
    if (removedCookie && consentCookie) {
            init: function(useSecureCookies, cookiePath, cookieDomain, cookieSameSite) {
      this.setCookie(this.CONSENT_COOKIE_NAME, '', -8888888);
                this.useSecureCookies = useSecureCookies; this.cookiePath = cookiePath;
      return false;
                this.cookieDomain = cookieDomain; this.cookieSameSite = cookieSameSite;
    }
                if(useSecureCookies && location.protocol !== 'https:') {
    console.log("OK");
                    console.log('Error with setting useSecureCookies: You cannot use this option on http.');           
    return (consentCookie || consentCookie !== 0);
                } else {
  },
                    this.cookieIsSecure = useSecureCookies;
  consentGiven : function() {
                }
    this.setCookie(this.CONSENT_REMOVED_COOKIE_NAME, '', -129600000);
            },             
    this.setCookie(this.CONSENT_COOKIE_NAME, new Date().getTime(), 946080000000);
            hasConsent: function() {
  },
                var consentCookie = this.getCookie(this.CONSENT_COOKIE_NAME);
  consentRevoked : function() {
                var removedCookie = this.getCookie(this.CONSENT_REMOVED_COOKIE_NAME);
    this.setCookie(this.CONSENT_COOKIE_NAME, '', -129600000);
                if (!consentCookie && !removedCookie) {
    this.setCookie(this.CONSENT_REMOVED_COOKIE_NAME, new Date().getTime(), 946080000000);
                    return true; // No cookies set, so opted in
  },
                }
  getCookie : function(cookieName) {
                if (removedCookie && consentCookie) {              
    var cookiePattern = new RegExp('(^|;)[ ]*'+cookieName+'=([^;]*)');
                    this.setCookie(this.CONSENT_COOKIE_NAME, '', -129600000);            
    var cookieMatch = cookiePattern.exec(document.cookie);
                    return false;
    return cookieMatch ? window.decodeURIComponent(cookieMatch[2]) : 0;
                }              
  },
                return (consentCookie || consentCookie !== 0);          
  setCookie : function(cookieName, value, msToExpire) {
            },      
    var expiryDate = new Date();
            consentGiven: function() {                                                      
    expiryDate.setTime((new Date().getTime()) + msToExpire);
                this.setCookie(this.CONSENT_REMOVED_COOKIE_NAME, '', -129600000);
    document.cookie = cookieName + "=" + window.encodeURIComponent(value) + ";expires=" + expiryDate.toGMTString() + ";path=" + this.cookiePath + ";domain=" + this.cookieDomain + ";secure=" + ";SameSite=" + this.cookieSameSite;
                this.setCookie(this.CONSENT_COOKIE_NAME, new Date().getTime(), 946080000000);
    if ((!msToExpire || msToExpire >= 0) && this.getCookie(cookieName) !== String(value)) {
            },    
      console.log('There was an error setting cookie ' + cookieName + '. Please check domain and path.');
            consentRevoked: function() {  
    }
                this.setCookie(this.CONSENT_COOKIE_NAME, '', -129600000);
  },
                this.setCookie(this.CONSENT_REMOVED_COOKIE_NAME, new Date().getTime(), 946080000000);              
};
            },                  
 
            getCookie: function(cookieName) {          
window.MatomoConsent.init(settings.useSecureCookies, settings.cookiePath, settings.cookieDomain, settings.cookieSameSite);
                var cookiePattern = new RegExp('(^|;)[ ]*' + cookieName + '=([^;]*)'), cookieMatch = cookiePattern.exec(document.cookie);
 
                return cookieMatch ? window.decodeURIComponent(cookieMatch[2]) : 0;
showContent(window.MatomoConsent.hasConsent(),null,false);
            },      
 
            setCookie: function(cookieName, value, msToExpire) {                      
                var expiryDate = new Date();
                expiryDate.setTime((new Date().getTime()) + msToExpire);          
                document.cookie = cookieName + '=' + window.encodeURIComponent(value) +
                    (msToExpire ? ';expires=' + expiryDate.toGMTString() : '') +
                    ';path=' + (this.cookiePath || '/') +
                    (this.cookieDomain ? ';domain=' + this.cookieDomain : '') +
                    (this.cookieIsSecure ? ';secure' : '') +
                    ';SameSite=' + this.cookieSameSite;              
                if ((!msToExpire || msToExpire >= 0) && this.getCookie(cookieName) !== String(value)) {
                    console.log('There was an error setting cookie `' + cookieName + '`. Please check domain and path.');              
                }
            }
        };
})
})

Dernière version du 17 novembre 2023 à 17:50

/* Tout JavaScript présent ici sera exécuté par tous les utilisateurs à chaque chargement de page. */

/* Clic sur l'entièreté des div RSS de la page d'accueil */
jQuery( document ).ready( function( $ ) {
// on post click go to article url
    $( '.rss-item' ).unbind().click(function() {
        var url = $(this).find("a").attr("href");
        window.open(url, '_blank');
    } );
})

/* Clic sur l'entièreté des div #ask de la page d'accueil */
jQuery( document ).ready( function( $ ) {
// on post click go to article url
    $( '.class-item' ).unbind().click(function() {
        var url = $(this).find("a").attr("href"); 
        window.location = url;
    } );
})

/** Déplace le sélecteur de langue **/
jQuery( document ).ready( function( $ ) {
   $("#pt-uls").detach().appendTo("#langue_interface");
});

/** MATOMO OPT-OUT **/
jQuery( document ).ready( function( $ ) {

var settings = {
  showIntro: true,
  divId: 'matomo-opt-out',
  useSecureCookies: true,
  cookiePath: "/",
  cookieDomain: "wiki.campuscyber.fr",
  cookieSameSite: 'Lax',
  OptOutComplete: "<p class='font-bold'>Cookie d'exclusion install\u00e9.</p><p>Vos visites sur ce site web ne seront PAS enregistr\u00e9es par notre outil d'analyse web.</p>",
  OptOutCompleteBis: "<p>Note\u00a0: si vous nettoyez vos cookies et supprimez le cookie d'exclusion, ou bien si vous changez d'ordinateur et\/ou de navigateur, il vous faudra de nouveau effectuer la proc\u00e9dure d'exclusion.</p>",
  YouMayOptOut2: 'Vous pouvez vous opposer au suivi de votre navigation sur ce site web. ',
  YouMayOptOut3: "Cela prot\u00e9gera votre vie priv\u00e9e, mais emp\u00eachera \u00e9galement le propri\u00e9taire d'apprendre de vos actions et de cr\u00e9er une meilleure exp\u00e9rience pour vous et les autres utilisateurs.",
  OptOutErrorNoCookies: 'La fonctionnalit\u00e9 de d\u00e9sactivation du suivi n\u00e9cessite que les cookies soient autoris\u00e9s.',
  OptOutErrorNotHttps: "La fonctionnalit\u00e9 de d\u00e9sactivation du suivi pourrait ne pas fonctionner car ce site n'a pas \u00e9t\u00e9 charg\u00e9 en HTTPS. Veuillez recharger la page pour v\u00e9rifier que le statut de ce suivi a bien \u00e9t\u00e9 chang\u00e9.",
  YouAreNotOptedOut: "<span class='px-3'>Vous n'\u00eates pas exclu(e).</span>",
  UncheckToOptOut: 'D\u00e9cochez cette case pour vous exclure.',
  YouAreOptedOut: "<span class='px-3'>Vous n'\u00eates actuellement pas suivi(e).</span>",
  CheckToOptIn: 'Cochez cette case pour ne plus \u00eatre exclu(e).',
};

function showContent(consent,errorMessage, useTracker) {

    var errorBlock = '<p style="color: red; font-weight: bold;">';

    var div = document.getElementById(settings.divId);

    if (!div) {
     // var warningDiv = document.createElement('div');
     var msg = "Unable to find opt-out content div : " + settings.divId ;
     // warningDiv.id = settings.divId + '-warning';
     // warningDiv.innerHTML = errorBlock + msg ;
     // document.body.insertBefore(warningDiv, document.body.firstChild);
     // console.log(msg);
    return;
    }
    
    if (!navigator || !navigator.cookieEnabled) {
      div.innerHTML = errorBlock + settings.OptOutErrorNoCookies ;
      return;
    }
    if (location.protocol !== 'https:') {
      div.innerHTML = errorBlock + settings.OptOutErrorNotHttps;
      return;
    }
    if (errorMessage !== null) {
      div.innerHTML = errorBlock + errorMessage;
      return;
    }
    content = '';
      
    if (consent) {
    	console.log(useTracker + "0");
      if (settings.showIntro) {
        content += "<p>" + settings.YouMayOptOut2 + settings.YouMayOptOut3 + "</p>";
      }
      if (useTracker) {
      	console.log(useTracker + "1");
        content += '<input onclick="_paq.push([\"optUserOut\"]);window.location.reload(true);" id="trackVisits" type="checkbox" checked="checked" />';
      } else {
      	console.log(useTracker + "2");
        content += '<input onclick="window.MatomoConsent.consentRevoked();window.location.reload(true);" id="trackVisits" type="checkbox" checked="checked" />';
      }
      content += '<label for="trackVisits"><strong><span>' + settings.YouAreNotOptedOut + settings.UncheckToOptOut + "</span></strong></label>";
    } else {
      if (settings.showIntro) {
        content += '<p>' + settings.OptOutComplete + settings.OptOutCompleteBis + "</p>";
      }
      if (useTracker) {
      	      	console.log(useTracker + "3");
        content += '<input onclick="_paq.push([\"forgetUserOptOut\"]);window.location.reload(true);" id="trackVisits" type="checkbox" />';
      } else {
      console.log(useTracker + "4");

        content += '<input onclick="window.MatomoConsent.consentGiven();window.location.reload(true);" id="trackVisits" type="checkbox" />';
      }
        content += '<label for="trackVisits"><strong><span>' + settings.YouAreOptedOut + settings.CheckToOptIn + "</span></strong></label>";
      }
      console.log(useTracker + "99");
    div.innerHTML = content;
    }
    
window.MatomoConsent = {
  cookiesDisabled: (!navigator || !navigator.cookieEnabled),
  CONSENT_COOKIE_NAME: 'mtm_consent',
  CONSENT_REMOVED_COOKIE_NAME: 'mtm_consent_removed',
  cookieIsSecure: false,
  useSecureCookies: true,
  cookiePath: '',
  cookieDomain: '',
  cookieSameSite: 'Lax',
  init : function(useSecureCookies, cookiePath, cookieDomain, cookieSameSite) {
    this.useSecureCookies = useSecureCookies; this.cookiePath = cookiePath;
    this.cookieDomain = cookieDomain; this.cookieSameSite = cookieSameSite;
    if (useSecureCookies && location.protocol !== 'https:') {
      console.log('Error with setting useSecureCookies: You cannot use this option on http.');
    } else {
      this.cookieIsSecure = useSecureCookies;
    }
  },
  hasConsent : function() {
    consentCookie = this.getCookie(this.CONSENT_COOKIE_NAME);
    removedCookie = this.getCookie(this.CONSENT_REMOVED_COOKIE_NAME);
    
    if (!consentCookie && !removedCookie) {
      return true; // No cookies set, so opted in
    }
    if (removedCookie && consentCookie) {
      this.setCookie(this.CONSENT_COOKIE_NAME, '', -8888888);
      return false;
    }
    console.log("OK");
    return (consentCookie || consentCookie !== 0);
  },
  consentGiven : function() {
    this.setCookie(this.CONSENT_REMOVED_COOKIE_NAME, '', -129600000);
    this.setCookie(this.CONSENT_COOKIE_NAME, new Date().getTime(), 946080000000);
  },
  consentRevoked : function() {
    this.setCookie(this.CONSENT_COOKIE_NAME, '', -129600000);
    this.setCookie(this.CONSENT_REMOVED_COOKIE_NAME, new Date().getTime(), 946080000000);
  },
  getCookie : function(cookieName) {
    var cookiePattern = new RegExp('(^|;)[ ]*'+cookieName+'=([^;]*)'); 
    var cookieMatch = cookiePattern.exec(document.cookie);
    return cookieMatch ? window.decodeURIComponent(cookieMatch[2]) : 0;
  },
  setCookie : function(cookieName, value, msToExpire) {
    var expiryDate = new Date();
    expiryDate.setTime((new Date().getTime()) + msToExpire);
    document.cookie = cookieName + "=" + window.encodeURIComponent(value) +  ";expires=" + expiryDate.toGMTString() + ";path=" + this.cookiePath + ";domain=" + this.cookieDomain + ";secure=" +  ";SameSite=" + this.cookieSameSite;
    if ((!msToExpire || msToExpire >= 0) && this.getCookie(cookieName) !== String(value)) {
      console.log('There was an error setting cookie ' + cookieName + '. Please check domain and path.');
    }
  },
};

window.MatomoConsent.init(settings.useSecureCookies, settings.cookiePath, settings.cookieDomain, settings.cookieSameSite);

showContent(window.MatomoConsent.hasConsent(),null,false);

})