IGNF / geoportal-extensions

French Geoportal Extensions for well-known javascript mapping libraries (Leaflet and OpenLayers)
https://ignf.github.io/geoportal-extensions/
Other
64 stars 33 forks source link

Feature/adaptations gpf #364

Closed elias75015 closed 1 year ago

elias75015 commented 1 year ago

Pull request checklist

Verifiez que votre Pull Request remplit les conditions suivantes :

Type de Pull request

Quel type de changement cette Pull Request introduit-elle : - [ ] Bugfix - [x] Feature - [ ] Mise à jour du style du code (syntaxe, renommage de fonctions) - [ ] Refactoring (lisibilité/performance du code, sans changements fonctionnels) - [ ] Changement sur le processus de build - [ ] Contenu de la documentation - [ ] Autres (décrire ci-après) : ## Quel est le comportement actuel (avant PR) : L'autoconfiguration est utilisée pour l'ajout simplifié des couches et pour la vérification des droits d'accès aux services utilisés par les différents controles (alti, geocodage, iti...) ## Quel est le nouveau comportement : Cette PR a pour but de se passer du service d'autoconfiguration via l'utilisation de la bibliothèque d'accès aux services sans autoconfiguration. Chargement synchrone de la configuration. Mise à jour de la documentation. Plus de vérification des droits d'accès. ## Cette PR introduit-elle des breaking changes ? - [x] Oui - [ ] Non * L'autoconfiguration locale de type autoconf.js n'est plus prise en charge par le tag data-url au chargement de la page. Il faut désormais mettre un chemin vers un fichier de type customConfig. * Les originators ne sont plus présents dans la configuration désormais récupérées des getCap. L'utilisateur doit donc les rajouter "manuellement" aux couches via l'option adéquate pour les afficher via le widget d'attributions. * Les metadata ne sont plus présents dans la configuration désormais récupérées des getCap. L'utilisateur doit donc les rajouter "manuellement" aux couches via l'option adéquate pour les afficher via le widget layerswitcher.
lowzonenose commented 1 year ago

Dans le fichier AutoLoadConfig.js, on force le mode synchrone pour getConfig()

var options = {
        apiKey : key,
        sync : true,
        onSuccess : success,
        onFailure : error
};
(...)
Gp.Services.getConfig(options);

On ajoute le hack suivant dans le fichier index.js

export const Config = (window.Gp) ? window.Gp.Config : {};
lowzonenose commented 1 year ago

Les exemples sont à corriger quand on utilise directement Gp.Services.getConfig() afin d'éviter un double appel de l'autoconf :

<!DOCTYPE html>
<html>
    <head>
        <meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
        <meta charset="UTF-8"> 

        <link rel="stylesheet" href="../../../dist/openlayers/GpPluginOpenLayers-map.css" />

        <script src="../../resources/vendor/ol/v6.9.0/ol.js"></script>

        <!-- HERE : 1ER APPEL DE GETCONFIG() -->
        <script src="../../../dist/openlayers/GpPluginOpenLayers-map.js" data-key="ortho,cartes,administratif"></script>

        <title>Sample openlayers - multikeys</title>
        <style>
            div#map {
                width: 100%;
                height: 500px;
            }
        </style>

    </head>
    <body>
            <div id="map"></div>

            <script type="text/javascript">
              var createMap = function () { };

              <!-- HERE : 2EME APPEL DE GETCONFIG() -->
              Gp.Services.getConfig({
                // callbackSuffix : '',
                apiKey: "essentiels,cartes,adresse,lambert93",
                timeOut: 20000,
                onSuccess: createMap
              });
            </script>
    </body>
</html>