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##
- ##8##
- Lieu(x) d'exercice : ##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 `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();