Une interface en français pour générer la configuration de l'extension
panelEditor de MapStore. Application entièrement statique, compatible avec
GitHub Pages. Vite sert au développement et à la compilation ; aucune dépendance
de production ni serveur applicatif n'est nécessaire.
- Coller l'URL WMS du service ou d'une requête GetMap et explorer les couches.
- Choisir la couche et lire ses attributs. Le studio utilise
DescribeLayerquand disponible, puis WFSDescribeFeatureType(XSD ou JSON). - Configurer les contrôles, les rôles, les valeurs et les conditions de saisie.
- Copier ou télécharger le JSON du plugin, de
cfgou de la couche uniquement.
Le bouton Essayer un exemple fonctionne sans service distant. Le mode Commencer manuellement permet de configurer une couche dont le schéma n'est pas accessible. Les réglages ne sont pas persistés : télécharger le JSON avant de fermer ou recharger l'onglet.
Les contrôles proposés sont texte, texte long, nombre, date, liste et géocodage.
Les conditions multiples sont combinées avec un ET logique ; les attributs
restent visibles. Le studio prend en charge pattern pour le texte, min/max
pour les nombres, defaultValue, value, readOnly et les droits par rôle.
Les erreurs de configuration empêchent l'export, notamment les regex incorrectes,
les bornes inversées, les attributs manquants et les cycles de dépendance.
La sortie complète est { "name": "panelEditor", "cfg": { ... } }, à placer
dans plugins.desktop du localConfig.json MapStore. Les noms des attributs et
de la couche doivent correspondre à ceux utilisés dans MapStore et le WFS.
Les champs automatiques et les restrictions spatiales ne sont pas configurables
dans cette première version du studio.
- Pousser le projet sur la branche
mainde votre dépôt GitHub. - Dans Settings → Pages → Build and deployment, choisir GitHub Actions.
- Le workflow
.github/workflows/pages.ymlinstalle les outils, vérifie le code, compile le site et publiedist/. Il peut aussi être lancé manuellement depuis l'onglet Actions.
Le site fonctionne à https://<compte>.github.io/ms2-panel-editor-studio/ comme
sur un domaine personnalisé : les ressources utilisent des chemins relatifs.
Aucun secret ni serveur applicatif n'est nécessaire.
Workflow conforme au déploiement personnalisé GitHub Pages.
Les requêtes sont des lectures HTTP effectuées directement par le navigateur. Le serveur cartographique doit autoriser CORS pour l'origine du studio. Depuis GitHub Pages, les services doivent être accessibles en HTTPS. Un WMS seul ne fournit pas les attributs : un WFS associé est nécessaire pour la découverte. L'URL WFS et le nom du type peuvent être corrigés manuellement. Les géométries sont exclues ; les types non reconnus sont proposés en texte. Les schémas complexes nécessitant des imports XSD externes peuvent demander une saisie manuelle. Les services demandant une session authentifiée ne sont pas pris en charge ; les paramètres personnalisés de l'URL sont conservés.
Le studio ne lance aucune transaction WFS et ne modifie aucune donnée distante. La configuration exportée nécessitera un service WFS-T et ses droits pour enregistrer les attributs depuis MapStore.
Références : WMS et DescribeLayer, WFS et DescribeFeatureType.
Installer Vite et démarrer le serveur de développement :
npm install
npm run devOuvrir http://127.0.0.1:5173. npm start lance le même serveur.
Vite recharge automatiquement l'interface lors des modifications.
Utiliser une version récente de Node.js 22 (au moins 22.12).
Compiler puis prévisualiser la version destinée à GitHub Pages :
npm run build
npm run previewLa prévisualisation est disponible à http://127.0.0.1:4173 ; les fichiers
déployables sont dans dist/. base: "./" conserve la compatibilité avec le
sous-chemin du dépôt GitHub Pages, selon la documentation Vite.
Lancer les vérifications :
npm run check
npm testPour vérifier aussi le parsing XML avec le navigateur, servir la racine du dépôt
(python3 -m http.server 8080) et ouvrir http://localhost:8080/tests/browser.html.
Ces tests utilisent des réponses WMS/WFS locales, sans appel à un service distant.
site/core.mjs construit et vérifie le JSON ; site/ogc.mjs découvre les couches
et les schémas ; site/app.mjs gère l'interface. Les tests utilisent uniquement
le runner intégré à Node.js. La licence du dépôt est conservée.
Démarrer le Studio avec npm run dev, puis coller cette URL dans La couche :
http://localhost:82/geoserver/data/wms?service=WMS&version=1.1.0&request=GetMap&layers=data%3Aavis_urbanisme
Explorer le service et lire les attributs de avis_urbanisme. Le Studio associe
le nom WMS non préfixé au type WFS data:avis_urbanisme. Vérifier ensuite les
listes Visibles/Masqués, les paramètres généraux et le JSON exporté. La liste
« Attributs » affiche uniquement les champs visibles. GeoServer doit être en
cours d'exécution et autoriser CORS depuis l'origine du Studio.
Modifier site/public/studio-config.json pour personnaliser le sélecteur de
l'étape La couche :
{
"defaultWmsService": "local",
"wmsServices": [
{
"id": "local",
"label": "Mon GeoServer",
"url": "http://localhost:82/geoserver/data/wms"
}
]
}id doit être unique, label est le nom affiché et url accepte une URL de
service ou de requête GetMap. defaultWmsService est facultatif : il préremplit
l'URL sans lancer de requête WMS. L'utilisateur peut toujours saisir une autre URL.
Un tableau wmsServices vide désactive les suggestions.
Vite copie ce fichier dans dist/studio-config.json, conservé comme configuration
modifiable après compilation. Pour GitHub Pages, adapter les URLs aux services
HTTPS accessibles aux utilisateurs ; localhost désigne leur propre machine.