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
  • web-et-numerique/factory/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client
1 result
Show changes
Commits on Source (82)
Showing
with 457 additions and 19374 deletions
...@@ -53,3 +53,7 @@ api/db.json ...@@ -53,3 +53,7 @@ api/db.json
# Documentation generated with compodoc # Documentation generated with compodoc
documentation documentation
CHANGELOG.md
package-lock.json
stages: stages:
- sonar-analysis
- build - build
- quality
- deploy - deploy
default: default:
...@@ -16,6 +16,8 @@ build_branch: ...@@ -16,6 +16,8 @@ build_branch:
DOCKER_TLS_CERTDIR: '' DOCKER_TLS_CERTDIR: ''
DOCKER_HOST: tcp://docker:2375/ DOCKER_HOST: tcp://docker:2375/
DOCKER_DRIVER: overlay2 DOCKER_DRIVER: overlay2
only:
- merge_requests
image: ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/docker:18.09 image: ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/docker:18.09
stage: build stage: build
except: except:
...@@ -75,8 +77,8 @@ deploy_dev: ...@@ -75,8 +77,8 @@ deploy_dev:
tags: tags:
- deploy - deploy
only: only:
- dev # - dev
- branches - V2.0
script: script:
- cd /home/mps/ram - cd /home/mps/ram
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
...@@ -103,36 +105,51 @@ deploy_rec: ...@@ -103,36 +105,51 @@ deploy_rec:
environment: environment:
name: rec name: rec
url: https://resin-rec.grandlyon.com url: https://resin-rec.grandlyon.com
# code_analysis:
# image: skilldlabs/sonar-scanner:3.4.0
# services:
# - docker:18.09-dind
# stage: sonar-analysis
# only:
# - dev
# before_script:
# - export NODE_PATH=$NODE_PATH:`npm root -g`
# - npm install -g typescript
# script:
# - >
# sonar-scanner
# -Dsonar.projectName=${SONAR_PROJECT_KEY}
# -Dsonar.projectVersion=1.0
# -Dsonar.sourceEncoding=UTF-8
# -Dsonar.projectBaseDir=.
# -Dsonar.host.url=${SONAR_URL}
# -Dsonar.projectKey=${SONAR_PROJECT_KEY}
# -Dsonar.login=${SONAR_TOKEN}
# mr: sonarqube:
# variables: stage: quality
# DOCKER_TLS_CERTDIR: '' only:
# DOCKER_HOST: tcp://docker:2375/ - dev
# DOCKER_DRIVER: overlay2 image: ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/sonarsource/sonar-scanner-cli:4
# image: ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/docker:18.09 variables:
# stage: build SONAR_USER_HOME: '${CI_PROJECT_DIR}/.sonar' # Defines the location of the analysis task cache
# only: GIT_DEPTH: '0' # T
# - merge_requests cache:
# script: key: '${CI_JOB_NAME}'
# - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY paths:
# - docker build --pull -t "$CI_REGISTRY_IMAGE:dev" --build-arg conf=dev . - .sonar/cache
script:
- >
sonar-scanner
-Dsonar.projectName=${SONAR_PROJECT_KEY}
-Dsonar.projectVersion=1.0
-Dsonar.sourceEncoding=UTF-8
-Dsonar.projectBaseDir=.
-Dsonar.host.url=${SONAR_URL}
-Dsonar.projectKey=${SONAR_PROJECT_KEY}
-Dsonar.login=${SONAR_TOKEN}
-Dsonar.qualitygate.wait=true
sonarqube-mr:
stage: quality
only:
- merge_requests
image: ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/sonarsource/sonar-scanner-cli:4
variables:
SONAR_USER_HOME: '${CI_PROJECT_DIR}/.sonar' # Defines the location of the analysis task cache
GIT_DEPTH: '0' # T
cache:
key: '${CI_JOB_NAME}'
paths:
- .sonar/cache
script:
- >
sonar-scanner
-Dsonar.projectName=${SONAR_PROJECT_KEY}
-Dsonar.projectVersion=1.0
-Dsonar.sourceEncoding=UTF-8
-Dsonar.projectBaseDir=.
-Dsonar.host.url=${SONAR_URL}
-Dsonar.projectKey=${SONAR_PROJECT_KEY}
-Dsonar.login=${SONAR_MR_TOKEN}
-Dsonar.qualitygate.wait=true
## Description du problème
_Donnez une briève description du problème_
## L'environnement
#### Utilisez vous l'application sur :
- [ ] Mobile
- [ ] Ordinateur
##### En cas de mobile
###### Quel type de mobile utilisez-vous?
- [ ] Android
- [ ] Iphone
###### Quel navigateur utilisez-vous?
- [ ] Chrome
- [ ] Safari
- [ ] Autre
##### En cas d'ordinateur
###### Quel navigateur utilisez-vous?
- [ ] Chrome
- [ ] Firefox
- [ ] Safari
- [ ] Autre
## Le bug
#### Quelles sont les étapes qui ont menées au problème?
_Donnez une description des étapes, il est fortemment conseillé de l'accompagner par des captures d'écran_
#### Quel est le comportement obtenu?
_Donnez une description du comportement obtenu, il est fortemment conseillé de l'accompagner par des captures d'écran_
#### Quel est le comportement attendu?
_Donnez une description du comportement attendu_
/title [Scope] Description
### Résumé du problème
_Donnez une description briève du problème._
### Les étapes pour reproduire le bug
_Listez les étapes qui vous permettent de reproduire ce bug, cette étape est très importante._
### Décrivez le comportement du bug ?
### Quel serez le comportement attendu ?
### Logs et/ou screenshots
### Possible fixes
/label ~"type::bug"
## What does this MR do and why?
_Describe in detail what your merge request does and why._
| :warning: Keep an up to date checklist based on your icescrum tasks during all the draft phase to help any other developer who would take the job after you to finish it. |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
## Screenshots or screen recordings
_These are strongly recommended to assist reviewers and reduce the time to merge your change._
## How to set up and validate locally (or on alpha)
_List all steps to set up and validate the changes on local environment._
## MR acceptance checklist
_To be completed by the chosen reviewer._
<!---
Using checklists improves quality in software engineering and other jobs such as with surgeons and airline pilots.
More reading on checklists can be found in the "Checklist Manifesto": http://atulgawande.com/book/the-checklist-manifesto/
"It is common to misconceive how checklists function in complex lines of work. They are not comprehensive how-to guides, whether for building a skyscraper or getting a plane out of trouble. They are quick and simple tools aimed to buttress the skills of expert professionals." - Gawande, Atul. The Checklist Manifesto
--->
### Quality
- [ ] Confirmed
1. For the code that this change impacts, I believe that the automated tests validate functionality that is highly important to users. If the existing automated tests do not cover this functionality, I have added the necessary additional tests or I have added an issue to describe the automation testing gap and linked it to this MR.
1. I have made sure that the sonar quality coverage is up to standards.
1. I have considered the impact of this change on the front-end, back-end, and database portions of the system where appropriate and applied.
1. I have tested this MR in all supported browsers or determined that this testing is not needed.
1. I have confirmed that this change is backwards compatible across updates (migrate up needs a migrate down), or I have decided that this does not apply.
### Performance, reliability and availability
- [ ] Confirmed
1. I am confident that this MR does not harm performance, or I have asked a reviewer to help assess the performance impact.
1. I have considered the scalability risk based on future predicted growth.
### Documentation
- [ ] Confirmed
1. I have prepared a squash commit to feed the changelog linked to the current milestone.
1. I have added/updated documentation (also updated if the changes feature a deprecation) or I have decided that documentation changes are not needed for this MR.
### Security
- [ ] Confirmed
1. I have confirmed that if this MR does not contains any sensitive informations hidden in the changes.
### Deployment
- [ ] Confirmed
1. When featured on a self-data project release, i have made sure my app version in the manifest and package.json is incremented and any relative changes to the permissions are clearly written and transmitted to Cozy.
...@@ -2,6 +2,74 @@ ...@@ -2,6 +2,74 @@
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
## [2.0.0-beta2](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/compare/v2.0.0-beta1.1...v2.0.0-beta2) (2022-05-24)
### Features
* **admin:** administration panel for jobs and employers ([04d4296](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/04d4296b55b72bfd7f0ca0a1496030cbe178caff))
* **carto:** structure-details component refactor on animation and display. Addition of avatar on form. ([e36c8f7](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/e36c8f7eb0f070ec8e5e67384724695237b7da5b))
* **carto:** updated behavior to join structure from structure details page ([4852abb](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/4852abb8284b971fedab2c4c4ded802523405f5a))
* **clickable eye:** eye closed when showing password ([4cbbb64](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/4cbbb64be6fce757d20f320a1f4c6b96b8586b1b))
* **edit-profile:** edit profile page ([0adf2df](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/0adf2df148cc65f932696d77c1c50698321f4965))
* **form:** Remove old form components ([471712a](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/471712a383d235e4da9be00efa19315dcf3918b6))
* **forms:** standardize layout ([a9a9211](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/a9a92114cb96e0fe3cc7a374b1f5005598db07ed))
* **onboarding:** Add edit mode ([09123af](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/09123af605b5bf67f2b16a7241b5a0a72597aa29))
* **onboarding:** update onboarding images with V2 versions ([1b8cd13](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/1b8cd1387e260b81d8df08b04fa7138937da7366))
* **pin-structures:** pin already selected structures in search ([5ae8924](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/5ae89245fba84e2571124e548045e90b4379bf8e))
* **progress:** Add global progress bar percentage ([6100d89](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/6100d8935084d626d9bace649a08c4507e5bf396))
* rework of profile page ([201b18d](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/201b18dee9db7115253da8edf835f05c9da4942f))
* **structure:** Add structure members in details ([cfb968e](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/cfb968e325bb9d183f2158a95473588f94084f57))
* **toastr:** New toastr design ([53ec5e6](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/53ec5e623a23ecd62fc4ac1fc4c2a8f9b3e03244))
### Bug Fixes
* add sonar again ([05b5573](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/05b557390ae8f2a53f185fd59dcd0bb8e56aeb49))
* **carto:** structure-details missing display placeholder and correct link for profile ([f3f6968](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/f3f6968876698e25ef143b9252a0978f41c192f8))
* **cicd:** job orders ([9e86390](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/9e86390f46e20d4acd0269a2899aa60c310ac937))
* **cicd:** update deploy dev to deploy V2 only ([212a6d5](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/212a6d5d7e099e0dfb32d930f9b09f12a0afae89))
* **deps:** update dependency leaflet.locatecontrol to ^0.76.0 ([f2f8b09](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/f2f8b099c2922aec29d6429282b272464e137051))
* **design sprint1:** login page, onboarding ([fb4438e](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/fb4438e33915c749faa8ae273af5e8709e873d7d))
* font-size small for forms ([3149082](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/3149082fb9c3a02a9dbc8d06c99b5ec89133abe4))
* **form:** layout and progress-bar status ([21fc2d2](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/21fc2d218079ab9087ad35f0045859b45587f513))
* **orientation:** wrong result with address on 2 postcodes ([67a2106](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/67a2106ec932b2ce9279dafbb6daf72059be7b14))
* **profile:** conditional display of the job and the employer in profile ([bf5db27](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/bf5db27cd8f3c3110a6194837e06a420869ac4be))
* remove unused component ([22c6f92](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/22c6f92007f179cf998374ae8b1d99c523ce241d))
* **style:** correct duplicated values ([4b03965](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/4b0396529362ea92ab0dd57a65b3f290f9c1ed49))
### [1.16.3](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/compare/v1.16.2...v1.16.3) (2022-03-31)
### Bug Fixes
* **orientation:** broken layout ([67c6b23](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/67c6b23945b60b5f0fbc76d50f5b213deab7be61))
* **orientation:** issue on height ([87f8ea5](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/87f8ea5c59c2dbadb963d7e2fa5359375d47a2d7))
* **orientation:** map height ([cd75ee2](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/cd75ee22bee5e241624cd200b6e066794faa1634))
### [1.16.2](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/compare/v2.0.0-beta1...v1.16.2) (2022-03-31)
### Bug Fixes
* **news:** broken layout with double scroll ([44757f6](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/44757f619e9f23535cbf9c2dba502c6066732728))
### [1.16.1](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/compare/v1.16.0...v1.16.1) (2022-03-29)
### Features
* **posts:** add button to show more ([0211de8](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/0211de8fe54ad9c1b494b824ba59183041b9f91f))
* **posts:** restore window scroll service ([3a4b521](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/3a4b521cf5106f8175897d2c09a8963d56d279dc))
### Bug Fixes
* default limit ([2a9a707](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/2a9a707fc98046d2313b64890485ecaef22439ee))
* no display if empty post ([44f089f](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/44f089f9819b8d6dedafa39cd470adf38409a67b))
* **posts:** load more posts with tag (cf. MR !225 ) ([2721c9e](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/2721c9e9f86610e43455a1e6ba9d12415c91f29e))
* **posts:** remove scroll service from app component ([6a7d319](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/6a7d319061ee4c4ea6e6d4b32a32b86039844e14))
## [2.0.0-beta1.1](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/compare/v2.0.0-beta1...v2.0.0-beta1.1) (2022-04-04) ## [2.0.0-beta1.1](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/compare/v2.0.0-beta1...v2.0.0-beta1.1) (2022-04-04)
...@@ -39,6 +107,37 @@ All notable changes to this project will be documented in this file. See [standa ...@@ -39,6 +107,37 @@ All notable changes to this project will be documented in this file. See [standa
* **style:** button hover ([122fcfc](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/122fcfc1412282af29734f33985f375b83606b30)) * **style:** button hover ([122fcfc](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/122fcfc1412282af29734f33985f375b83606b30))
* **style:** update button style ([c8ade31](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/c8ade31b7d4f187a2c9cb0db321dd5355e7ebb88)) * **style:** update button style ([c8ade31](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/c8ade31b7d4f187a2c9cb0db321dd5355e7ebb88))
### [1.16.3](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/compare/v1.16.2...v1.16.3) (2022-03-31)
### Bug Fixes
* **orientation:** broken layout ([67c6b23](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/67c6b23945b60b5f0fbc76d50f5b213deab7be61))
* **orientation:** issue on height ([87f8ea5](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/87f8ea5c59c2dbadb963d7e2fa5359375d47a2d7))
* **orientation:** map height ([cd75ee2](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/cd75ee22bee5e241624cd200b6e066794faa1634))
### Bug Fixes
* **news:** broken layout with double scroll ([44757f6](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/44757f619e9f23535cbf9c2dba502c6066732728))
### [1.16.1](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/compare/v1.16.0...v1.16.1) (2022-03-29)
### Features
* **cicd:** temp remove of mr jobs ([5c9a74a](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/5c9a74ad2916b986a7626ffb8726db3260d8990a))
* **posts:** add button to show more ([0211de8](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/0211de8fe54ad9c1b494b824ba59183041b9f91f))
* **posts:** restore window scroll service ([3a4b521](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/3a4b521cf5106f8175897d2c09a8963d56d279dc))
### Bug Fixes
* default limit ([2a9a707](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/2a9a707fc98046d2313b64890485ecaef22439ee))
* no display if empty post ([44f089f](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/44f089f9819b8d6dedafa39cd470adf38409a67b))
* **posts:** load more posts with tag (cf. MR !225 ) ([2721c9e](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/2721c9e9f86610e43455a1e6ba9d12415c91f29e))
* **posts:** remove scroll service from app component ([6a7d319](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/6a7d319061ee4c4ea6e6d4b32a32b86039844e14))
## [1.16.0](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/compare/v1.15.0...v1.16.0) (2022-03-18) ## [1.16.0](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/compare/v1.15.0...v1.16.0) (2022-03-18)
......
...@@ -5,12 +5,14 @@ ...@@ -5,12 +5,14 @@
[![Security Rating](https://sonarqube.forge.grandlyon.com/api/project_badges/measure?project=pamn_client&metric=security_rating)](https://sonarqube.forge.grandlyon.com/dashboard?id=pamn_client) [![Security Rating](https://sonarqube.forge.grandlyon.com/api/project_badges/measure?project=pamn_client&metric=security_rating)](https://sonarqube.forge.grandlyon.com/dashboard?id=pamn_client)
[![Vulnerabilities](https://sonarqube.forge.grandlyon.com/api/project_badges/measure?project=pamn_client&metric=vulnerabilities)](https://sonarqube.forge.grandlyon.com/dashboard?id=pamn_client) [![Vulnerabilities](https://sonarqube.forge.grandlyon.com/api/project_badges/measure?project=pamn_client&metric=vulnerabilities)](https://sonarqube.forge.grandlyon.com/dashboard?id=pamn_client)
# Pamn # Pamn
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 10.1.3. This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 10.1.3.
## Wikis
Find [here](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/-/wikis/home) wikis about useful informations like installation and gitflow.
## Development server ## Development server
Run `npm start` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files. Run `npm start` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.
...@@ -35,12 +37,16 @@ Run `npm run e2e` to execute the end-to-end tests via [Protractor](http://www.pr ...@@ -35,12 +37,16 @@ Run `npm run e2e` to execute the end-to-end tests via [Protractor](http://www.pr
Use conventional commit format. For more info please read this article on [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/) Use conventional commit format. For more info please read this article on [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/)
## Documentation ## Documentation
A documentation is generated with compodoc in addition of the existing documentation on the wiki. A documentation is generated with compodoc in addition of the existing documentation on the wiki.
```sh ```sh
npm run doc:serve npm run doc:serve
``` ```
You can now visualize it at : `localhost:8080` You can now visualize it at : `localhost:8080`
## Further help ## Further help
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md). To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).
# Based on Node.js
FROM node:12.16
WORKDIR /app
# Copy the package.json file first in order to cache the modules
COPY . .
# Install npm dependencies
RUN npm install
# expose port 3000
EXPOSE 3000
CMD ["npm", "start"]
{
"name": "pamn-mock-api",
"version": "0.1.0",
"scripts": {
"start": "node server.js"
},
"private": true,
"dependencies": {
"json-server": "^0.16.2"
}
}
const jsonServer = require('json-server');
const server = jsonServer.create();
const router = jsonServer.router('db.json');
const routes = {
'/api/*': '/$1',
};
const middlewares = [jsonServer.defaults(), jsonServer.rewriter(routes)];
// Set default middlewares (logger, static, cors and no-cache)
server.use(middlewares);
// Add custom routes before JSON Server router
server.get('/structures/count', (req, res) => {
let structureCountTab = [];
// Compétences de base
structureCountTab.push({ id: '260', count: 12 });
structureCountTab.push({ id: '259', count: 10 });
structureCountTab.push({ id: '261', count: 10 });
structureCountTab.push({ id: '249', count: 9 });
structureCountTab.push({ id: '222', count: 9 });
structureCountTab.push({ id: '212', count: 8 });
structureCountTab.push({ id: '186', count: 7 });
structureCountTab.push({ id: '183', count: 6 });
// Accès aux droits
structureCountTab.push({ id: '176', count: 6 });
structureCountTab.push({ id: '175', count: 1 });
structureCountTab.push({ id: '174', count: 2 });
structureCountTab.push({ id: '173', count: 2 });
structureCountTab.push({ id: '172', count: 2 });
structureCountTab.push({ id: '171', count: 4 });
structureCountTab.push({ id: '167', count: 3 });
structureCountTab.push({ id: '165', count: 2 });
// Insertion sociale et professionnelle
structureCountTab.push({ id: '254', count: 5 });
structureCountTab.push({ id: '240', count: 4 });
structureCountTab.push({ id: '194', count: 7 });
structureCountTab.push({ id: '193', count: 7 });
structureCountTab.push({ id: '192', count: 5 });
structureCountTab.push({ id: '191', count: 7 });
structureCountTab.push({ id: '262', count: 5 });
structureCountTab.push({ id: '263', count: 3 });
structureCountTab.push({ id: '3', count: 3 });
// Aide à la parentalité
structureCountTab.push({ id: '257', count: 4 });
structureCountTab.push({ id: '238', count: 1 });
structureCountTab.push({ id: '178', count: 4 });
structureCountTab.push({ id: '166', count: 2 });
// Culture et sécurité numérique
structureCountTab.push({ id: '264', count: 5 });
structureCountTab.push({ id: '255', count: 7 });
structureCountTab.push({ id: '265', count: 2 });
structureCountTab.push({ id: '232', count: 4 });
structureCountTab.push({ id: '225', count: 5 });
structureCountTab.push({ id: '221', count: 3 });
structureCountTab.push({ id: '218', count: 2 });
structureCountTab.push({ id: '209', count: 3 });
structureCountTab.push({ id: '208', count: 4 });
structureCountTab.push({ id: '206', count: 5 });
structureCountTab.push({ id: '195', count: 5 });
structureCountTab.push({ id: '164', count: 4 });
structureCountTab.push({ id: '163', count: 2 });
structureCountTab.push({ id: '162', count: 3 });
// Accompagnement des démarches
structureCountTab.push({ id: 'Accompagnant CAF', count: 7 });
structureCountTab.push({ id: 'Pôle Emploi', count: 9 });
structureCountTab.push({ id: 'CPAM', count: 7 });
structureCountTab.push({ id: 'Impôts', count: 6 });
structureCountTab.push({ id: 'Logement', count: 5 });
structureCountTab.push({ id: 'CARSAT', count: 5 });
structureCountTab.push({ id: 'Autres', count: 2 });
// Publics acceptés
structureCountTab.push({ id: 'Tout public', count: 7 });
structureCountTab.push({ id: 'Moins de 16 ans', count: 4 });
structureCountTab.push({ id: 'Jeunes (16-25 ans)', count: 6 });
structureCountTab.push({ id: 'Adultes', count: 9 });
structureCountTab.push({ id: 'Séniors (+ de 65 ans)', count: 1 });
// Labels et qualifications
structureCountTab.push({ id: 'Aidants Connect', count: 0 });
structureCountTab.push({ id: 'Espace public numérique (EPN)', count: 2 });
structureCountTab.push({ id: 'Fabrique de territoire', count: 3 });
structureCountTab.push({ id: 'Maison France Service', count: 0 });
structureCountTab.push({ id: 'Pass numérique', count: 4 });
// Modalités d'accès
structureCountTab.push({ id: 'Uniquement sur RDV', count: 13 });
structureCountTab.push({ id: 'Accès libre', count: 6 });
structureCountTab.push({ id: 'Téléphone / Visio', count: 6 });
// Accompagnement des publics
structureCountTab.push({ id: "Personnes en situation d'illetrisme", count: 0 });
structureCountTab.push({ id: 'Langue étrangère (anglais)', count: 0 });
structureCountTab.push({ id: 'Langues étrangères (autres)', count: 0 });
structureCountTab.push({ id: 'Surdité', count: 0 });
structureCountTab.push({ id: 'Déficience visuelle', count: 0 });
structureCountTab.push({ id: 'Handicap moteur', count: 0 });
// Équipements et services proposés
structureCountTab.push({ id: 'Wifi en accès libre', count: 6 });
structureCountTab.push({ id: 'Ordinateurs', count: 5 });
structureCountTab.push({ id: 'Tablettes', count: 1 });
structureCountTab.push({ id: 'Bornes numériques', count: 1 });
structureCountTab.push({ id: 'Imprimantes', count: 5 });
structureCountTab.push({ id: 'Prêt / don de matériels', count: 0 });
structureCountTab.push({ id: 'Reconditionnements de matériel', count: 0 });
structureCountTab.push({ id: 'Accès à des revues ou livres informatiques et numériques', count: 0 });
return res.status(200).jsonp(structureCountTab);
});
// Use default router
server.use(router);
server.listen(3000, () => {
console.log('JSON Server is running');
});
This diff is collapsed.
{ {
"name": "pamn", "name": "pamn",
"version": "2.0.0-beta1.1", "version": "2.0.0-beta2",
"scripts": { "scripts": {
"ng": "ng", "ng": "ng",
"start": "ng serve --configuration=fr --proxy-config proxy.conf.json", "start": "ng serve --configuration=fr --proxy-config proxy.conf.json",
...@@ -13,8 +13,7 @@ ...@@ -13,8 +13,7 @@
"lint": "ng lint", "lint": "ng lint",
"e2e": "ng e2e", "e2e": "ng e2e",
"release": "standard-version", "release": "standard-version",
"translate": "ng xi18n --ivy --output-path src/locale --out-file messages.en.xlf", "translate": "ng xi18n --ivy --output-path src/locale --out-file messages.en.xlf"
"api": "json-server api/db.json --routes api/routes.json --no-cors=true"
}, },
"private": true, "private": true,
"dependencies": { "dependencies": {
...@@ -33,11 +32,9 @@ ...@@ -33,11 +32,9 @@
"@ngx-translate/core": "^13.0.0", "@ngx-translate/core": "^13.0.0",
"ag-grid-angular": "^26.2.0", "ag-grid-angular": "^26.2.0",
"ag-grid-community": "^26.2.1", "ag-grid-community": "^26.2.1",
"ag-grid-enterprise": "^26.2.1",
"json-server": "^0.17.0",
"jwt-decode": "^3.1.2", "jwt-decode": "^3.1.2",
"leaflet": "^1.7.1", "leaflet": "^1.7.1",
"leaflet.locatecontrol": "^0.72.0", "leaflet.locatecontrol": "^0.76.0",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"luxon": "^1.25.0", "luxon": "^1.25.0",
"ngx-toastr": "^13.2.1", "ngx-toastr": "^13.2.1",
...@@ -51,14 +48,14 @@ ...@@ -51,14 +48,14 @@
"@angular/compiler-cli": "~13.1.1", "@angular/compiler-cli": "~13.1.1",
"@angular/localize": "^13.1.1", "@angular/localize": "^13.1.1",
"@compodoc/compodoc": "^1.1.16", "@compodoc/compodoc": "^1.1.16",
"@types/jasmine": "~3.5.0", "@types/jasmine": "~4.0.0",
"@types/jasminewd2": "~2.0.3", "@types/jasminewd2": "~2.0.3",
"@types/leaflet": "^1.5.17", "@types/leaflet": "^1.5.17",
"@types/leaflet.locatecontrol": "^0.60.7", "@types/leaflet.locatecontrol": "^0.60.7",
"@types/node": "^12.12.67", "@types/node": "^16.0.0",
"codelyzer": "^6.0.0", "codelyzer": "^6.0.0",
"http-server": "^14.1.0", "http-server": "^14.1.0",
"jasmine-core": "~3.6.0", "jasmine-core": "~4.1.0",
"jasmine-spec-reporter": "~5.0.0", "jasmine-spec-reporter": "~5.0.0",
"karma": "^6.3.9", "karma": "^6.3.9",
"karma-browserify": "^7.0.0", "karma-browserify": "^7.0.0",
......
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"local>systemes-dinformation/renovate/renovate-config"
]
}
...@@ -18,3 +18,11 @@ ...@@ -18,3 +18,11 @@
.incomplete { .incomplete {
color: $red; color: $red;
} }
.isOutdated {
color: $red;
}
.structure-updated-at {
text-align: right;
}
...@@ -10,6 +10,16 @@ import { AdminRoutingModule } from './admin-routing.module'; ...@@ -10,6 +10,16 @@ import { AdminRoutingModule } from './admin-routing.module';
import { AgGridModule } from 'ag-grid-angular'; import { AgGridModule } from 'ag-grid-angular';
import { DeleteUserComponent } from './components/manage-users/delete-user/delete-user.component'; import { DeleteUserComponent } from './components/manage-users/delete-user/delete-user.component';
import { AdministredStructuresComponent } from './components/manage-users/administred-structures/administred-structures.component'; import { AdministredStructuresComponent } from './components/manage-users/administred-structures/administred-structures.component';
import { ManageJobsComponent } from './components/manage-jobs/manage-jobs.component';
import { ManageEmployersComponent } from './components/manage-employers/manage-employers.component';
import { JobRenderer } from './components/manage-users/job-renderer/job-renderer.component';
import { EmployerRenderer } from './components/manage-users/employer-renderer/employer-renderer.component';
import { AttachedUsersComponent } from './components/manage-jobs/attached-users/attached-users.component';
import { DeleteJobComponent } from './components/manage-jobs/delete-job/delete-job.component';
import { DeleteEmployerComponent } from './components/manage-employers/delete-employer/delete-employer.component';
import { ValidateJobComponent } from './components/manage-jobs/validate-job/validate-job.component';
import { ValidateEmployerComponent } from './components/manage-employers/validate-employer/validate-employer.component';
import { JobPersonalOffer } from './components/manage-jobs/jobPersonalOffer/job-personal-offer';
@NgModule({ @NgModule({
declarations: [ declarations: [
...@@ -18,8 +28,18 @@ import { AdministredStructuresComponent } from './components/manage-users/admini ...@@ -18,8 +28,18 @@ import { AdministredStructuresComponent } from './components/manage-users/admini
NewsletterUsersComponent, NewsletterUsersComponent,
AdminStructuresListComponent, AdminStructuresListComponent,
ManageUsersComponent, ManageUsersComponent,
JobRenderer,
EmployerRenderer,
JobPersonalOffer,
ValidateJobComponent,
ValidateEmployerComponent,
DeleteUserComponent, DeleteUserComponent,
DeleteJobComponent,
DeleteEmployerComponent,
AdministredStructuresComponent, AdministredStructuresComponent,
AttachedUsersComponent,
ManageJobsComponent,
ManageEmployersComponent,
], ],
imports: [ imports: [
CommonModule, CommonModule,
......
<button type="button" (click)="onClick()">{{ label }}</button>
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { DeleteEmployerComponent } from './delete-employer.component';
describe('DeleteUserComponent', () => {
let component: DeleteEmployerComponent;
let fixture: ComponentFixture<DeleteEmployerComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [DeleteEmployerComponent],
}).compileComponents();
});
beforeEach(() => {
fixture = TestBed.createComponent(DeleteEmployerComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component } from '@angular/core';
@Component({
selector: 'app-delete-employer',
templateUrl: './delete-employer.component.html',
})
export class DeleteEmployerComponent {
public params: any;
public label: string;
public agInit(params: any): void {
this.params = params;
this.label = this.params.label || null;
}
public onClick(): void {
if (this.params.onClick instanceof Function) {
this.params.onClick(this.params);
}
}
}
<div fxLayout="column" fxLayoutGap="5px" fxLayoutAlign="center center" class="userBlock">
<h3>
Gestion des employeurs
<span *ngIf="unvalidatedEmployers && validatedEmployers">
({{ unvalidatedEmployers.length + validatedEmployers.length }})
</span>
</h3>
</div>
<div class="tables-list">
<div>
<h3 class="title" *ngIf="unvalidatedEmployers">Employeurs non validées ({{ unvalidatedEmployers.length }})</h3>
<ag-grid-angular
*ngIf="unvalidatedEmployers"
class="ag-theme-alpine user-table"
[rowData]="unvalidatedEmployers"
[columnDefs]="unvalidEmployersColumnDefs"
rowSelection="multiple"
domLayout="autoHeight"
[getRowHeight]="getRowHeight"
[defaultColDef]="unvalidColDef"
[frameworkComponents]="frameworkComponents"
>
</ag-grid-angular>
</div>
<div>
<h3 class="title" *ngIf="validatedEmployers">Employeurs validées ({{ validatedEmployers.length }})</h3>
<ag-grid-angular
*ngIf="validatedEmployers"
class="ag-theme-alpine user-table"
[rowData]="validatedEmployers"
[columnDefs]="columnDefs"
rowSelection="multiple"
domLayout="autoHeight"
[getRowHeight]="getRowHeight"
[defaultColDef]="defaultColDef"
[frameworkComponents]="frameworkComponents"
>
</ag-grid-angular>
</div>
<div>
<h3 class="title" *ngIf="validatedEmployers">Créer un nouvel employeur</h3>
<form [formGroup]="newEmployerForm" (ngSubmit)="onSubmit()">
<input type="text" maxlength="100" formControlName="employer" class="form-input" />
<button type="submit" [ngClass]="{ invalid: !newEmployerForm.valid }">Créer</button>
</form>
</div>
</div>
<app-modal-confirmation
*ngIf="employerToDelete"
[openned]="deleteModalOpenned"
[content]="'Voulez-vous vraiment supprimer cet employeur&nbsp;? (' + employerToDelete.name + ')'"
(closed)="deleteEmployer(employerToDelete, $event)"
></app-modal-confirmation>
<app-modal-confirmation
*ngIf="mergeOpe.newEmployer"
[openned]="mergeEmployerModalOpenned"
[content]="'Voulez-vous vraiment fusionner cet employeur avec&nbsp;: ' + mergeOpe.newEmployer.name"
(closed)="mergeEmployer(mergeOpe.newEmployer._id, mergeOpe.formerId, $event, contextRow)"
></app-modal-confirmation>
@import '../../../../assets/scss/color';
.user-table {
width: 100%;
height: 100%;
text-overflow: clip;
}
.tables-list {
height: 100%;
width: 80%;
display: flex;
flex-direction: column;
margin-left: 10%;
margin-bottom: 2%;
}
app-delete-user {
text-align: center;
}