Déplacement interfaces dans script séparé (suite).

This commit is contained in:
Fabrice PENHOËT 2021-08-30 17:42:09 +02:00
parent 0ad046f095
commit 0b3392cbd8
2 changed files with 17 additions and 8 deletions

View File

@ -14,7 +14,7 @@ export class freeCSV2HTML
public parseDatas: papaParseDatas[] = [];
public parseErrors: papaParseErrors[] = [];
public datasHTML: string = "";
public stopIfParseErrors : boolean = false;
public stopIfParseErrors: boolean = false;
set datasViewElt(elt: domElement)
{
@ -38,7 +38,7 @@ export class freeCSV2HTML
set datasSelectors(selectionElts: selectors[])
{
this._datasSelectors=[]; // remise à zéro
this._datasSelectors=[];
let checkContainerExist: HTMLElement|null;
for(let i = 0; i < selectionElts.length; i++)
{
@ -108,7 +108,7 @@ export class freeCSV2HTML
await this.parse();
if(this.parseDatas.length === 0 || this.parseMeta!.fields === undefined) // je force avec "!", car l'existence de parseMeta certaine après parse().
if(this.parseDatas.length === 0 || this.parseMeta!.fields === undefined) // je force avec "!", car l'existence de parseMeta est certaine après parse().
throw new Error(errors.datasNotFound);
else if(this.stopIfParseErrors && this.parseErrors.length!==0)
console.error(this.parseErrors);
@ -140,15 +140,14 @@ export class freeCSV2HTML
}
if(values.length > 0)
{
values.sort();
this._datasSelectors[i].name = colName;
values.sort(); // à revoir, car gère mal la casse, les nombres, etc.
this._datasSelectors[i].name=colName;
this._datasSelectors[i].values=values;
selectorsHTML[i]="<label for='CSVDatasSelector"+i+"'>"+colName+" : </label><select name='CSVDatasSelector"+i+"' id='CSVDatasSelector"+i+"'><option value='0'>----</option>";
for(let j in values)
selectorsHTML[i]+="<option value='"+(Number(j)+1)+"'>"+values[j]+"</option>";
selectorsHTML[i]+="</select>";
this._datasSelectors[i].eltDOM!.innerHTML=selectorsHTML[i];
// On recharge l'affichage des données lors de chaque choix de l'utilisateur :
let selectElement = document.getElementById("CSVDatasSelector"+i) as HTMLInputElement;
selectElement.addEventListener('change', function(e)
{
@ -173,7 +172,7 @@ export class freeCSV2HTML
checkSelectorExist=document.querySelector("#"+ this._datasSelectors[i].id+" select");
if(checkSelectorExist != null && checkSelectorExist.value != "0")
filters.push({ field: this._datasSelectors[i].name, value: this._datasSelectors[i].values![checkSelectorExist.selectedIndex-1] });
// Attention : si on récupère innerHTML du select, certains caractères peuvent être modifiés !
// Attention : si on récupère innerHTML du select, certains caractères peuvent être modifiés !
}
// Création du tableau de données :
let datasHTML="<table><thead>";
@ -206,5 +205,4 @@ export class freeCSV2HTML
datasHTML+="</tbody></table>";
return datasHTML;
}
}

View File

@ -0,0 +1,11 @@
export interface domElement
{
id: string;
eltDOM?: HTMLElement;
}
export interface selectors extends domElement
{
colCSV: number;
name?: string;
values? : string[];
}