Généralités techniques¶
Cette section décrit les généralités à propos du fonctionnement du plugin et les principaux répertoires que vous trouverez dans le dépôt GitHub.
Installation¶
L’installation et les prérequis sont décrits dans le fichier README.md du plugin Tabou2 :
https://github.com/sigrennesmetropole/geor_tabou2_front/blob/main/README.md
Build¶
Le build est également décrit dans le fichier README.md.
Cette étape permet de générer un fichier .zip qui pourra être importé dans l’interface d’import d’un plugin MapStore2.
Répertoires utiles¶
Nous expliquons certains répertoires utiles.
MapStore2
Ce répertoire est un sous-module qui contient l’ensemble de MapStore2. Grâce à ce répertoire, nous pouvons utiliser le framework et si besoin l’API MapStore2.
assets
Ce répertoire contient les traductions et contiendra les fichiers CSS et autres ressources utiles.
js
Ce répertoire contient le plugin Tabou2
dist
Ce répertoire apparaîtra lorsqu’un premier build sera réalisé. il contiendra alors le fichier .zip à utiliser pour importer le plugin dans MapStore2 via l’interface prévu à cet effet.
Répertoires du plugin¶
Nous aborderons ici l’arborescence des répertoires du plugin Tabou2 dans le répertoire /js/extension.
plugins
C’est le répertoire principale. Pour bien comprendre le plugin Tabou2, vous devez commencer par ce répertoire qui est chargé par MapStore2 en premier. Il contient l’emplacement du bouton d’accès au module et le composant parent en haut de la chaîne des composants.
Pour bien commencer, il est fortement conseiller de lire la documentation sur les plugins : https://mapstore.readthedocs.io/en/latest/developer-guide/plugins-howto.html
api
Contient l’ensemble des méthodes et appels (URL) du plugin Tabou2 vers un service externe (geoserver, API). La librairie axios fournie par MapStore2 est utilisée.
components
Contient tous les composants (fenêtres, comportements) du module.
actions
Pour en savoir plus sur les actions :
https://mapstore.readthedocs.io/en/latest/developer-guide/writing-actions-reducers.html https://redux.js.org/tutorials/fundamentals/part-3-state-actions-reducers
epics
Consulter https://redux-observable.js.org/docs/basics/Epics.html pour plus d’informations.
reducers
Pour en savoir plus sur les reducers :
https://mapstore.readthedocs.io/en/latest/developer-guide/writing-actions-reducers.html https://redux.js.org/tutorials/fundamentals/part-3-state-actions-reducers
selectors
Les selectors permettent de ne pas modifier et interagir directement avec l’état (props) des composants. L’ensemble des actions asynchrones (requêtes) doivent en majorité passer par un selectors.
Voici les bonnes pratiques :
utils
Contient des méthodes utiles à l’ensemble du plugin.
constant.js
ce fichier contient les constantes utiles et obligatoires pour le bon fonctionnement du plugin.