diff --git a/targets/alert-cli/src/dares/__mocks__/page_dares.html b/targets/alert-cli/src/dares/__mocks__/page_dares.html index 1e3453521..9760b5efe 100644 --- a/targets/alert-cli/src/dares/__mocks__/page_dares.html +++ b/targets/alert-cli/src/dares/__mocks__/page_dares.html @@ -1,879 +1,861 @@ - - - - - + + + + + Conventions collectives : nomenclatures - Ministère du travail, de la santé et des solidarités + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - + - + + + + + + + + + + + + + + - - - - + // ======================================= + // Menu d'accès rapide (liens d'évitement) + // ======================================= + // Caché par défaut, on donne les classes nécessaires au conteneur au focus + // .no-focus et .has-focus + // sans js, il est tout simplement visible + function liensEvitement() { + var access = $("#access"); + // au chargement, on ajoute la classe nécessaire pour le cacher + access.addClass("no-focus"); + // au focus + access.focusin(function () { + $(this).addClass("has-focus").removeClass("no-focus"); + }); + // fin du focus + access.focusout(function () { + $(this).addClass("no-focus").removeClass("has-focus"); + }); + } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // ========= + // Méga menu + // ========= + + // variables générales + // rappel du markup : + //
  • + // ... + // + //
  • + var amegmen_options = {supportedCols: 5}; + + var amegmen_institutionnel = AMegMen.Root.getInstance(); + amegmen_institutionnel.init("#institutionnel", amegmen_options); + + var amegmen_thematiques = AMegMen.Root.getInstance(); + amegmen_thematiques.init("#thematiques", amegmen_options); + + var amegmen_intitu_them = AMegMen.Root.getInstance(); + amegmen_intitu_them.init("#intitu_them", amegmen_options); + + $('.menu-objet .__amegmen--anchor-l0').attr('href', '#'); + $('.menu-objet .__amegmen--panel').removeClass('none'); + + function calcHeight(divs) { + var highestHeight = 0; + if (divs) { + divs.each(function () { + var currentHeight = $(this).height(); + // console.log(highestHeight); + // console.log(currentHeight); + if (currentHeight > highestHeight) { + highestHeight = currentHeight; + } + }); + divs.each(function () { + $(this).css({height: highestHeight + 'px'}); + }); + } + } - + calcHeight($('.noisette_liste_objets .article-rubrique__body a .texte')); + noaside('[class*=" rubrique_faq"]'); + noaside('[class*=" rubrique_abc"]'); + noaside('[class*=" page_mot"]'); + + /** + * S'il n'y a pas de noisettes dans l'aside, alors on met la colonne .content sur toute la largeur. + */ + function noaside(target) { + if ($(target).length > 0) { + var aside = document.getElementById('aside'); + var content = document.getElementById('content'); + if (aside.innerHTML.indexOf("noisette") != -1) { + } else { + content.style.width = "100%"; + } + } + } - - - - + /** + * Lorsque la noisette `bandeau_article` est utilisée, + * il faut mettre un padding sur le haut de #content + **/ + var bandeau = $(".bandeau_header_noisette"); + //bandeau.hide(); + $(".noisette-bandeau-article").hide(); + $(".bread-bandeau").css('padding-bottom', '0rem'); + var bandeau_noisette = $(".bandeau_header_noisette"); + $('[class^="rubrique_abc"], [class*="rubrique_abc"]').each(function () { + var classname = this.className; + var classsparts = classname.split('rubrique_abc'); + var abc = classsparts[0]; + if (bandeau_noisette.text().length > 0) { + if (abc.length != 0) { + $(".noisette-bandeau-article").css('margin', '-107px auto 0'); + } + } + }); + $('[class^="rubrique_faq"], [class*="rubrique_faq"]').each(function () { + var classname = this.className; + var classsparts = classname.split('rubrique_faq'); + var faq = classsparts[0] + if (bandeau_noisette.text().length != 0) { + if (faq.length != 0) { + $(".noisette-bandeau-article").css('margin', '-107px auto 0'); + } + } + }); + var aside = document.getElementById('aside'); + var content = document.getElementById('content'); + if (aside.lenght != 0) { + if ($(".page_mot").length != 0) { + if (aside.innerHTML.indexOf("noisette") != -1) { + $(".objet-liste__media.media").css('height', '18.5rem'); + } else { + content.style.width = "100%"; + } + } + } else { + content.style.width = "100%"; + } + var bandeau_noisette_article_dossier = document.getElementsByClassName("bandeau_header_noisette"); + $('[class^="article_dossier"], [class*="article_dossier"]').each(function () { + var classname = this.className; + var classsparts = classname.split('article_dossier'); + var faq = classsparts[0] + if (bandeau_noisette_article_dossier.length != 0) { + if (faq.length != 0) { + $(".noisette-bandeau-article").css('margin', '-107px auto 0'); + } + } + }); + + function no_accent(my_string) { + // tableau accents + var pattern_accent = new Array(/À/g, /Á/g, /Â/g, /Ã/g, /Ä/g, /Å/g, /Æ/g, /Ç/g, /È/g, /É/g, /Ê/g, /Ë/g, + /Ì/g, /Í/g, /Î/g, /Ï/g, /Ð/g, /Ñ/g, /Ò/g, /Ó/g, /Ô/g, /Õ/g, /Ö/g, /Ø/g, /Ù/g, /Ú/g, /Û/g, /Ü/g, /Ý/g, + /Þ/g, /ß/g, /à/g, /á/g, /â/g, /ã/g, /ä/g, /å/g, /æ/g, /ç/g, /è/g, /é/g, /ê/g, /ë/g, /ì/g, /í/g, /î/g, + /ï/g, /ð/g, /ñ/g, /ò/g, /ó/g, /ô/g, /õ/g, /ö/g, /ø/g, /ù/g, /ú/g, /û/g, /ü/g, /ý/g, /ý/g, /þ/g, /ÿ/g); + + // tableau sans accents + var pattern_replace_accent = new Array("A", "A", "A", "A", "A", "A", "A", "C", "E", "E", "E", "E", + "I", "I", "I", "I", "D", "N", "O", "O", "O", "O", "O", "O", "U", "U", "U", "U", "Y", + "b", "s", "a", "a", "a", "a", "a", "a", "a", "c", "e", "e", "e", "e", "i", "i", "i", + "i", "d", "n", "o", "o", "o", "o", "o", "o", "u", "u", "u", "u", "y", "y", "b", "y"); + + //pour chaque caractere si accentué le remplacer par un non accentué + for (var i = 0; i < pattern_accent.length; i++) { + my_string = my_string.replace(pattern_accent[i], pattern_replace_accent[i]); + } + return my_string; + } + var slug = function (str) { + var $slug = ''; + var trimmed = $.trim(str); + $slug = trimmed.replace(/[^a-z0-9-]/gi, '-').replace(/-+/g, '-').replace(/^-|-$/g, ''); + return $slug.toLowerCase(); + } + window.addEventListener('tac.root_available', function () { + setTimeout(function () { + jQuery('#adformLine #tacCLadform').addClass('none'); + jQuery('#adformLine #tacCLadform').after('

    Finalité : Les campagnes d’informations gouvernementales permettent le partage d’informations utiles diffusées dans le cadre de grandes campagnes d’information, ou en cas de crise. Dans le détail : le traceur AdForm contient des cookies provenant des régies Amnet, Seedtag, Yahoo, Snapchat, Meta, Tiktok, Manageo.

    Conséquences en cas de refus : En cas de refus, vos visites et les pages consultées ne sont pas comptabilisées dans les statistiques de suivi d’audience.

    Consentement : Oui nécessaire.

    Durée de conservation : 13 mois

    Voir le site officiel

    '); + jQuery('#dailymotionLine #tacCLdailymotion').addClass('none'); + jQuery('#dailymotionLine #tacCLdailymotion').after('

    Finalité : Les services de partage de vidéo permettent d’enrichir le site de contenu multimédia et augmentent sa visibilité.

    Conséquences en cas de refus : En cas de refus, les fonctionnalités de lecteur vidéo concerné pourraient être désactivées.

    Consentement : Oui nécessaire.

    Durée de conservation : 13 mois

    '); + jQuery('#eulerianLine #tacCLeulerian').addClass('none'); + jQuery('#eulerianLine #tacCLeulerian').after('

    Finalité : Les services de mesure d’audience permettent de générer des statistiques de fréquentation utiles à l’amélioration du site. Ces traceurs sont mis en œuvre par la Délégation générale à l’emploi et à la formation professionnelle.

    Conséquences en cas de refus : En cas de refus, vos visites sur les pages concernés ne sont pas comptabilisées dans les statistiques de suivi de campagne.

    Consentement : Consentement non nécessaire, accepté par défaut, mais possibilité de refuser.

    Durée de conservation : 13 mois

    Voir le site officiel

    '); + jQuery('#facebookLine #tacCLfacebook').addClass('none'); + jQuery('#facebookLine #tacCLfacebook').after('

    Finalité : Les réseaux sociaux permettent d’améliorer la convivialité du site et aident à sa promotion via les partages.

    Conséquences en cas de refus : En cas de refus, les fonctionnalités de suivi et de partage du réseau social concerné pourraient être désactivées.

    Consentement : Oui nécessaire.

    Durée de conservation : 13 mois

    '); + jQuery('#issuuLine #tacCLissuu').addClass('none'); + jQuery('#issuuLine #tacCLissuu').after('

    Finalité : Le service ISSU permet de faire fonctionner la liseuse de documents encapsulée dans notre site.

    Conséquences en cas de refus : En cas de refus, les documents accessibles en lecture directement sur notre site ne seront pas disponibles.

    Consentement : Oui nécessaire.

    Durée de conservation : 13 mois

    '); + jQuery('#twitterembedLine #tacCLtwitterembed').addClass('none'); + jQuery('#twitterembedLine #tacCLtwitterembed').after('

    Finalité : Les réseaux sociaux permettent d’améliorer la convivialité du site et aident à sa promotion via les partages.

    Conséquences en cas de refus : En cas de refus, les fonctionnalités de suivi et de partage du réseau social concerné pourraient être désactivées.

    Consentement : Oui nécessaire.

    Durée de conservation : 13 mois

    '); + jQuery('#vimeoLine #tacCLvimeo').addClass('none'); + jQuery('#vimeoLine #tacCLvimeo').after('

    Finalité : Les services de partage de vidéo permettent d’enrichir le site de contenu multimédia et augmentent sa visibilité.

    Conséquences en cas de refus : En cas de refus, les fonctionnalités de lecteur vidéo concerné pourraient être désactivées.

    Consentement : Oui nécessaire.

    Durée de conservation : 13 mois

    '); + jQuery('#youtubeLine #tacCLyoutube').addClass('none'); + jQuery('#youtubeLine #tacCLyoutube').after('

    Finalité : Les services de partage de vidéo permettent d’enrichir le site de contenu multimédia et augmentent sa visibilité.

    Conséquences en cas de refus : En cas de refus, les fonctionnalités de lecteur vidéo concerné pourraient être désactivées.

    Consentement : Oui nécessaire.

    Durée de conservation : 13 mois

    '); + }, 200); + }); + // Setup isScrolling variable + var isScrolling; + // Listen for scroll events + window.addEventListener('scroll', function (event) { + // Clear our timeout throughout the scroll + window.clearTimeout(isScrolling); + // Set a timeout to run after scrolling ends + isScrolling = setTimeout(function () { + // Run the callback + var s = $(window).scrollTop(), d = $(document).height(), c = $(window).height(), h = 25; + if (Math.round((s / (d - c)) * 100) > 25) { + var h = '50'; + } + if (Math.round((s / (d - c)) * 100) > 50) { + var h = '75'; + } + if (Math.round((s / (d - c)) * 100) > 75) { + var h = '100'; + } + EA_push('action', ['actionname', 'scroll_' + h + '_page', 'actionlabel', 'scroll_' + h + ',page,page,,custom_event']); + }, 150); + }, true); + }); + /*]]>*/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - -
    - -
    - - -
    - - - - - - - -
    + + + + Archives presse + + + + +
    +
    + + + + + + - + +(function () { + window.EA_datalayer = []; + window.EA_datalayer.push('site_entity', 'Min. Travail'); + window.EA_datalayer.push('site_type', 'standard'); + window.EA_datalayer.push('site_target', 'information'); + window.EA_datalayer.push('segment-site', 'dialogue_social'); + + window.EA_datalayer.push('page_category1', 'dialogue_social'); + window.EA_datalayer.push('page_category2', 'negociation_collective'); + + + window.EA_datalayer.push('pagegroup', 'dialogue_social'); + + window.EA_datalayer.push('page_template', 'article_de_niveau_3'); + window.EA_datalayer.push('pagelabel', 'article_de_niveau_3'); + window.EA_datalayer.push('page_name', 'conventions_collectives_nomenclatures'); + window.EA_datalayer.push('content_id', '114574'); + window.EA_datalayer.push('content_name', 'Conventions collectives : nomenclatures'); + window.EA_datalayer.push('content_type', 'article'); + window.EA_datalayer.push('content_category', 'dialogue_social'); + window.EA_datalayer.push('content_author', 'dares_joris_a'); + window.EA_datalayer.push('content_date', '2024-08-30 16:02:00'); + window.EA_datalayer.push('content_tags', 'branche_professionnelle_convention_collective,negociation_collective,dialogue_social'); + window.EA_push(window.EA_datalayer); +})(); + + diff --git a/targets/alert-cli/src/dares/__tests__/scrapping.test.ts b/targets/alert-cli/src/dares/__tests__/scrapping.test.ts index 4b2afc115..84027dc64 100644 --- a/targets/alert-cli/src/dares/__tests__/scrapping.test.ts +++ b/targets/alert-cli/src/dares/__tests__/scrapping.test.ts @@ -9,9 +9,6 @@ describe("extractXlsxFromUrl", () => { it("should extract xlsx file from url", async () => { const html = ` - - - File 1 File 2 @@ -20,22 +17,7 @@ describe("extractXlsxFromUrl", () => { `; (axios.get as jest.Mock).mockResolvedValueOnce({ data: html }); const result = await extractDaresXlsxFromMT(); - expect(result).toBe("https://www.domain.com/file1.xlsx"); - }); - - it("should throw error if xlsx file is present but url is relative with base tag", async () => { - const html = ` - - - File 1 - File 2 - - - `; - (axios.get as jest.Mock).mockResolvedValueOnce({ data: html }); - await expect(extractDaresXlsxFromMT()).rejects.toThrow( - "xlsx file url not valid : file1.xlsx" - ); + expect(result).toBe("https://travail-emploi.gouv.fr/file1.xlsx"); }); it("should throw error if no xlsx file found", async () => { @@ -60,7 +42,7 @@ describe("extractXlsxFromUrl", () => { (axios.get as jest.Mock).mockResolvedValueOnce({ data: html }); const result = await extractDaresXlsxFromMT(); expect(result).toBe( - "https://travail-emploi.gouv.fr//IMG/xlsx/dares_donnes_identifiant_convention_collective_avril24.xlsx" + "https://travail-emploi.gouv.fr/IMG/xlsx/dares_donnes_identifiant_convention_collective_septembre24.xlsx" ); }); }); diff --git a/targets/alert-cli/src/dares/scrapping.ts b/targets/alert-cli/src/dares/scrapping.ts index aaa1f2d81..ab0771e89 100644 --- a/targets/alert-cli/src/dares/scrapping.ts +++ b/targets/alert-cli/src/dares/scrapping.ts @@ -14,10 +14,5 @@ export const extractDaresXlsxFromMT = async () => { if (match[1].startsWith("http")) { return match[1]; } - const baseRegex = //g; - const baseMatch = baseRegex.exec(html); - if (!baseMatch) { - throw new Error(`xlsx file url not valid : ${match[1]}`); - } - return `${baseMatch[1]}/${match[1]}`; + return `https://travail-emploi.gouv.fr/${match[1]}`; };