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.
|
||||
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.
|
||||
|
||||
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...
|
||||
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...
|
||||
|
||||
Bref, il reste beaucoup de choses à faire !
|
||||
|
||||
|
7
package-lock.json
generated
7
package-lock.json
generated
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "freedatas2html",
|
||||
"version": "0.3.1",
|
||||
"version": "0.3.3",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
@ -4155,6 +4155,11 @@
|
||||
"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": {
|
||||
"version": "0.6.2",
|
||||
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"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.",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
@ -39,6 +39,7 @@
|
||||
"webpack-dev-server": "^3.11.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"natural-orderby": "^2.0.3",
|
||||
"papaparse": "^5.3.1"
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
const Papa = require("papaparse");
|
||||
const errors = require("./errors.js");
|
||||
const { compare }= require('natural-orderby');
|
||||
|
||||
import { papaParseDatas, papaParseErrors, papaParseMeta } from "./papaParseInterfaces";
|
||||
import { domElement, selectors } from "./freeDatas2HTMLInterfaces";
|
||||
@ -155,7 +156,7 @@ export class freeDatas2HTML
|
||||
}
|
||||
if(values.length > 0)
|
||||
{
|
||||
values.sort();
|
||||
values.sort(compare());
|
||||
this._datasSelectors[i].name=colName;
|
||||
this._datasSelectors[i].values=values;
|
||||
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:"|"}];
|
||||
await converter.run();
|
||||
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'));
|
||||
let txtDatasViewsElt=document.getElementById("datas").innerHTML;
|
||||
expect(txtDatasViewsElt).toEqual(fixtures.datasHTMLForSelectTagsField);
|
||||
|
Loading…
Reference in New Issue
Block a user