import { FreeDatas2HTML, Pagination, SearchEngine, 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: "", datasLinesDisplaying: `
  • ##0##

  • ` }; // 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 `
  • Courriel
  • `; 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 des 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"); // Dont un moteur de recherche : const mySearch=new SearchEngine(converter, { id:"search" }); mySearch.label=""; mySearch.btnTxt="Chercher"; // La recherche se lance automatiquement, dès que 2 caractères sont saisis : mySearch.automaticSearch=true; mySearch.nbCharsForSearch=2; mySearch.placeholder="Exemples de recherche : creperie port-louis, pain bio..."; mySearch.filter2HTML(); converter.datasFilters=[filtre1,mySearch]; // Id de l'élément HTML devant afficher la liste de partenaires : converter.datasViewElt={ id:"partenaires" }; // Pas d'affichage initial, car il est généré en PHP côté backend. } 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 les devs :-)\nLe code source de ce script est libre et vous pouvez le trouver à cette adresse :\n https://forge.chapril.org/Fab_Blab/freeDatas2HTML/src/branch/master/integrations/src/segal.ts"); initialise();