Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • geocontrib/geocontrib-frontend
  • ext_matthieu/geocontrib-frontend
  • fnecas/geocontrib-frontend
  • MatthieuE/geocontrib-frontend
4 results
Show changes
Commits on Source (2034)
Showing
with 5230 additions and 2801 deletions
### macOS ###
# General
.DS_Store
.AppleDouble
.LSOverride
package-lock.json
.env
.env.*
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
### Vuejs ###
# Recommended template: Node.gitignore
node_modules/
dist/
npm-debug.log
yarn-error.log
*.swp
module.exports = { module.exports = {
root: true, root: true,
env: { env: {
node: true node: true,
commonjs: true,
browser: true
}, },
'extends': [ parserOptions: {
'plugin:vue/essential', ecmaVersion: 2017,
'eslint:recommended' parser: '@babel/eslint-parser'
},
extends: [
'eslint:recommended',
'plugin:vue/recommended'
], ],
rules: { rules: {
// 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', "no-unused-vars": "warn",
//'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off' 'quote-props': [
}, 'warn',
parserOptions: { 'as-needed'
parser: 'babel-eslint' ],
'object-curly-spacing': [
'warn',
'always',
{
arraysInObjects: true,
objectsInObjects: true
}
],
indent: [
'warn',
2
],
'linebreak-style': [
'warn',
process.platform === 'win32' ? 'windows' : 'unix'
],
semi: [
'warn',
'always'
],
quotes: [
'warn',
'single',
{
avoidEscape: true
}
],
'max-len': [
'warn',
{
code: 120,
tabWidth: 2,
ignoreComments: true,
ignoreTrailingComments: true,
ignoreUrls: true,
ignoreStrings: true,
ignoreTemplateLiterals: true,
ignoreRegExpLiterals: true
}
]
} }
} };
\ No newline at end of file \ No newline at end of file
...@@ -40,3 +40,6 @@ npm-debug.log ...@@ -40,3 +40,6 @@ npm-debug.log
yarn-error.log yarn-error.log
*.swp *.swp
### Config ###
public/config/config.json
\ No newline at end of file
stages: stages:
- build - test-build
- Static analysis - Static analysis
- build
- deploy
variables: variables:
SONAR_PROJECTKEY: "$CI_PROJECT_NAME"
SONAR_HOST_URL: "https://sonarqube.neogeo.fr"
GIT_DEPTH: 0 GIT_DEPTH: 0
test build:
stage: test-build
image: node:14
script:
- npm install
- npm run build
except:
- master
- develop
- ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
build testing docker image: build testing docker image:
stage: build stage: build
only:
- develop
tags:
- build_docker
variables:
DOCKER_TAG: testing
script:
- cat $DOCKER_PASSWORD | docker login --username $DOCKER_LOGIN --password-stdin
- docker-compose build geocontrib-front
- docker-compose push geocontrib-front
- echo Image docker neogeo/geocontrib-front:${DOCKER_TAG} livrée
deploy testing docker image:
stage: deploy
only: only:
- develop - develop
tags: tags:
- build - build
image: image:
name: gcr.io/kaniko-project/executor:debug name: curlimages/curl
entrypoint: [""]
script: script:
- mkdir -p /kaniko/.docker - curl -X POST -F token=$TRIGGER_TOKEN -F ref=main https://git.neogeo.fr/api/v4/projects/226/trigger/pipeline
- export
- echo "{\"auths\":{\"https://index.docker.io/v1/\":{\"auth\":\"$DOCKER_AUTH\"}}}" > /kaniko/.docker/config.json
- /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination neogeo/geocontrib-front:testing
- echo Image docker neogeo/geocontrib-front:testing livrée
build stable docker image: build stable docker image:
stage: build stage: build
only: only:
- master - master
tags: tags:
- build - build_docker
image: variables:
name: gcr.io/kaniko-project/executor:debug DOCKER_TAG: latest
entrypoint: [""]
script: script:
- mkdir -p /kaniko/.docker - cat $DOCKER_PASSWORD | docker login --username $DOCKER_LOGIN --password-stdin
- echo "{\"auths\":{\"https://index.docker.io/v1/\":{\"auth\":\"$DOCKER_AUTH\"}}}" > /kaniko/.docker/config.json - docker-compose build geocontrib-front
- /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination neogeo/geocontrib-front:latest - docker-compose push geocontrib-front
- echo Image docker neogeo/geocontrib:latest livrée - echo Image docker neogeo/geocontrib-front:${DOCKER_TAG} livrée
build tagged docker image: build tagged docker image:
stage: build stage: build
only: only:
- tags - tags
when: manual
tags: tags:
- build - build_docker
image: variables:
name: gcr.io/kaniko-project/executor:debug DOCKER_TAG: $CI_COMMIT_TAG
entrypoint: [""]
script: script:
# Don't build tag id package.json as wrong version # Don't build tag id package.json as wrong version
- grep "\"version\":.\"$CI_COMMIT_TAG\"" package.json - grep "\"version\":.\"$CI_COMMIT_TAG\"" package.json
- mkdir -p /kaniko/.docker - cat $DOCKER_PASSWORD | docker login --username $DOCKER_LOGIN --password-stdin
- echo "{\"auths\":{\"https://index.docker.io/v1/\":{\"auth\":\"$DOCKER_AUTH\"}}}" > /kaniko/.docker/config.json - docker-compose build geocontrib-front
- /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination neogeo/geocontrib-front:$CI_COMMIT_TAG - docker-compose push geocontrib-front
- echo Image docker neogeo/geocontrib-front:$CI_COMMIT_TAG livrée - echo Image docker neogeo/geocontrib-front:${DOCKER_TAG} livrée
sonarqube-check: sonarqube-check:
image: image:
...@@ -67,6 +81,4 @@ sonarqube-check: ...@@ -67,6 +81,4 @@ sonarqube-check:
- develop - develop
stage: Static analysis stage: Static analysis
script: script:
- sonar-scanner -Dsonar.qualitygate.wait=true -Dsonar.projectKey=$CI_PROJECT_NAME -Dsonar.projectName=$CI_PROJECT_NAME -Dsonar.projectVersion=$CI_COMMIT_BRANCH - sonar-scanner -Dsonar.qualitygate.wait=true -Dsonar.projectKey=id-$CI_PROJECT_ID -Dsonar.projectName="$CI_PROJECT_PATH" -Dsonar.projectVersion=$CI_COMMIT_BRANCH -Dsonar.coverage.exclusions=**/src/**/*
allow_failure: true
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
## [X.X.X] - 2024-03-04
### Corrections
- Redmine 20344 : Ajout de la documention dans le fichier de config => VUE_APP_URL_DOCUMENTATION
FROM node:12.13-slim AS builder FROM node:14-slim AS builder
WORKDIR /app WORKDIR /app
RUN npm install -g npm@latest #RUN npm install -g npm@latest
COPY package*.json ./ COPY package*.json ./
RUN npm install RUN npm install
#COPY dist dist
COPY . . COPY . .
RUN npm run build RUN npm run build
FROM nginx FROM nginx
COPY --from=builder /app/dist /usr/share/nginx/html RUN mkdir /usr/share/nginx/html/geocontrib
COPY --from=builder /app/dist /usr/share/nginx/html/geocontrib
COPY nginx.conf /etc/nginx/conf.d/default.conf COPY nginx.conf /etc/nginx/conf.d/default.conf
RUN useradd -r -m apprunner
RUN mkdir -p /opt/geocontrib/media /opt/geocontrib/static /opt/geocontrib/config/ && \
chown -R apprunner /opt/geocontrib/ && \
rm -Rf /usr/share/nginx/html/geocontrib/config/ && \
ln -s /opt/geocontrib/config/ /usr/share/nginx/html/geocontrib/config
VOLUME /opt/geocontrib/media /opt/geocontrib/static /opt/geocontrib/config/
EXPOSE 80 EXPOSE 80
CMD ["nginx", "-g", "daemon off;"] CMD ["nginx", "-g", "daemon off;"]
![alt text](public/img/logo-geocontrib.png?raw=true)
# geocontrib-frontend # geocontrib-frontend
## Project setup ## Project setup
...@@ -10,20 +12,74 @@ Créer un fichier .env à la racine du projet puis ajouter les variables comme i ...@@ -10,20 +12,74 @@ Créer un fichier .env à la racine du projet puis ajouter les variables comme i
``` ```
DOMAIN=http://localhost:8010/ BASE_URL=/geocontrib/
NODE_ENV=development NODE_ENV=development
VUE_APP_LOCALE=fr-FR
VUE_APP_APPLICATION_NAME=GéoContrib
VUE_APP_APPLICATION_ABSTRACT=Application de saisie d'informations géographiques contributive
VUE_APP_LOGO_PATH=@/assets/img/logo-neogeo-circle.png
VUE_APP_DJANGO_API_BASE=${DOMAIN}api/
VUE_APP_DJANGO_BASE=${DOMAIN}
``` ```
### Configuration par le config.json
```json
{
"BASE_URL":"/geocontrib/",
"DOMAIN":"/geocontrib/",
"VUE_APP_LOCALE":"fr-FR",
"VUE_APP_APPLICATION_NAME":"GéoContrib",
"VUE_APP_APPLICATION_ABSTRACT":"Application de saisie d'informations géographiques contributive",
"VUE_APP_APPLICATION_FAVICO":"/geocontrib/favicon.ico",
"VUE_APP_LOGO_PATH":"/geocontrib/img/logo-neogeo-circle.png",
"VUE_APP_DJANGO_BASE":"",
"VUE_APP_DJANGO_API_BASE":"/geocontrib/api/",
"VUE_APP_CATALOG_NAME": "Datasud", => renseigne le nom du catalogue dans le bouton importer depuis le catalogue
"VUE_APP_IDGO": true, => si le bouton importer depuis le catalogue doit être affiché ou pas
"VUE_APP_RELOAD_INTERVAL": 15000,
"VUE_APP_DISABLE_LOGIN_BUTTON":false,
"VUE_APP_LOGIN_URL":"",
"VUE_APP_SSO_LOGIN_URL_WITH_REDIRECT":"",
"VUE_APP_FONT_FAMILY":"",
"VUE_APP_HEADER_COLOR":"",
"VUE_APP_PRIMARY_COLOR":"",
"VUE_APP_PRIMARY_HIGHLIGHT_COLOR":"",
"VUE_APP_PROJECT_FILTERS": "access_level,user_access_level,moderation,search",
"DEFAULT_BASE_MAP_SCHEMA_TYPE": "tms",
"DEFAULT_BASE_MAP_SERVICE": "https://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png",
"DEFAULT_BASE_MAP_OPTIONS": {
"attribution": "&copy; contributeurs d'<a href='https://osm.org/copyright'>OpenStreetMap</a>",
"maxZoom": 20
},
"DEFAULT_MAP_VIEW" : {
"center": [47.0, 1.0],
"zoom": 4
},
"MAP_PREVIEW_CENTER": [43.60882653785945, 1.447888090697796],
"DISPLAY_FORBIDDEN_PROJECTS": true,
"DISPLAY_FORBIDDEN_PROJECTS_DEFAULT": true
}
```
### Configuration additionnelle pour geOrchestra
Afin de mieux s'intégrer au SDI geOrchestra, il est possible de modifier le header pour afficher celui de geOrchestra.
Dans le fichier config.json, ajouter :
```json
{
"GEORCHESTRA_INTEGRATION": {
"HEADER": {
"LEGACY_HEADER": false,
"LEGACY_URL": "/header/",
"STYLE": "",
"STYLESHEET": "",
"HEADER_SCRIPT": ""
}
}
}
```
### Utilisation sans installation du backend
Il est possible d'utiliser un serveur HTTP local pour utiliser l'API des instances en ligne, sans avoir de problèmes de CORS, pour cela se référer fichier : conf_apache_dev.md
### Compiles and hot-reloads for development ### Compiles and hot-reloads for development
Pour éviter les problèmes de Cors en dév, (car backend sur serveur différent de frontend, différent en prod car même serveur), on utilise un proxy qui s'occupe de renseigner les CORS: https://github.com/garmeeh/local-cors-proxy#local-cors-proxy Pour éviter les problèmes de Cors en dév, (car backend sur serveur différent de frontend, différent en prod car même serveur), on utilise un proxy qui s'occupe de renseigner les CORS: https://github.com/garmeeh/local-cors-proxy#local-cors-proxy
...@@ -37,6 +93,15 @@ La commande serve lance les deux serveurs en parallèle dans le même terminal. ...@@ -37,6 +93,15 @@ La commande serve lance les deux serveurs en parallèle dans le même terminal.
``` ```
npm run serve npm run serve
``` ```
**Pour tester les fonctionnalités d'import il faut activer redis-server et celery !**
Si redis et celery sont déjà installé, ouvrir un terminal et démarrer redis.
```
redis-server
```
Ouvrir un autre terminal dans le répertoire du projet backend et activer l'environnement virtuel, puis démarrer celery
```
celery -A config worker -l info
```
### Compiles and minifies for production ### Compiles and minifies for production
``` ```
...@@ -76,9 +141,80 @@ docker-compose up -d ...@@ -76,9 +141,80 @@ docker-compose up -d
``` ```
--- ---
## Notes ## Notes
### Changement par rapport au projet django
- Base.html => App.vue
- Découpage en composants
### Divers ### Version
- Afin de garder la même structure de pages que les templates originaux dans Django et aller vite, on utilise Vue-frag qui permet d'avoir plusieurs éléments html à la racine du template d'un compposant (comme les fragments dans React), sans avoir à ajouter une div wrapper qui pourait modifier le style (si on a une classe parente avec du flex par exemple). Node => v14.18.2
<br>
# Système de notifications
## Vue d'ensemble
Notre système de notifications est conçu pour informer les utilisateurs des événements significatifs au sein de leurs projets, tels que la création, la mise à jour et la suppression de signalements, de commentaires et de pièces jointes. Ce système est configurable, permettant d'adapter les notifications aux besoins spécifiques des projets et aux préférences des utilisateurs.
### Caractéristiques principales
- **Modèles personnalisables** : Vous pouvez personnaliser le contenu des notifications selon vos besoins directement via l'interface d'administration, grâce à des modèles modifiables.
## Types de notifications
### Notifications groupées
- **Objectif** : Ces notifications visent à informer les abonnés de tous les événements importants au sein des projets, incluant les mises à jour des signalements, les publications de commentaires ou de documents et les modifications majeures des projets.
- **Déclencheur** : Les notifications sont envoyées périodiquement selon la configuration de la tâche périodique associée.
- **Caractéristiques Configurables** :
- **Niveau d'envoi des notifications** : Les administrateurs peuvent configurer l'envoi des notifications pour les documents clés à un niveau globale ou par projet.
- **Désactivation des notifications** : Vous pouvez désactiver les notifications pour un type de signalement via l'interface d'administration ou dans l'application frontend. L'envoi des notifications de publication de documents clés ne sont pas impactés par ce pramétrage.
### Notifications de publication de documents clés
- **Objectif** : S'assurer que tous les abonnés d'un projet sont alertés lors de la publication de documents jugés essentiels ou critiques.
- **Déclencheur** : Les notifications sont envoyées périodiquement selon la configuration de la tâche périodique associée.
- **Fonctionnement** : Lors de la publication ou de l'édition d'un signalement, ainsi que lors de l'ajout de commentaires avec pièces jointes, les utilisateurs verront une option `Envoyer une notification de publication`. Cette option est décochée par défaut pour éviter les envois non désirés. En cochant cette option lors de la publication d'une pièce jointe, un événement `Document clé` est généré. Cet événement est lié à la notification spécifique qui sera envoyée aux abonnés du projet.
- **Caractéristiques Configurables** :
- **Activation des Notifications** : Les administrateurs peuvent activer les notifications pour les publications de documents clés directement lors de la création d'un type de signalement en sélectionnant l'option `Activer la notification de publication de pièces jointes`, désactivée par défaut. L'activation de cette notification peut également être modifiée ultérieurement dans l'interface d'édition du type de signalement. Ceci est accessible via l'icône de pinceau sur la page d'accueil du projet.
### Notifications pour signalements en attente de modération
- **Objectif** : Informer les modérateurs des projets lorsque des signalements requièrent leur attention pour validation, dans le contexte des projets ayant activé la modération.
- **Fonctionnement** : Les notifications sont déclenchées automatiquement lorsque le statut d'un signalement passe à "En attente de publication", nécessitant une action de la part des modérateurs.
### Notifications de publication de signalements après modération
- **Objectif** : Communiquer avec l'auteur d'un signalement pour l'informer que sa contribution a été approuvée et publiée par un modérateur.
- **Fonctionnement** : Ces notifications sont envoyées lorsqu'un signalement change de statut de "En attente de publication" à "Publié", fournissant un retour immédiat et valorisant pour les contributeurs
<br>
<br>
DEVELOPPEMENT
=============
Général
-------
Geocontrib est un projet initié par NeoGeo.
Le code source de l'application est maintenu sur la plateforme https://git.neogeo.fr/geocontrib/.
les Mainteneurs actuels :
- Timothée POUSSARD (Neogeo)
- Camille BLANCHON (Neogeo)
- Matthieu ETOURNEAU (Neogeo)
- Angela Escobar (Neogeo)
La documentation de l'application
*********************************
https://www.onegeosuite.fr/docs/team_geocontrib
Pratiques et règles de developpement
------------------------------------
Afin de partager des règles communes de développement et faciliter l'intégration de
nouveau code, veuillez lire les recommandations et bonnes pratiques recommandées pour contribuer
au projet GeoContrib.
Git
***
- Faire une demande de contribution en envoyant un mail à metourneau@neogeo.fr
- Un compte vous sera créé sur notre plateforme gitlab
- Faire un fork de l'application
- Faire des merge requests vers la branch ``develop``
- Faire des ``git pull`` avant chaque développement et avant chaque commit
module.exports = { module.exports = {
presets: [ presets: [
'@vue/cli-plugin-babel/preset' [
'@babel/preset-env',
{
targets: {
esmodules: true
}
}
]
] ]
} };
# Introduction
La configuration d'un serveur HTTP local permet de faire tourner le frontend en local sur "/geocontrib"
et de faire pointer "/api" sur n'importe quel backend (dev, local ou autre ). La configuration est différent sous MacOSX et Linux
# Configuration apache
Dans la configuration apache générale (httpd.conf ou commande a2enmod ), activer les modules :
* mod_headers
* mod_proxy
* mod_ssl
* mod_proxy_http
À ajouter dans httpd.conf (MacOSX) ou apache2.conf (Linux)
```
<Location /geocontrib >
ProxyPass http://localhost:8080/geocontrib
</Location>
SSLProxyEngine On
<Location /api >
ProxyPass https://geocontrib.dev.neogeo.fr/geocontrib/api
RequestHeader set Referer https://geocontrib.dev.neogeo.fr/
# Pour la 4.2.x utiliser geocontrib.recette-stable.neogeo.fr
</Location>
```
Pour que les changements soient pris en compte, il faut ensuite relancer le serveur apache.
## Spécifique Linux (Debian/Ubuntu)
- S'il n'est pas déjà disponible, installer Apache :
```
sudo apt get apache2
```
- a2enmod est disponible par défaut, saisir "a2enmod", puis rappeler la commande en ajoutant l'option (headers, proxy,...) correspondante dans la liste proposée.
- il ne faut pas modifier le fichier httpd.conf, mais les lignes ci-dessous peuvent-être ajoutées à la fin du fichier apache2.conf qui se trouve dans le dossier "/etc/apache2"
- Relancer le serveur apache, avec la commande suivante:
```
systemctl restart apache2
```
# Configuration dans le projet VueJS
Remplacer dans le fichier config.json du projet
```
DOMAIN":"http://localhost:8010/", par "DOMAIN":"http://localhost/",
```
et
```
"VUE_APP_DJANGO_API_BASE":"http://localhost:8010/api/", par "VUE_APP_DJANGO_API_BASE":"http://localhost/api/",
```
# Accès au site
Une fois le serveur frontend lancé ou relancé, le site est disponible sur "http://localhost/geocontrib/"
...@@ -2,8 +2,10 @@ ...@@ -2,8 +2,10 @@
version: "3" version: "3"
services: services:
geocontrib-front: geocontrib-front:
image: neogeo/geocontrib-front image: neogeo/geocontrib-front:${DOCKER_TAG:-testing}
build: . build: .
environment:
- BASE_URL=${BASE_URL}
ports: ports:
- 8080:80 - 8080:80
volumes: volumes:
......
...@@ -6,10 +6,16 @@ server { ...@@ -6,10 +6,16 @@ server {
listen 80; listen 80;
charset utf-8; charset utf-8;
server_name 127.0.0.1; server_name 127.0.0.1;
root /usr/share/nginx/html;
client_max_body_size 4G; client_max_body_size 4G;
location /api { location = / {
absolute_redirect off;
return 301 /geocontrib/ ;
}
location /geocontrib/api {
proxy_pass_header Set-Cookie; proxy_pass_header Set-Cookie;
proxy_set_header X-NginX-Proxy true; proxy_set_header X-NginX-Proxy true;
proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Real-IP $remote_addr;
...@@ -21,7 +27,7 @@ server { ...@@ -21,7 +27,7 @@ server {
proxy_pass http://geocontrib_site; proxy_pass http://geocontrib_site;
} }
location /admin { location /geocontrib/cas {
proxy_pass_header Set-Cookie; proxy_pass_header Set-Cookie;
proxy_set_header X-NginX-Proxy true; proxy_set_header X-NginX-Proxy true;
proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Real-IP $remote_addr;
...@@ -33,20 +39,37 @@ server { ...@@ -33,20 +39,37 @@ server {
proxy_pass http://geocontrib_site; proxy_pass http://geocontrib_site;
} }
location /static/ { location /geocontrib/admin {
alias /opt/geocontrib/static/; proxy_pass_header Set-Cookie;
proxy_set_header X-NginX-Proxy true;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_read_timeout 300s;
proxy_redirect off;
proxy_pass http://geocontrib_site;
} }
location /media/ { location /geocontrib/media/ {
alias /opt/geocontrib/media/; proxy_pass_header Set-Cookie;
proxy_set_header X-NginX-Proxy true;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_read_timeout 300s;
proxy_redirect off;
proxy_pass http://geocontrib_site;
} }
location / { location /geocontrib/static/ {
root /usr/share/nginx/html; alias /opt/geocontrib/static/;
index index.html;
try_files $uri $uri/ /index.html;
} }
location /geocontrib/ {
index index.html;
try_files $uri $uri/ /geocontrib/index.html;
}
} }
Source diff could not be displayed: it is too large. Options to address this: view the blob.
{ {
"name": "geocontrib-frontend", "name": "geocontrib-frontend",
"version": "2.1.0", "version": "6.4.5-rc4",
"private": true, "private": true,
"scripts": { "scripts": {
"serve": "npm run init-proxy & npm run init-serve", "serve": "npm run init-proxy & npm run init-serve",
"init-proxy": "lcp --proxyUrl http://localhost:8000 --origin http://localhost:8080 --proxyPartial ''", "init-proxy": "lcp --credentials --proxyUrl http://127.0.0.1:8000 --origin http://localhost:8080 --proxyPartial ''",
"init-serve": "vue-cli-service serve", "init-serve": "vue-cli-service serve",
"build": "vue-cli-service build", "build": "vue-cli-service build",
"lint": "vue-cli-service lint" "lint": "vue-cli-service lint"
}, },
"dependencies": { "dependencies": {
"@turf/flip": "^6.5.0", "@fortawesome/fontawesome-svg-core": "^1.2.36",
"@fortawesome/free-brands-svg-icons": "^5.15.4",
"@fortawesome/free-regular-svg-icons": "^5.15.4",
"@fortawesome/free-solid-svg-icons": "^5.15.4",
"@fortawesome/vue-fontawesome": "^2.0.6",
"@mapbox/vector-tile": "^1.3.1",
"axios": "^0.21.1", "axios": "^0.21.1",
"core-js": "^3.6.5", "core-js": "^3.20.2",
"leaflet": "^1.5.1", "csvtojson": "^2.0.10",
"leaflet-draw": "^1.0.4", "lodash": "^4.17.21",
"ol": "^9.1.0",
"ol-mapbox-style": "^12.3.0",
"pbf": "^3.2.1",
"qrcode": "^1.5.1",
"register-service-worker": "^1.7.1", "register-service-worker": "^1.7.1",
"rxjs": "^6.6.7",
"sortablejs": "^1.14.0", "sortablejs": "^1.14.0",
"textarea-markdown": "^1.3.1",
"vue": "^2.6.11", "vue": "^2.6.11",
"vue-frag": "^1.1.5", "vue-multiselect": "~2.1.6",
"vue-router": "^3.2.0", "vue-router": "^3.5.3",
"vuex": "^3.6.2" "vuex": "^3.6.2"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "^7.25.2",
"@babel/eslint-parser": "^7.15.8",
"@babel/preset-env": "^7.25.4",
"@fortawesome/fontawesome-free": "^5.15.4",
"@vue/cli-plugin-babel": "~4.5.0", "@vue/cli-plugin-babel": "~4.5.0",
"@vue/cli-plugin-eslint": "~4.5.0", "@vue/cli-plugin-eslint": "^5.0.0-beta.6",
"@vue/cli-plugin-pwa": "~4.5.0", "@vue/cli-plugin-pwa": "~4.5.0",
"@vue/cli-plugin-router": "~4.5.0", "@vue/cli-plugin-router": "~4.5.0",
"@vue/cli-service": "~4.5.0", "@vue/cli-service": "~4.5.0",
"babel-eslint": "^10.1.0", "babel-loader": "^9.2.1",
"eslint": "^6.7.2", "eslint": "^7.32.0",
"eslint-plugin-vue": "^6.2.2", "eslint-plugin-vue": "^7.20.0",
"less": "^3.0.4", "less": "^3.0.4",
"less-loader": "^5.0.0", "less-loader": "^5.0.0",
"local-cors-proxy": "^1.1.0",
"vue-template-compiler": "^2.6.11" "vue-template-compiler": "^2.6.11"
} }
} }
{ {
"BASE_URL":"/", "BASE_URL":"/geocontrib/",
"DOMAIN":"http://localhost:8010/", "DOMAIN":"http://localhost/",
"NODE_ENV":"development", "NODE_ENV":"development",
"VUE_APP_LOCALE":"fr-FR", "VUE_APP_LOCALE":"fr-FR",
"VUE_APP_APPLICATION_NAME":"GéoContrib", "VUE_APP_APPLICATION_NAME":"GéoContrib",
"VUE_APP_APPLICATION_FAVICO":"/geocontrib/img/geo2f.ico",
"VUE_APP_APPLICATION_ABSTRACT":"Application de saisie d'informations géographiques contributive", "VUE_APP_APPLICATION_ABSTRACT":"Application de saisie d'informations géographiques contributive",
"VUE_APP_LOGO_PATH":"@/assets/img/logo-neogeo-circle.png", "VUE_APP_LOGO_PATH":"/geocontrib/img/logo-neogeo-circle.png",
"VUE_APP_DJANGO_BASE":"http://localhost:8010", "VUE_APP_DJANGO_BASE":"http://localhost:8010",
"VUE_APP_DJANGO_API_BASE":"http://localhost:8010/api/", "VUE_APP_DJANGO_API_BASE":"http://localhost:8010/api/",
"DEFAULT_BASE_MAP":{ "VUE_APP_CATALOG_NAME": "Datasud",
"SERVICE": "https://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png", "VUE_APP_IDGO": true,
"OPTIONS": { "VUE_APP_RELOAD_INTERVAL": 15000,
"VUE_APP_DISABLE_LOGIN_BUTTON":false,
"VUE_APP_LOGIN_URL":"",
"VUE_APP_FONT_FAMILY":"",
"VUE_APP_HEADER_COLOR":"",
"VUE_APP_PRIMARY_COLOR":"",
"VUE_APP_PRIMARY_HIGHLIGHT_COLOR" : "",
"DEFAULT_BASE_MAP_SCHEMA_TYPE": "tms",
"DEFAULT_BASE_MAP_SERVICE": "https://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png",
"DEFAULT_BASE_MAP_OPTIONS": {
"attribution": "&copy; contributeurs d'<a href='https://osm.org/copyright'>OpenStreetMap</a>", "attribution": "&copy; contributeurs d'<a href='https://osm.org/copyright'>OpenStreetMap</a>",
"maxZoom": 20 "maxZoom": 20
}
}, },
"DEFAULT_MAP_VIEW" : { "DEFAULT_MAP_VIEW" : {
"center": [47.0, 1.0], "center": [47.0, 1.0],
"zoom": 4 "zoom": 4
}, },
"GEOCODER_PROVIDERS" : { "MAP_PREVIEW_CENTER" : [43.60882653785945, 1.447888090697796],
"ADDOK": "addok", "DISPLAY_FORBIDDEN_PROJECTS": true,
"NOMINATIM": "nominatim", "DISPLAY_FORBIDDEN_PROJECTS_DEFAULT": true,
"PHOTON": "photon" "VUE_APP_URL_DOCUMENTATION": "https://www.onegeosuite.fr/docs/module-geocontrib/intro",
}, "VUE_APP_URL_DOCUMENTATION_FEATURE": "https://www.onegeosuite.fr/docs/module-geocontrib/project_settings"
"SELECTED_GEOCODER" : {
"PROVIDER": "addok"
}
} }
\ No newline at end of file
public/img/favicon_gc.png

1.12 KiB

public/img/icons/android-chrome-192x192.png

9.2 KiB | W: | H:

public/img/icons/android-chrome-192x192.png

17.8 KiB | W: | H:

public/img/icons/android-chrome-192x192.png
public/img/icons/android-chrome-192x192.png
public/img/icons/android-chrome-192x192.png
public/img/icons/android-chrome-192x192.png
  • 2-up
  • Swipe
  • Onion skin
public/img/icons/android-chrome-512x512.png

29.1 KiB | W: | H:

public/img/icons/android-chrome-512x512.png

67.8 KiB | W: | H:

public/img/icons/android-chrome-512x512.png
public/img/icons/android-chrome-512x512.png
public/img/icons/android-chrome-512x512.png
public/img/icons/android-chrome-512x512.png
  • 2-up
  • Swipe
  • Onion skin
public/img/icons/android-chrome-maskable-192x192.png

6.25 KiB

public/img/icons/android-chrome-maskable-512x512.png

22.5 KiB

public/img/icons/apple-touch-icon-120x120.png

3.29 KiB