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 (96)
Showing
with 723 additions and 151 deletions
......@@ -53,3 +53,7 @@ api/db.json
# Documentation generated with compodoc
documentation
CHANGELOG.md
package-lock.json
stages:
- quality
- build
- quality
- deploy
default:
......@@ -77,7 +77,8 @@ deploy_dev:
tags:
- deploy
only:
- dev
# - dev
- V2.0
script:
- cd /home/mps/ram
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
......@@ -127,7 +128,6 @@ sonarqube:
-Dsonar.host.url=${SONAR_URL}
-Dsonar.projectKey=${SONAR_PROJECT_KEY}
-Dsonar.login=${SONAR_TOKEN}
-Dsonar.cpd.exclusions=tests/**,src/**/*.spec.ts*
-Dsonar.qualitygate.wait=true
sonarqube-mr:
......@@ -152,5 +152,4 @@ sonarqube-mr:
-Dsonar.host.url=${SONAR_URL}
-Dsonar.projectKey=${SONAR_PROJECT_KEY}
-Dsonar.login=${SONAR_MR_TOKEN}
-Dsonar.cpd.exclusions=tests/**,src/**/*.spec.ts*
-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_
......@@ -2,6 +2,166 @@
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.1](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/compare/v1.17.2...v2.0.0-beta2.1) (2022-05-31)
### Features
* **icons:** change assets ([b8be705](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/b8be7054ce2747538d206298892538100288fc0c))
### Bug Fixes
* **carto:** add format for member's names and surnames ([ecb8de1](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/ecb8de104490b4edda78c96ce0e5f1976bd957a6))
* **carto:** lockdown display ([f0f9994](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/f0f9994d95c3431bfd48276c913b247989e95143))
* **design:** members alignment ([167feb5](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/167feb5dd68b45abd7e602b50ae818487723d499))
* **design:** various return on alignments and icons ([c388f2c](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/c388f2c8c539488d753a494a963ca505a8c33178))
* **form:** checkbox issue and remove unecessary title ([c01a8c3](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/c01a8c30130a395b7048b0323cf624a75530fcf4))
* **form:** hover style for structure-choice ([4872a42](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/4872a42457a51c9a52448f0a329c518abed94e48))
* **onboarding:** various small design fix ([83cc1c7](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/83cc1c769829257be82466bac1ea73d85bb4940e))
* resote icon after bad merge ([ea53b2b](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/ea53b2bd5e091d4ba8f9f8b719e94c12265bbeaf))
* **toastr:** design feedbacks ([d661d05](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/d661d051ae505c6cc3ae11f2cd36df046793adef))
## [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
* **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))
* **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))
## [2.0.0-beta1.1](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/compare/v1.16.3...v2.0.0-beta1.1) (2022-04-04)
### Bug Fixes
* V2.0.0-beta1 various design returns for onboarding, carto ans structures ([a9b2386](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/a9b2386538bdbf731660a71bee86dfb19a240906))
## [2.0.0-beta1](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/compare/v1.16.1...v2.0.0-beta1) (2022-03-29)
### ⚠ BREAKING CHANGES
* **onboarding:** Some fileds are now added to user structure, there is no coming back
### Features
* **carto:** rework carto, search bar and structure detail screen ([aa058b5](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/aa058b5d18fb3d90aa77d0aab700424babeff93e))
* **cicd:** update deploy for V2.0 ([4440154](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/4440154a4bac74f32da1f79178acab19ba89b83a))
* **cicd:** update wrong prop ([d311dd9](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/d311dd9f5539f9187672d6e5dbc350d121d00729))
* **onboarding:** form refactor for structure and account creation. Add new onboarding cases for profile and personal offer. ([bb89936](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/bb89936f2869564cfa6bc0e1de239aac53315c0a))
* **style:** add tertiary and icon onlybutton. Update logo and header. Button refacto with enum ([276dc59](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/276dc594376cf4054490ccea327323e391bd1571))
* **style:** change colors, buttons, header, typo ([38629d8](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/38629d8ca71eaaa831109b101f71971bb94f53c4))
### Bug Fixes
* add missing layout import ([621d77d](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/621d77d1610e02a47bc4e6b29d8c973e68d6cebe))
* **carto:** review icons and font ([60d23c3](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/60d23c3c00c0f957aad6eaea627f3196fa9d9361))
* **cicd:** change to branches ([79bf80f](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/79bf80f4bb377e3910b9f04e952c814ecbba3ca4))
* **cicd:** wrong job targeted ([0237564](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/0237564284901f584a122d69f5815836a4acca41))
* **filters:** review more filter background ([da44d38](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/da44d38716db680299a27c46a60a4cff79098b9b))
* **gitalb-ci:** autodeploy for V2.0 ([cd1d43d](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/cd1d43d0da89798a175d77179b0a72d346ee520c))
* secondary button width ([375adfe](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/375adfe94efa04e5e1d193e669a75f3d805d9f34))
* **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))
## [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
* **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))
## [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)
### Bug Fixes
* V2.0.0-beta1 various design returns for onboarding, carto ans structures ([a9b2386](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/a9b2386538bdbf731660a71bee86dfb19a240906))
## [2.0.0-beta1](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/compare/v1.16.0...v2.0.0-beta1) (2022-03-29)
### ⚠ BREAKING CHANGES
* **onboarding:** Some fileds are now added to user structure, there is no coming back
### Features
* **carto:** rework carto, search bar and structure detail screen ([aa058b5](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/aa058b5d18fb3d90aa77d0aab700424babeff93e))
* **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))
* **cicd:** update deploy for V2.0 ([4440154](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/4440154a4bac74f32da1f79178acab19ba89b83a))
* **cicd:** update wrong prop ([d311dd9](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/d311dd9f5539f9187672d6e5dbc350d121d00729))
* **onboarding:** form refactor for structure and account creation. Add new onboarding cases for profile and personal offer. ([bb89936](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/bb89936f2869564cfa6bc0e1de239aac53315c0a))
* **style:** add tertiary and icon onlybutton. Update logo and header. Button refacto with enum ([276dc59](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/276dc594376cf4054490ccea327323e391bd1571))
* **style:** change colors, buttons, header, typo ([38629d8](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/38629d8ca71eaaa831109b101f71971bb94f53c4))
### Bug Fixes
* add missing layout import ([621d77d](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/621d77d1610e02a47bc4e6b29d8c973e68d6cebe))
* **carto:** review icons and font ([60d23c3](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/60d23c3c00c0f957aad6eaea627f3196fa9d9361))
* **cicd:** change to branches ([79bf80f](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/79bf80f4bb377e3910b9f04e952c814ecbba3ca4))
* **cicd:** wrong job targeted ([0237564](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/0237564284901f584a122d69f5815836a4acca41))
* **filters:** review more filter background ([da44d38](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/da44d38716db680299a27c46a60a4cff79098b9b))
* **gitalb-ci:** autodeploy for V2.0 ([cd1d43d](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/cd1d43d0da89798a175d77179b0a72d346ee520c))
* secondary button width ([375adfe](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/commit/375adfe94efa04e5e1d193e669a75f3d805d9f34))
* **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))
### [1.17.2](https://forge.grandlyon.com/web-et-numerique/pamn_plateforme-des-acteurs-de-la-mediation-numerique/pamn_client/compare/v1.17.1...v1.17.2) (2022-05-30)
......@@ -40,7 +200,37 @@ All notable changes to this project will be documented in this file. See [standa
* **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/v1.16.1...v1.16.2) (2022-03-31)
### [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))
### [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
......
# 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');
});
{
"name": "pamn",
"version": "1.17.2",
"version": "2.0.0-beta2.1",
"scripts": {
"ng": "ng",
"start": "ng serve --configuration=fr --proxy-config proxy.conf.json",
......@@ -13,8 +13,7 @@
"lint": "ng lint",
"e2e": "ng e2e",
"release": "standard-version",
"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"
"translate": "ng xi18n --ivy --output-path src/locale --out-file messages.en.xlf"
},
"private": true,
"dependencies": {
......@@ -33,11 +32,9 @@
"@ngx-translate/core": "^13.0.0",
"ag-grid-angular": "^26.2.0",
"ag-grid-community": "^26.2.1",
"ag-grid-enterprise": "^26.2.1",
"json-server": "^0.17.0",
"jwt-decode": "^3.1.2",
"leaflet": "^1.7.1",
"leaflet.locatecontrol": "^0.72.0",
"leaflet.locatecontrol": "^0.76.0",
"lodash": "^4.17.21",
"luxon": "^1.25.0",
"ngx-toastr": "^13.2.1",
......@@ -51,14 +48,14 @@
"@angular/compiler-cli": "~13.1.1",
"@angular/localize": "^13.1.1",
"@compodoc/compodoc": "^1.1.16",
"@types/jasmine": "~3.5.0",
"@types/jasmine": "~4.0.0",
"@types/jasminewd2": "~2.0.3",
"@types/leaflet": "^1.5.17",
"@types/leaflet.locatecontrol": "^0.60.7",
"@types/node": "^12.12.67",
"@types/node": "^16.0.0",
"codelyzer": "^6.0.0",
"http-server": "^14.1.0",
"jasmine-core": "~3.6.0",
"jasmine-core": "~4.1.0",
"jasmine-spec-reporter": "~5.0.0",
"karma": "^6.3.9",
"karma-browserify": "^7.0.0",
......
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"local>systemes-dinformation/renovate/renovate-config"
]
}
......@@ -11,6 +11,16 @@ import { AdminRoutingModule } from './admin-routing.module';
import { AgGridModule } from 'ag-grid-angular';
import { DeleteUserComponent } from './components/manage-users/delete-user/delete-user.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({
declarations: [
......@@ -20,8 +30,18 @@ import { AdministredStructuresComponent } from './components/manage-users/admini
AdminStructuresListComponent,
ManageLockdownInfoComponent,
ManageUsersComponent,
JobRenderer,
EmployerRenderer,
JobPersonalOffer,
ValidateJobComponent,
ValidateEmployerComponent,
DeleteUserComponent,
DeleteJobComponent,
DeleteEmployerComponent,
AdministredStructuresComponent,
AttachedUsersComponent,
ManageJobsComponent,
ManageEmployersComponent,
],
imports: [
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;
}
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { ManageEmployersComponent } from './manage-employers.component';
describe('ManageEmployersComponent', () => {
let component: ManageEmployersComponent;
let fixture: ComponentFixture<ManageEmployersComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [ ManageEmployersComponent ]
})
.compileComponents();
});
beforeEach(() => {
fixture = TestBed.createComponent(ManageEmployersComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { Employer } from '../../../models/employer.model';
import { NotificationService } from '../../../services/notification.service';
import { AdminService } from '../../services/admin.service';
import { AttachedUsersComponent } from '../manage-jobs/attached-users/attached-users.component';
import { EmployerRenderer } from '../manage-users/employer-renderer/employer-renderer.component';
import { DeleteEmployerComponent } from './delete-employer/delete-employer.component';
import { ValidateEmployerComponent } from './validate-employer/validate-employer.component';
@Component({
selector: 'app-admin-manage-employers',
templateUrl: './manage-employers.component.html',
styleUrls: ['./manage-employers.component.scss'],
})
export class ManageEmployersComponent implements OnInit {
public newEmployerForm: FormGroup;
public validatedEmployers: Employer[] = [];
public unvalidatedEmployers: Employer[] = [];
public deleteModalOpenned = false;
public validatedEmployersName: String[] = [];
public mergeEmployerModalOpenned = false;
public employerToDelete: Employer = null;
public mergeOpe: any = {
newEmployer: {
name: null,
validated: false,
},
formerId: '',
};
public contextRow: any;
public columnDefs;
public unvalidEmployersColumnDefs;
public frameworkComponents;
public defaultColDef = {
editable: true,
sortable: true,
flex: 1,
minWidth: 100,
filter: true,
resizable: true,
};
public unvalidColDef = {
...this.defaultColDef,
cellStyle: {
color: '#da6c2e',
},
};
constructor(
private adminService: AdminService,
private notificationService: NotificationService,
private formBuilder: FormBuilder
) {
this.findValidatedEmployers();
this.findUnvalidatedEmployers();
this.unvalidEmployersColumnDefs = [
{
headerName: 'Employeur',
field: 'name',
editable: true,
onCellValueChanged: this.onChange.bind(this),
},
{
headerName: 'Acteurs rattachés',
cellRenderer: 'attachedUsersComponent',
cellRendererParams: {
users: 'users',
},
minWidth: 500,
},
{
headerName: 'Fusionner',
field: '_id',
cellRenderer: 'employerRenderer',
singleClickEdit: true,
cellEditor: 'agSelectCellEditor',
cellEditorParams: {
values: this.validatedEmployersName,
},
onCellValueChanged: this.onMerge.bind(this),
},
{
headerName: 'Valider',
editable: false,
minWidth: 100,
cellRenderer: 'validateEmployerComponent',
cellRendererParams: {
onClick: this.onValidateButtonClick.bind(this),
label: 'Valider',
},
},
];
this.columnDefs = [
{
headerName: 'Employeur',
field: 'name',
editable: true,
onCellValueChanged: this.onChange.bind(this),
},
{
headerName: 'Acteurs rattachés',
cellRenderer: 'attachedUsersComponent',
cellRendererParams: {
users: 'users',
},
minWidth: 500,
},
{
headerName: 'Suppression',
editable: false,
minWidth: 100,
cellRenderer: 'deleteEmployerComponent',
cellRendererParams: {
onClick: this.onDeleteButtonClick.bind(this),
label: 'Supprimer',
},
},
];
this.frameworkComponents = {
employerRenderer: EmployerRenderer,
deleteEmployerComponent: DeleteEmployerComponent,
attachedUsersComponent: AttachedUsersComponent,
validateEmployerComponent: ValidateEmployerComponent,
};
}
ngOnInit(): void {
this.newEmployerForm = this.formBuilder.group({
employer: ['', Validators.required],
});
}
public onDeleteButtonClick(arg): void {
this.deleteEmployer(arg.data, false);
}
public onSubmit(): void {
if (!this.newEmployerForm.valid) {
return;
}
const name: string = this.newEmployerForm.value.employer;
this.adminService.createEmployer(name).subscribe(
() => {
this.findValidatedEmployers();
this.newEmployerForm.reset();
this.notificationService.showSuccess('Votre employeur a bien été créée', '');
},
(err) => {
this.notificationService.showError(`${err.error.message}`, 'Une erreur est survenue');
}
);
}
public onValidateButtonClick(arg): void {
this.validateEmployer(arg.data._id);
}
public deleteEmployer(employer: Employer, shouldDelete: boolean): void {
this.toggleDeleteEmployerModal(employer);
if (shouldDelete) {
this.adminService.deleteEmployer(employer._id).subscribe(
(data) => {
this.validatedEmployers = this.validatedEmployers.filter((obj) => obj._id !== data._id);
this.notificationService.showSuccess("L'employeur a bien été supprimée.", '');
},
(err) => {
this.notificationService.showError(`${err.error.message}`, 'Une erreur est survenue');
}
);
}
}
public onChange(arg): void {
this.adminService.editEmployer(arg.data._id, arg.data.name).subscribe(() => {
this.notificationService.showSuccess("L'opération a réussie.", '');
this.findValidatedEmployers();
this.findUnvalidatedEmployers();
});
}
public onMerge(arg): void {
const selectedEmployer = this.validatedEmployers.find((employer) => employer.name === arg.newValue);
if (arg.oldValue === undefined) {
return;
}
if (selectedEmployer === arg.oldValue) {
return;
}
this.toggleMergeEmployerModal(selectedEmployer, arg.oldValue, arg);
}
public mergeEmployer(newEmployerId: string, formerId: string, shouldMerge: boolean, context?): void {
this.mergeEmployerModalOpenned = !this.mergeEmployerModalOpenned;
if (shouldMerge) {
this.adminService.mergeEmployer(formerId, newEmployerId).subscribe((data) => {
context.node.data[context.colDef.field] = data;
context.api.refreshCells({ rowNodes: [context.node], columns: [context.column.colId] });
this.findValidatedEmployers();
this.findUnvalidatedEmployers();
this.notificationService.showSuccess("L'opération a réussie.", '');
});
} else {
if (context.oldValue) {
context.node.data[context.colDef.field] = context.oldValue;
context.api.refreshCells({ rowNodes: [context.node], columns: [context.column.colId] });
}
}
}
public validateEmployer(employerId: string, context?): void {
this.adminService.validateEmployer(employerId).subscribe((data) => {
this.findValidatedEmployers();
this.findUnvalidatedEmployers();
});
}
public toggleDeleteEmployerModal(employerToDelete: Employer): void {
this.employerToDelete = employerToDelete;
this.deleteModalOpenned = !this.deleteModalOpenned;
}
public toggleMergeEmployerModal(employerToMerge: Employer, formerId: string, dataGrid): void {
this.mergeOpe.formerId = formerId;
this.mergeOpe.newEmployer = employerToMerge;
this.contextRow = dataGrid;
this.mergeEmployerModalOpenned = !this.mergeEmployerModalOpenned;
}
public findValidatedEmployers(): void {
this.validatedEmployersName = [];
this.adminService.getValidatedEmployers().subscribe((employers) => {
this.validatedEmployers = employers;
employers.map((employer) => {
this.validatedEmployersName.push(employer.name);
});
});
}
public findUnvalidatedEmployers(): void {
this.adminService.getUnvalidatedEmployers().subscribe((employers) => {
this.unvalidatedEmployers = employers;
});
}
public getRowHeight(params): number {
return params.data.users ? (params.data.users.length != 0 ? params.data.users.length * 40 : 40) : 40;
}
}
<button type="button" (click)="onClick()">{{ label }}</button>
import { HttpClientTestingModule } from '@angular/common/http/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { RouterTestingModule } from '@angular/router/testing';
import { UserVerificationComponent } from './user-verification.component';
import { ValidateEmployerComponent } from './validate-employer.component';
describe('UserVerificationComponent', () => {
let component: UserVerificationComponent;
let fixture: ComponentFixture<UserVerificationComponent>;
describe('ValidateEmployerComponent', () => {
let component: ValidateEmployerComponent;
let fixture: ComponentFixture<ValidateEmployerComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [UserVerificationComponent],
imports: [RouterTestingModule, HttpClientTestingModule],
declarations: [ValidateEmployerComponent],
}).compileComponents();
});
beforeEach(() => {
fixture = TestBed.createComponent(UserVerificationComponent);
fixture = TestBed.createComponent(ValidateEmployerComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
......
import { Component } from '@angular/core';
@Component({
selector: 'app-validate-employer',
templateUrl: './validate-employer.component.html',
})
export class ValidateEmployerComponent {
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);
}
}
}