From 40f50e03aaf3f1de9fad8302f817665d40cdaab5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabrice=20PENHO=C3=8BT?= Date: Tue, 21 Sep 2021 10:17:32 +0200 Subject: [PATCH] =?UTF-8?q?Simplication=20appel=20interne/externe=20de=20l?= =?UTF-8?q?a=20m=C3=A9thode=20actualisant=20l'affichage=20des=20donn=C3=A9?= =?UTF-8?q?es=20dans=20le=20DOM.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/errors.js | 1 + src/freeDatas2HTML.ts | 21 ++++++++------------- src/freeDatas2HTMLSelector.ts | 1 - src/freeDatas2HTMLSortingField.ts | 1 - 4 files changed, 9 insertions(+), 15 deletions(-) diff --git a/src/errors.js b/src/errors.js index fa980a7..fa4e826 100644 --- a/src/errors.js +++ b/src/errors.js @@ -9,6 +9,7 @@ module.exports = needPositiveInteger: "Merci de fournir un nombre entier supérieur à zéro pour désigner chaque option de pagination.", needUrl: "Merci de fournir une url valide pour le fichier CSV à parser.", parserFail: "La lecture des données du fichier a échoué.", + refreshFail: "Le nom des champs et l'élement du DOM receveur sont nécessaires à l'affichage des données.", 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 une des colonnes devant servir à filtrer les données n'existe pas dans le fichier.", diff --git a/src/freeDatas2HTML.ts b/src/freeDatas2HTML.ts index 44fb1be..473f192 100644 --- a/src/freeDatas2HTML.ts +++ b/src/freeDatas2HTML.ts @@ -252,7 +252,6 @@ export class FreeDatas2HTML } // Si tout est ok, affichage initial de toutes les données du fichier - this.datasHTML=this.createDatasHTML(this.parseMetas!.fields, this.parseDatas); this.refreshView(); return true; } @@ -260,19 +259,15 @@ export class FreeDatas2HTML refreshView() : void { - if(this._datasViewElt.eltDOM !== undefined) + if(this.parseMetas === undefined || this.parseMetas.fields === undefined || this._datasViewElt.eltDOM === undefined) + throw new Error(errors.refreshFail); + this.datasHTML=this.createDatasHTML(this.parseMetas.fields, this.parseDatas); + this._datasViewElt.eltDOM.innerHTML=this.datasHTML; + // On réactive les éventuels champs de classement + for(let i in this.datasSortingFields) { - const converter=this; - this._datasViewElt.eltDOM.innerHTML=this.datasHTML; - // On réactive les éventuelles colonnes de classement - if(this.datasSortingFields.length > 0) - { - for(let i in this.datasSortingFields) - { - let field=this.datasSortingFields[i]; - field.field2HTML(); - } - } + let field=this.datasSortingFields[i]; + field.field2HTML(); } } diff --git a/src/freeDatas2HTMLSelector.ts b/src/freeDatas2HTMLSelector.ts index 71e24d7..c742677 100644 --- a/src/freeDatas2HTMLSelector.ts +++ b/src/freeDatas2HTMLSelector.ts @@ -104,7 +104,6 @@ export class Selector implements Selectors const selectElement=document.getElementById("freeDatas2HTML_"+this._datasViewElt.id) as HTMLInputElement, mySelector=this; selectElement.addEventListener("change", function(e) { - mySelector._converter.datasHTML=mySelector._converter.createDatasHTML(mySelector._converter.parseMetas!.fields!, mySelector._converter.parseDatas); mySelector._converter.refreshView(); }); } diff --git a/src/freeDatas2HTMLSortingField.ts b/src/freeDatas2HTMLSortingField.ts index d3bf227..45f03a3 100644 --- a/src/freeDatas2HTMLSortingField.ts +++ b/src/freeDatas2HTMLSortingField.ts @@ -72,7 +72,6 @@ export class SortingField implements SortingFields else field._order="desc"; field._converter.datasSortedField = field; - field._converter.datasHTML=field._converter.createDatasHTML(field._converter.parseMetas!.fields as string[], field._converter.parseDatas); field._converter.refreshView(); }); }