import { FreeDatas2HTML, Pagination, Selector } from "../../src/FreeDatas2HTML"; import { MixedFieldsRender } from "../../src/extensions/MixedFieldsRender"; const initialise=async () => { try { // Création d'un convertisseur parsant des données transmises en JSON : const converter=new FreeDatas2HTML("CSV"); converter.parser.setRemoteSource({ url: "https://pluxml.segal.bzh/data/medias/partenaires/partenaires.csv"}); // Parsage des données, qui ne sont pas encore affichées : await converter.run(); // Chaînes à utiliser par le moteur de rendu : const renderSettings= { allBegining: "", allEnding: "", datasLinesDisplaying: `

##0##

##8##.
Lieux d'activité : ##7##.##10## ##11####4####12##

` }; // Fonctions spécifiques pour créer les liens hypertextes : const rendName2HTML=(values: {[index: string]:string} ) : string => { if(values["Présentation"] !== undefined && values["Présentation"].trim() !== "") return `${values["Nom commercial"].trim()}`; else return values["Nom commercial"].trim(); }; const rendSite2HTML=(values: {[index: string]:string} ) : string => { if(values["Site"].trim() !== "") return `
Page internet`; else return ""; }; const rendEmail2HTML=(values: {[index: string]:string} ) : string => { if(values["E-mail"].trim() !== "") return `
E-Mail`; else return ""; }; const rendTel2HTML=(values: {[index: string]:string} ) : string => { if(values["Fixe"].trim() !== "") return `
${values['Fixe'].trim()}`; else return ""; }; const rendMobile2HTML=(values: {[index: string]:string} ) : string => { if(values["Portable"].trim() !== "") return `
${values['Portable'].trim()}`; else return ""; }; const myRender=new MixedFieldsRender(renderSettings); myRender.fieldRenders=[{ name:"Nom commercial", rend2HTML: rendName2HTML}, { name:"E-mail", rend2HTML: rendEmail2HTML}, { name:"Site", rend2HTML: rendSite2HTML}, { name:"Fixe", rend2HTML: rendTel2HTML}, { name:"Portable", rend2HTML: rendMobile2HTML}]; converter.datasRender=myRender; // Création de filtres : const filtre1=new Selector(converter, 8, { id:"filtreActivites"} ); let filtre2=new Selector(converter, 7, { id:"filtreLieux"}, "," ); filtre1.filter2HTML("Domaine d'activité"); filtre2.filter2HTML("Lieux"); converter.datasFilters=[filtre1,filtre2]; // Configuration de la pagination : const pagination=new Pagination(converter, { id:"pages" }, "Page à afficher :"); pagination.options={ displayElement: { id:"pagination" }, values: [10,20,50,100] , name: "Choix de pagination :" }; pagination.selectedValue=10; converter.pagination=pagination; pagination.options2HTML(); // Affichage initial avec l'id de l'élément HTML devant afficher le compteur : converter.datasViewElt={ id:"partenaires" }; converter.refreshView(); } catch(e) { console.error(e); document.getElementById("datas")!.innerHTML=`
Désolé, mais un problème technique empêche l'affichage des données.
`; } } console.log("Hello, ami développeur :-)\nLe code source TypeScript utilisé pour faire fonctionner cette page est lisible ici : :\nhttps://forge.chapril.org/Fab_Blab/freeDatas2HTML/src/branch/master/integrations/src/segal.ts\nUn bug ? Une suggestion ? => fabrice@le-fab-lab.com"); initialise();