Affichage de données pouvant provenir de différentes sources (fichier, API...) avec différents formats (CSV, JSON, HTML...) et possibilité de trier, filtrer ou encore paginer les données. https://freedatas2html.le-fab-lab.com
Go to file
2021-09-20 18:01:09 +02:00
public Suppression import Google paper.css 2021-09-20 10:08:00 +02:00
src Création d'une classe dédiée aux colonnes permettant de classer les donnés + son script de tests. 2021-09-20 18:01:09 +02:00
tests Création d'une classe dédiée aux colonnes permettant de classer les donnés + son script de tests. 2021-09-20 18:01:09 +02:00
.gitignore Ajout du fichier .gitignore 2021-08-05 18:22:01 +02:00
karma.conf.js Modification configuration karma pour chargement des nouvelles classes. 2021-09-17 18:07:30 +02:00
LICENSE Initialisation du projet 2021-08-05 11:05:05 +02:00
package-lock.json Mise à niveau de webpack-dev-server vers 4.1.0 + évolution configuration webpack. 2021-09-03 17:33:00 +02:00
package.json Ajout possibilité de fournir des fonctions spécifiques pour classer les données de certaines colonnes. 2021-09-06 17:25:30 +02:00
README.md Ajout fonctionnalité pagination des données. 2021-09-09 12:57:23 +02:00
tsconfig.json Initialisation du projet 2021-08-05 11:05:05 +02:00
webpack.config.js Mise à niveau de webpack-dev-server vers 4.1.0 + évolution configuration webpack. 2021-09-03 17:33:00 +02:00

freeDatas2HTML

Affichage et manipulation de listes données côté client en TypeScript/JavaScript.

Le projet

Des données sont déjà listées dans une page HTML ou sont accessibles via une API ou encore un fichier présent "localement". Ces données peuvent être stockées en CSV, JSON ou autres formats. Nous souhaitons pouvoir les afficher, filtrer, classer ou paginer en agissant uniquement côté client, sans nouvel appel à la source des données.

L'esprit est proche du projet DataTables, mais sans dépendances à jQuery.

Si le code source de freeDatas2HTML est écrit en TypeScript, une version compilée en JavaScript natif ("Vanilla") est disponible.

De même l'idée est de rester libre du rendu des données en n'imposant pas de CSS et en proposant les diverses fonctionnalités en options.

La première version

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 et/ou les classer. Il est possible de fournir des fonctions spécifiques pour classer les données de certaines colonnes. Il est également possible de paginer les résultats.

Le tout en options, le développeur final devant pouvoir adapter le module à son besoin.

Il reste à ajouter :

  • la possibilité d'utiliser des sources/formats différents qu'un fichier CSV pour extraire les données.
  • la possibilité de spécifier un code HTML autre qu'un tableau pour lister/récupérer les données.

Mais avant toute chose, il me faut maintenant remanier le code, le script approchant les 500 lignes !

Bref, il reste beaucoup de choses à faire !

Tests et exemples

L'utilisation de TypeScript élimine déjà pas mal d'erreurs. Le code est ensuite testé via Karma.js et Jasmine.js sur des navigateurs Firefox et Chromium. Un premier exemple d'utilisation est présent dans le répertoire "public".

Dépendances en production

  • Papa Parse est utilisé pour parser les données CSV.
  • natural-orderby pour classer les données de manière plus naturelle.