|
|
|
@ -1,4 +1,4 @@
|
|
|
|
|
import { FreeDatas2HTML, Selector } from "../../src/FreeDatas2HTML"; |
|
|
|
|
import { FreeDatas2HTML, Pagination, Selector } from "../../src/FreeDatas2HTML"; |
|
|
|
|
import { MixedFieldsRender } from "../../src/extensions/MixedFieldsRender"; |
|
|
|
|
|
|
|
|
|
const initialise=async () => |
|
|
|
@ -7,7 +7,7 @@ const initialise=async () =>
|
|
|
|
|
{ |
|
|
|
|
// Création d'un convertisseur parsant des données transmises en JSON :
|
|
|
|
|
const converter=new FreeDatas2HTML("CSV"); |
|
|
|
|
converter.parser.setRemoteSource({ url: "http://pluxml.segal.bzh/data/medias/partenaires/partenaires.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 :
|
|
|
|
@ -15,41 +15,63 @@ const initialise=async () =>
|
|
|
|
|
{ |
|
|
|
|
allBegining: "", |
|
|
|
|
allEnding: "", |
|
|
|
|
datasLinesDisplaying: `<h4>##0##</h4><p>Activités : ##8##<br>Lieux d'activité : ##7##<br>Téléphone(s) : ##10## ##11####4####12##</p>` |
|
|
|
|
datasLinesDisplaying: `<h3>##0##</h3><p>##8##.<br>Lieux d'activité : ##7##.##10## ##11####4####12##</p>` |
|
|
|
|
}; |
|
|
|
|
// Fonctions spécifiques pour créer les liens hypertextes :
|
|
|
|
|
const rendName2HTML=(values: {[index: string]:string} ) : string => |
|
|
|
|
{ |
|
|
|
|
if(values["Présentation"] !== undefined && values["Présentation"] !== "") |
|
|
|
|
return `<a href="${values['Présentation']}">${values["Nom commercial"]}</a>`; |
|
|
|
|
if(values["Présentation"] !== undefined && values["Présentation"].trim() !== "") |
|
|
|
|
return `<a href="${values['Présentation'].trim()}" title="Lire notre article de présentation de ce partenaire">${values["Nom commercial"].trim()}</a>`; |
|
|
|
|
else |
|
|
|
|
return values["Nom commercial"]; |
|
|
|
|
return values["Nom commercial"].trim(); |
|
|
|
|
}; |
|
|
|
|
const rendSite2HTML=(values: {[index: string]:string} ) : string => |
|
|
|
|
{ |
|
|
|
|
if(values["Site"] !== "") |
|
|
|
|
return `<br><a href="${values['Site']}" target="_blank" title="Visiter le site de ${values['Nom commercial']}">Page internet</a>`; |
|
|
|
|
if(values["Site"].trim() !== "") |
|
|
|
|
return `<br><a href="${values['Site'].trim()}" target="_blank" title="Visiter le site de ${values['Nom commercial'].trim()}">Page internet</a>`; |
|
|
|
|
else |
|
|
|
|
return ""; |
|
|
|
|
}; |
|
|
|
|
const rendEmail2HTML=(values: {[index: string]:string} ) : string => |
|
|
|
|
{ |
|
|
|
|
if(values["E-mail"] !== "") |
|
|
|
|
return `<br><a href="mailto:${values['E-mail']}" title="Contactez ${values['Nom commercial']}">E-Mail</a>`; |
|
|
|
|
if(values["E-mail"].trim() !== "") |
|
|
|
|
return `<br><a href="mailto:${values['E-mail'].trim()}" title="Contactez ${values['Nom commercial'].trim()}">E-Mail</a>`; |
|
|
|
|
else |
|
|
|
|
return ""; |
|
|
|
|
}; |
|
|
|
|
const rendTel2HTML=(values: {[index: string]:string} ) : string => |
|
|
|
|
{ |
|
|
|
|
if(values["Fixe"].trim() !== "") |
|
|
|
|
return `<br><a href="tel:${values['Fixe'].trim()}" title="Appelez ${values['Nom commercial'].trim()}">${values['Fixe'].trim()}</a>`; |
|
|
|
|
else |
|
|
|
|
return ""; |
|
|
|
|
}; |
|
|
|
|
const rendMobile2HTML=(values: {[index: string]:string} ) : string => |
|
|
|
|
{ |
|
|
|
|
if(values["Portable"].trim() !== "") |
|
|
|
|
return `<br><a href="tel:${values['Portable'].trim()}" title="Appelez ${values['Portable'].trim()}">${values['Portable'].trim()}</a>`; |
|
|
|
|
else |
|
|
|
|
return ""; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
const myRender=new MixedFieldsRender(renderSettings); |
|
|
|
|
myRender.fieldRenders=[{ name:"Nom commercial", rend2HTML: rendName2HTML}, { name:"E-mail", rend2HTML: rendEmail2HTML}, { name:"Site", rend2HTML: rendSite2HTML}]; |
|
|
|
|
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:"filtrePartenaires"} ); |
|
|
|
|
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();
|
|
|
|
|