Installation module natural-orderby pour améliorer le classement des données + adaptation du code.
This commit is contained in:
parent
c80795cfec
commit
14608b8488
@ -18,11 +18,10 @@ De même l'idée est de rester libre du rendu des données en n'imposant pas de
|
|||||||
|
|
||||||
La première version se contente de récupérer et parser des données présentes dans un fichier CSV via un appel Ajax.
|
La première version se contente de récupérer et parser des données présentes dans un fichier CSV via un appel Ajax.
|
||||||
Les données trouvées sont affichées dans un tableau. En option, des colonnes peuvent être indiquées par filtrer les données.
|
Les données trouvées sont affichées dans un tableau. En option, des colonnes peuvent être indiquées par filtrer les données.
|
||||||
Pour parser les données CSV, [Papa Parse](https://www.papaparse.com/) est utilisé.
|
[Papa Parse](https://www.papaparse.com/) est utilisé pour parser les fichiers CSV et [natural-orderby](https://yobacca.github.io/natural-orderby/#/) pour obtenir des classements plus naturels.
|
||||||
|
|
||||||
Cette première version est fonctionnelle, même s'il reste à revoir le classement par ordre alphabétique des filtres pouvant poser un souci si des colonnes contiennent des nombres, des dates, etc.
|
Il reste à ajouter la possibilité de classement sur certaines colonnes et la pagination, le tout en options, le développeur final devant pouvoir adapter le module à son besoin.
|
||||||
|
Et puis s'attaquer aux autres sources/formats possibles pour les données...
|
||||||
Ensuite ajouter la possibilité de classement sur certaines colonnes et la pagination, le tout en options, le développeur final devant pouvoir adapter le module à son besoin. Et puis s'attaquer aux autres sources/formats possibles pour les données...
|
|
||||||
|
|
||||||
Bref, il reste beaucoup de choses à faire !
|
Bref, il reste beaucoup de choses à faire !
|
||||||
|
|
||||||
|
7
package-lock.json
generated
7
package-lock.json
generated
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "freedatas2html",
|
"name": "freedatas2html",
|
||||||
"version": "0.3.1",
|
"version": "0.3.3",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@ -4155,6 +4155,11 @@
|
|||||||
"to-regex": "^3.0.1"
|
"to-regex": "^3.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"natural-orderby": {
|
||||||
|
"version": "2.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/natural-orderby/-/natural-orderby-2.0.3.tgz",
|
||||||
|
"integrity": "sha512-p7KTHxU0CUrcOXe62Zfrb5Z13nLvPhSWR/so3kFulUQU0sgUll2Z0LwpsLN351eOOD+hRGu/F1g+6xDfPeD++Q=="
|
||||||
|
},
|
||||||
"negotiator": {
|
"negotiator": {
|
||||||
"version": "0.6.2",
|
"version": "0.6.2",
|
||||||
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
|
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "freedatas2html",
|
"name": "freedatas2html",
|
||||||
"version": "0.3.3",
|
"version": "0.3.4",
|
||||||
"description": "Visualization of data from various sources (CSV, API, HTML...) with filters, classification, pagination, etc.",
|
"description": "Visualization of data from various sources (CSV, API, HTML...) with filters, classification, pagination, etc.",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@ -39,6 +39,7 @@
|
|||||||
"webpack-dev-server": "^3.11.2"
|
"webpack-dev-server": "^3.11.2"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"natural-orderby": "^2.0.3",
|
||||||
"papaparse": "^5.3.1"
|
"papaparse": "^5.3.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
const Papa = require("papaparse");
|
const Papa = require("papaparse");
|
||||||
const errors = require("./errors.js");
|
const errors = require("./errors.js");
|
||||||
|
const { compare }= require('natural-orderby');
|
||||||
|
|
||||||
import { papaParseDatas, papaParseErrors, papaParseMeta } from "./papaParseInterfaces";
|
import { papaParseDatas, papaParseErrors, papaParseMeta } from "./papaParseInterfaces";
|
||||||
import { domElement, selectors } from "./freeDatas2HTMLInterfaces";
|
import { domElement, selectors } from "./freeDatas2HTMLInterfaces";
|
||||||
@ -155,7 +156,7 @@ export class freeDatas2HTML
|
|||||||
}
|
}
|
||||||
if(values.length > 0)
|
if(values.length > 0)
|
||||||
{
|
{
|
||||||
values.sort();
|
values.sort(compare());
|
||||||
this._datasSelectors[i].name=colName;
|
this._datasSelectors[i].name=colName;
|
||||||
this._datasSelectors[i].values=values;
|
this._datasSelectors[i].values=values;
|
||||||
selectorsHTML[i]="<label for='freeDatas2HTMLSelector"+i+"'>"+colName+" : </label><select name='freeDatas2HTMLSelector"+i+"' id='freeDatas2HTMLSelector"+i+"'><option value='0'>----</option>";
|
selectorsHTML[i]="<label for='freeDatas2HTMLSelector"+i+"'>"+colName+" : </label><select name='freeDatas2HTMLSelector"+i+"' id='freeDatas2HTMLSelector"+i+"'><option value='0'>----</option>";
|
||||||
|
File diff suppressed because one or more lines are too long
@ -237,7 +237,7 @@ describe("freeDatas2HTML", () =>
|
|||||||
converter.datasSelectors=[{ datasFieldNb:5, id:"selector1", separator:"|"}];
|
converter.datasSelectors=[{ datasFieldNb:5, id:"selector1", separator:"|"}];
|
||||||
await converter.run();
|
await converter.run();
|
||||||
let selectElement=document.getElementById("freeDatas2HTMLSelector0") as HTMLInputElement;
|
let selectElement=document.getElementById("freeDatas2HTMLSelector0") as HTMLInputElement;
|
||||||
selectElement.value="3"; // = "Exemple10" retournant une seule ligne
|
selectElement.value="11"; // = "Exemple10" retournant une seule ligne
|
||||||
selectElement.dispatchEvent(new Event('change'));
|
selectElement.dispatchEvent(new Event('change'));
|
||||||
let txtDatasViewsElt=document.getElementById("datas").innerHTML;
|
let txtDatasViewsElt=document.getElementById("datas").innerHTML;
|
||||||
expect(txtDatasViewsElt).toEqual(fixtures.datasHTMLForSelectTagsField);
|
expect(txtDatasViewsElt).toEqual(fixtures.datasHTMLForSelectTagsField);
|
||||||
|
Loading…
Reference in New Issue
Block a user