From 9526bf094f3ed46c88d47ed51f761b47320c5223 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabrice=20PENHO=C3=8BT?= Date: Mon, 27 Sep 2021 12:11:05 +0200 Subject: [PATCH] Relecture code. --- src/errors.js | 3 ++- src/freeDatas2HTMLRender.ts | 10 +++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/errors.js b/src/errors.js index 1ce83f0..31e39eb 100644 --- a/src/errors.js +++ b/src/errors.js @@ -12,7 +12,8 @@ module.exports = parserDatasNotFound : "Aucune donnée n'a été trouvée.", parserFail: "La lecture des données du fichier a échoué.", parserNeedUrl: "Merci de fournir une url valide pour le fichier à parser.", - renderNeedDatas: "Il ne peut y avoir de pagination, si les données n'ont pas été récupérées.", + renderNeedDatas: "Il ne peut y avoir de pagination, si les données n'ont pas été récupérées.", + renderUnknownField: "Un champ non attendu a été trouvé dans les données à afficher : ", selector2HTMLFail: "Le création d'un filtre dans le DOM nécessite l'initialisation de l'élément HTML et du numéro du champs à filter.", selectorCheckIsOkFail: "Le test est lancé sur un filtre incorrectement initialisé ou sur un attribut absent de la donnée à tester.", selectorFieldNotFound: "Au moins un des champs devant servir à filtrer les données n'existe pas dans le fichier.", diff --git a/src/freeDatas2HTMLRender.ts b/src/freeDatas2HTMLRender.ts index b4371e4..41a0e69 100644 --- a/src/freeDatas2HTMLRender.ts +++ b/src/freeDatas2HTMLRender.ts @@ -27,16 +27,17 @@ export class Render implements DatasRenders this.settings=settings; } - // Reçoit les données à afficher et créer le HTML correspondant + // Reçoit les données à afficher et retourne le HTML correspondant. public rend2HTML(datas: any[]) : string { + // Il peut n'y avoir aucune donnée (filtres...), mais les noms des champs doivent être connus. if(this._converter.parseMetas === undefined || this._converter.parseMetas.fields === undefined) throw new Error(errors.renderNeedDatas); else { let datasHTML=this.settings.allBegining; - // On ne souhaite pas nécessairement afficher les noms de colonne - if(this.settings.fieldsBegining !== undefined && this.settings.fieldDisplaying !== undefined) + // On ne souhaite pas nécessairement afficher les noms des champs + if(this.settings.fieldsBegining !== undefined && this.settings.fieldDisplaying !== undefined && this.settings.fieldsEnding !== undefined ) { datasHTML+=this.settings.fieldsBegining; for (let i in this._converter.parseMetas!.fields) @@ -49,8 +50,11 @@ export class Render implements DatasRenders datasHTML+=this.settings.lineBegining; for(let field in datas[row]) { + // On n'affiche que les champs attendus et signale les erreurs dans la console if(this._converter.parseMetas.fields.indexOf(field) !== -1) datasHTML+=this.settings.dataDisplaying.replace("#VALUE" , datas[row][field]).replace("#FIELDNAME" , field); + else + console.log(errors.renderUnknownField+field); } datasHTML+=this.settings.lineEnding; }