récupération de l'implémentation des demandes de formations

develop
Yanaël GRETTE 4 years ago
commit 283663f9cb
  1. 369
      package-lock.json
  2. 2
      package.json
  3. 34
      src/app/app-routing.module.ts
  4. 7
      src/app/collaborateurs/collaborateurs.component.ts
  5. 4
      src/app/collaborateurs/collaborateurs.module.ts
  6. 19
      src/app/collaborateurs/collaborateurs.routing.module.ts
  7. 36
      src/app/collaborateurs/details-collaborateur/details-collaborateur.component.html
  8. 3
      src/app/collaborateurs/details-collaborateur/details-collaborateur.component.ts
  9. 10
      src/app/demandes-delegation/demandes-delegation.component.ts
  10. 17
      src/app/demandes-delegation/details-demande-delegation/demande-delegation.component.ts
  11. 1
      src/app/demandes-formation/demandes-formation.component.html
  12. 13
      src/app/demandes-formation/demandes-formation.component.ts
  13. 13
      src/app/demandes-formation/demandes-formation.module.ts
  14. 8
      src/app/demandes-formation/demandes-formation.routing.module.ts
  15. 31
      src/app/demandes-formation/mat-dialog/dialog-demande-formation.component.html
  16. 79
      src/app/demandes-formation/mat-dialog/dialog-demande-formation.component.ts
  17. 16
      src/app/demandes-formation/new-demande-formation/new-demande-formation.component.css
  18. 33
      src/app/demandes-formation/new-demande-formation/new-demande-formation.component.html
  19. 68
      src/app/demandes-formation/new-demande-formation/new-demande-formation.component.ts
  20. 10
      src/app/engagements/engagements.component.ts
  21. 4
      src/app/ep-saisie/ep-saisie.routing.module.ts
  22. 3
      src/app/ep/details-ep/details-ep.component.ts
  23. 7
      src/app/ep/ep-signes/ep-signes.component.ts
  24. 7
      src/app/ep/ep.component.ts
  25. 4
      src/app/ep/ep.routing.module.ts
  26. 1
      src/app/formations/edit-formation/edit-formation.component.ts
  27. 1
      src/app/formations/formations.component.ts
  28. 8
      src/app/formations/formations.routing.module.ts
  29. 2
      src/app/formations/new-formation/new-formation.component.ts
  30. 7
      src/app/notes/details-note/details-note.component.ts
  31. 8
      src/app/notes/modifier-note/modifier-note.component.ts
  32. 4
      src/app/notes/notes.component.html
  33. 30
      src/app/notes/notes.component.ts
  34. 4
      src/app/notes/notes.routing.module.ts
  35. 16
      src/app/notes/nouvelle-note/nouvelle-note.component.ts
  36. 4
      src/app/referents/assignation-referent/assignation-referent.component.html
  37. 23
      src/app/referents/assignation-referent/assignation-referent.component.ts
  38. 14
      src/app/referents/referents.routing.module.ts
  39. 4
      src/app/shared/affichage-details-collaboarteur/affichage-details-collaborateur.ts
  40. 2
      src/app/shared/affichage-details-collaboarteur/dialog-assignation-rapide/dialog-assignation-rapide-collaborateurs.html
  41. 14
      src/app/shared/affichage-details-collaboarteur/dialog-assignation-rapide/dialog-assignation-rapide.component.ts
  42. 24
      src/app/shared/affichage-details-collaboarteur/prochain-ep/prochain-ep.component.html
  43. 4
      src/app/shared/affichage-details-collaboarteur/prochain-ep/prochain-ep.component.ts
  44. 84
      src/app/shared/api-swagger/api/collaborateurs.service.ts
  45. 45
      src/app/shared/api-swagger/api/demandesformation.service.ts
  46. 64
      src/app/shared/api-swagger/api/engagements.service.ts
  47. 42
      src/app/shared/api-swagger/api/formations.service.ts
  48. 42
      src/app/shared/api-swagger/api/notes.service.ts
  49. 38
      src/app/shared/api-swagger/api/participationsFormations.service.ts
  50. 4
      src/app/shared/api-swagger/model/demandeFormationDTO.ts
  51. 11
      src/app/shared/api-swagger/model/etatDemande.ts
  52. 2
      src/app/shared/api-swagger/model/saisieDTO.ts
  53. 6
      src/app/shared/api-swagger/model/statutEp.ts
  54. 8
      src/app/shared/mat-tables/collaborateurs-table/collaborateurs.table.html
  55. 27
      src/app/shared/mat-tables/collaborateurs-table/collaborateurs.table.ts
  56. 0
      src/app/shared/mat-tables/demandes-formation-table/demandes-formation.table.css
  57. 133
      src/app/shared/mat-tables/demandes-formation-table/demandes-formation.table.html
  58. 372
      src/app/shared/mat-tables/demandes-formation-table/demandes-formation.table.ts
  59. 2
      src/app/shared/mat-tables/engagements-table/engagements-table.html
  60. 14
      src/app/shared/mat-tables/engagements-table/engagements-table.ts
  61. 8
      src/app/shared/mat-tables/ep-table/ep-table.html
  62. 22
      src/app/shared/mat-tables/ep-table/ep-table.ts
  63. 4
      src/app/shared/mat-tables/formations-table/formations.table.html
  64. 20
      src/app/shared/mat-tables/formations-table/formations.table.ts
  65. 7
      src/app/shared/mat-tables/mat-tables.module.ts
  66. 13
      tsconfig.compodoc.json

369
package-lock.json generated

@ -4,6 +4,12 @@
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"@aduh95/viz.js": {
"version": "3.3.3",
"resolved": "https://registry.npmjs.org/@aduh95/viz.js/-/viz.js-3.3.3.tgz",
"integrity": "sha512-LC9QtXVpZAsWp58ifJepMRDmCpXyi5hc6mClodSuFfUCPyU2h42Up+la9hFC+j0Waaz/htahM+Z5cavWDS72Tg==",
"dev": true
},
"@angular-devkit/architect": {
"version": "0.1101.4",
"resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1101.4.tgz",
@ -2768,12 +2774,6 @@
"uuid": "^3.3.3"
},
"dependencies": {
"colors": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
"integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
"dev": true
},
"commander": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz",
@ -2800,43 +2800,56 @@
}
},
"@compodoc/ngd-core": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@compodoc/ngd-core/-/ngd-core-2.0.0.tgz",
"integrity": "sha512-6HpYvXRZBdIYFojWxW5EVNkhYPmblytCve62CNoYBSWfy++vTGH7Ypg2Bhjg2CsqeV8JOVxrPO7JM9M3MgWKEA==",
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/@compodoc/ngd-core/-/ngd-core-2.1.0.tgz",
"integrity": "sha512-nyBH7J7SJJ2AV6OeZhJ02kRtVB7ALnZJKgShjoL9CNmOFEj8AkdhP9qTBIgjaDrbsW5pF4nx32KQL2fT7RFnqw==",
"dev": true,
"requires": {
"ansi-colors": "^1.0.1",
"fancy-log": "^1.3.2",
"typescript": "^2.4.2"
"ansi-colors": "^4.1.1",
"fancy-log": "^1.3.3",
"typescript": "^4.0.3"
}
},
"@compodoc/ngd-transformer": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/@compodoc/ngd-transformer/-/ngd-transformer-2.1.0.tgz",
"integrity": "sha512-Jo4VCMzIUtgIAdRmhHhOoRRE01gCjc5CyrUERRx0VgEzkkCm1Wmu/XHSsQP6tSpCYHBjERghqaDqH5DabkR2oQ==",
"dev": true,
"requires": {
"@aduh95/viz.js": "^3.1.0",
"@compodoc/ngd-core": "~2.1.0",
"dot": "^1.1.3",
"fs-extra": "^9.0.1"
},
"dependencies": {
"ansi-colors": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz",
"integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==",
"fs-extra": {
"version": "9.1.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
"integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
"dev": true,
"requires": {
"ansi-wrap": "^0.1.0"
"at-least-node": "^1.0.0",
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
"universalify": "^2.0.0"
}
},
"typescript": {
"version": "2.9.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz",
"integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==",
"dev": true
}
"jsonfile": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
"dev": true,
"requires": {
"graceful-fs": "^4.1.6",
"universalify": "^2.0.0"
}
},
"@compodoc/ngd-transformer": {
"universalify": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@compodoc/ngd-transformer/-/ngd-transformer-2.0.0.tgz",
"integrity": "sha512-9J0KkmuuuvDHxH0oREgrgbqdEFqcltQXIBofeYdIyMKzI3A+pN1Ji4zfi7x1ql0Ax7qQKemp8XWP+cCpP0qY+w==",
"dev": true,
"requires": {
"@compodoc/ngd-core": "~2.0.0",
"dot": "^1.1.1",
"fs-extra": "^4.0.1",
"viz.js": "^1.8.0"
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
"integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
"dev": true
}
}
},
"@dsherret/to-absolute-glob": {
@ -3430,9 +3443,9 @@
},
"dependencies": {
"acorn": {
"version": "7.3.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz",
"integrity": "sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==",
"version": "7.4.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
"integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
"dev": true
}
}
@ -3892,6 +3905,12 @@
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
"dev": true
},
"at-least-node": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
"integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
"dev": true
},
"atob": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
@ -4002,9 +4021,9 @@
},
"dependencies": {
"core-js": {
"version": "2.6.11",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz",
"integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==",
"version": "2.6.12",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
"integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==",
"dev": true
},
"regenerator-runtime": {
@ -4654,70 +4673,112 @@
"dev": true
},
"cheerio": {
"version": "1.0.0-rc.3",
"resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz",
"integrity": "sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==",
"version": "1.0.0-rc.5",
"resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.5.tgz",
"integrity": "sha512-yoqps/VCaZgN4pfXtenwHROTp8NG6/Hlt4Jpz2FEP0ZJQ+ZUkVDd0hAPDNKhj3nakpfPt/CNs57yEtxD1bXQiw==",
"dev": true,
"requires": {
"css-select": "~1.2.0",
"dom-serializer": "~0.1.1",
"entities": "~1.1.1",
"htmlparser2": "^3.9.1",
"lodash": "^4.15.0",
"parse5": "^3.0.1"
"cheerio-select-tmp": "^0.1.0",
"dom-serializer": "~1.2.0",
"domhandler": "^4.0.0",
"entities": "~2.1.0",
"htmlparser2": "^6.0.0",
"parse5": "^6.0.0",
"parse5-htmlparser2-tree-adapter": "^6.0.0"
},
"dependencies": {
"css-select": {
"dom-serializer": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
"integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.2.0.tgz",
"integrity": "sha512-n6kZFH/KlCrqs/1GHMOd5i2fd/beQHuehKdWvNNffbGHTr/almdhuVvTVFb3V7fglz+nC50fFusu3lY33h12pA==",
"dev": true,
"requires": {
"boolbase": "~1.0.0",
"css-what": "2.1",
"domutils": "1.5.1",
"nth-check": "~1.0.1"
"domelementtype": "^2.0.1",
"domhandler": "^4.0.0",
"entities": "^2.0.0"
}
},
"css-what": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz",
"integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==",
"domelementtype": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz",
"integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==",
"dev": true
},
"dom-serializer": {
"entities": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz",
"integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==",
"dev": true
}
}
},
"cheerio-select-tmp": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz",
"integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==",
"resolved": "https://registry.npmjs.org/cheerio-select-tmp/-/cheerio-select-tmp-0.1.1.tgz",
"integrity": "sha512-YYs5JvbpU19VYJyj+F7oYrIE2BOll1/hRU7rEy/5+v9BzkSo3bK81iAeeQEMI92vRIxz677m72UmJUiVwwgjfQ==",
"dev": true,
"requires": {
"css-select": "^3.1.2",
"css-what": "^4.0.0",
"domelementtype": "^2.1.0",
"domhandler": "^4.0.0",
"domutils": "^2.4.4"
},
"dependencies": {
"css-select": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/css-select/-/css-select-3.1.2.tgz",
"integrity": "sha512-qmss1EihSuBNWNNhHjxzxSfJoFBM/lERB/Q4EnsJQQC62R2evJDW481091oAdOr9uh46/0n4nrg0It5cAnj1RA==",
"dev": true,
"requires": {
"domelementtype": "^1.3.0",
"entities": "^1.1.1"
"boolbase": "^1.0.0",
"css-what": "^4.0.0",
"domhandler": "^4.0.0",
"domutils": "^2.4.3",
"nth-check": "^2.0.0"
}
},
"domutils": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
"integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
"css-what": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/css-what/-/css-what-4.0.0.tgz",
"integrity": "sha512-teijzG7kwYfNVsUh2H/YN62xW3KK9YhXEgSlbxMlcyjPNvdKJqFx5lrwlJgoFP1ZHlB89iGDlo/JyshKeRhv5A==",
"dev": true
},
"dom-serializer": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.2.0.tgz",
"integrity": "sha512-n6kZFH/KlCrqs/1GHMOd5i2fd/beQHuehKdWvNNffbGHTr/almdhuVvTVFb3V7fglz+nC50fFusu3lY33h12pA==",
"dev": true,
"requires": {
"dom-serializer": "0",
"domelementtype": "1"
"domelementtype": "^2.0.1",
"domhandler": "^4.0.0",
"entities": "^2.0.0"
}
},
"entities": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
"integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==",
"domelementtype": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz",
"integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==",
"dev": true
},
"parse5": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz",
"integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==",
"domutils": {
"version": "2.4.4",
"resolved": "https://registry.npmjs.org/domutils/-/domutils-2.4.4.tgz",
"integrity": "sha512-jBC0vOsECI4OMdD0GC9mGn7NXPLb+Qt6KW1YDQzeQYRUFKmNG8lh7mO5HiELfr+lLQE7loDVI4QcAxV80HS+RA==",
"dev": true,
"requires": {
"@types/node": "*"
"dom-serializer": "^1.0.1",
"domelementtype": "^2.0.1",
"domhandler": "^4.0.0"
}
},
"nth-check": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz",
"integrity": "sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q==",
"dev": true,
"requires": {
"boolbase": "^1.0.0"
}
}
}
@ -6416,12 +6477,20 @@
"dev": true
},
"domhandler": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
"integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.0.0.tgz",
"integrity": "sha512-KPTbnGQ1JeEMQyO1iYXoagsI6so/C96HZiFyByU3T6iAzpXn8EGEvct6unm1ZGoed8ByO2oirxgwxBmqKF9haA==",
"dev": true,
"requires": {
"domelementtype": "1"
"domelementtype": "^2.1.0"
},
"dependencies": {
"domelementtype": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz",
"integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==",
"dev": true
}
}
},
"domutils": {
@ -6450,9 +6519,9 @@
}
},
"duplexer": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
"integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=",
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
"integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==",
"dev": true
},
"duplexer2": {
@ -7453,12 +7522,6 @@
"unicode-trie": "^0.3.0"
},
"dependencies": {
"clone": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
"integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
"dev": true
},
"pako": {
"version": "0.2.9",
"resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz",
@ -7818,9 +7881,9 @@
"dev": true
},
"handlebars": {
"version": "4.7.6",
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz",
"integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==",
"version": "4.7.7",
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz",
"integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==",
"dev": true,
"requires": {
"minimist": "^1.2.5",
@ -8051,34 +8114,43 @@
"dev": true
},
"htmlparser2": {
"version": "3.10.1",
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz",
"integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==",
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.0.0.tgz",
"integrity": "sha512-numTQtDZMoh78zJpaNdJ9MXb2cv5G3jwUoe3dMQODubZvLoGvTE/Ofp6sHvH8OGKcN/8A47pGLi/k58xHP/Tfw==",
"dev": true,
"requires": {
"domelementtype": "^1.3.1",
"domhandler": "^2.3.0",
"domutils": "^1.5.1",
"entities": "^1.1.1",
"inherits": "^2.0.1",
"readable-stream": "^3.1.1"
"domelementtype": "^2.0.1",
"domhandler": "^4.0.0",
"domutils": "^2.4.4",
"entities": "^2.0.0"
},
"dependencies": {
"entities": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
"integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==",
"dom-serializer": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.2.0.tgz",
"integrity": "sha512-n6kZFH/KlCrqs/1GHMOd5i2fd/beQHuehKdWvNNffbGHTr/almdhuVvTVFb3V7fglz+nC50fFusu3lY33h12pA==",
"dev": true,
"requires": {
"domelementtype": "^2.0.1",
"domhandler": "^4.0.0",
"entities": "^2.0.0"
}
},
"domelementtype": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz",
"integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==",
"dev": true
},
"readable-stream": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
"domutils": {
"version": "2.4.4",
"resolved": "https://registry.npmjs.org/domutils/-/domutils-2.4.4.tgz",
"integrity": "sha512-jBC0vOsECI4OMdD0GC9mGn7NXPLb+Qt6KW1YDQzeQYRUFKmNG8lh7mO5HiELfr+lLQE7loDVI4QcAxV80HS+RA==",
"dev": true,
"requires": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
"util-deprecate": "^1.0.1"
"dom-serializer": "^1.0.1",
"domelementtype": "^2.0.1",
"domhandler": "^4.0.0"
}
}
}
@ -9687,6 +9759,16 @@
"integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
"dev": true
},
"cors": {
"version": "2.8.5",
"resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
"integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
"dev": true,
"requires": {
"object-assign": "^4",
"vary": "^1"
}
},
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
@ -9713,15 +9795,6 @@
"is-extendable": "^0.1.0"
}
},
"faye-websocket": {
"version": "0.11.3",
"resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz",
"integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==",
"dev": true,
"requires": {
"websocket-driver": ">=0.5.1"
}
},
"fill-range": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
@ -9982,15 +10055,15 @@
}
},
"lunr": {
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.8.tgz",
"integrity": "sha512-oxMeX/Y35PNFuZoHp+jUj5OSEmLCaIH4KTFJh7a93cHBoFmpw2IoPs22VIz7vyO2YUnx2Tn9dzIwO2P/4quIRg==",
"version": "2.3.9",
"resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz",
"integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==",
"dev": true
},
"macos-release": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.4.0.tgz",
"integrity": "sha512-ko6deozZYiAkqa/0gmcsz+p4jSy3gY7/ZsCEokPaYd8k+6/aXGkiTgr61+Owup7Sf+xjqW8u2ElhoM9SEcEfuA==",
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.4.1.tgz",
"integrity": "sha512-H/QHeBIN1fIGJX517pvK8IEK53yQOW7YcEI55oYtgjDdoCQQz7eJS94qt5kNrscReEyuD/JcdFCm2XBEcGOITg==",
"dev": true
},
"magic-string": {
@ -11699,15 +11772,16 @@
}
},
"pdfmake": {
"version": "0.1.66",
"resolved": "https://registry.npmjs.org/pdfmake/-/pdfmake-0.1.66.tgz",
"integrity": "sha512-NFR1hn5d4NDPOGFY2/jCt6eRLO2x2BFtr/vdl321DjlPYX9DxGwDAgCnNfTfh96lhewHDuAD8YU4X2l0kjnB2Q==",
"version": "0.1.70",
"resolved": "https://registry.npmjs.org/pdfmake/-/pdfmake-0.1.70.tgz",
"integrity": "sha512-xPhkblaQ71U97qhRTPj/1HknAHHFZ3cPRmRdrqEWD2xXBcEjEM3Yw0MIjML8DRy9Dt9n6QRjHVf662f0eLtd7Q==",
"dev": true,
"requires": {
"iconv-lite": "^0.6.0",
"iconv-lite": "^0.6.2",
"linebreak": "^1.0.2",
"pdfkit": "^0.11.0",
"svg-to-pdfkit": "^0.1.8"
"svg-to-pdfkit": "^0.1.8",
"xmldoc": "^1.1.2"
},
"dependencies": {
"iconv-lite": {
@ -16181,9 +16255,9 @@
"dev": true
},
"uglify-js": {
"version": "3.10.0",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.10.0.tgz",
"integrity": "sha512-Esj5HG5WAyrLIdYU74Z3JdG2PxdIusvj6IWHMtlyESxc7kcDz7zYlYjpnSokn1UbpV0d/QX9fan7gkCNd/9BQA==",
"version": "3.13.0",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.0.tgz",
"integrity": "sha512-TWYSWa9T2pPN4DIJYbU9oAjQx+5qdV5RUDxwARg8fmJZrD/V27Zj0JngW5xg1DFz42G0uDYl2XhzF6alSzD62w==",
"dev": true,
"optional": true
},
@ -16518,12 +16592,6 @@
"extsprintf": "^1.2.0"
}
},
"viz.js": {
"version": "1.8.2",
"resolved": "https://registry.npmjs.org/viz.js/-/viz.js-1.8.2.tgz",
"integrity": "sha512-W+1+N/hdzLpQZEcvz79n2IgUE9pfx6JLdHh3Kh8RGvLL8P1LdJVQmi2OsDcLdY4QVID4OUy+FPelyerX0nJxIQ==",
"dev": true
},
"vm-browserify": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz",
@ -17458,9 +17526,9 @@
"dev": true
},
"windows-release": {
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.3.1.tgz",
"integrity": "sha512-Pngk/RDCaI/DkuHPlGTdIkDiTAnAkyMjoQMZqRsxydNl1qGXNIoZrB7RK8g53F2tEgQBMqQJHQdYZuQEEAu54A==",
"version": "3.3.3",
"resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.3.3.tgz",
"integrity": "sha512-OSOGH1QYiW5yVor9TtmXKQvt2vjQqbYS+DqmsZw+r7xDwLXEeT3JGW0ZppFmHx4diyXmxt238KFR3N9jzevBRg==",
"dev": true,
"requires": {
"execa": "^1.0.0"
@ -17600,6 +17668,15 @@
"integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==",
"dev": true
},
"xmldoc": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/xmldoc/-/xmldoc-1.1.2.tgz",
"integrity": "sha512-ruPC/fyPNck2BD1dpz0AZZyrEwMOrWTO5lDdIXS91rs3wtm4j+T8Rp2o+zoOYkkAxJTZRPOSnOGei1egoRmKMQ==",
"dev": true,
"requires": {
"sax": "^1.2.1"
}
},
"xtend": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",

@ -8,7 +8,7 @@
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e",
"compodoc": "./node_modules/.bin/compodoc -p tsconfig.json"
"compodoc": "npx compodoc -p tsconfig.compodoc.json src"
},
"private": true,
"dependencies": {

@ -5,31 +5,17 @@ import { Routes } from '@angular/router';
import { HomeComponent } from './home/';
import { AuthGuard } from '@shared/auth/auth.guard';
import { AuthGuard } from './shared/auth/auth.guard';
import { paths_collaborateurs, paths_demandes_delegation, paths_demandes_formation,
paths_ep, paths_saisie_ep, paths_formation, paths_home, paths_referents, paths_engagements, paths_notes } from '@shared/utils/paths';
paths_ep, paths_saisie_ep, paths_formation, paths_home, paths_referents, paths_engagements, paths_notes } from './shared/utils/paths';
import { Role } from '@shared/utils/roles';
import { Role } from './shared/utils/roles';
/**
* L'ensemble des routes du client Angular
*/
const routes: Routes = [
//Redirection vers le home pour "/"
{
path: '',
redirectTo: paths_home.path,
pathMatch: 'full'
},
//Chemin du home
{
path: paths_home.path,
component: HomeComponent,
canActivate: [AuthGuard],
data: { roles: [Role.assistante, Role.commercial, Role.rh, Role.collaborateur] },
pathMatch: 'full'
},
//chargement des chemins du module collaborateur à partir du routing de ce module
{
path: paths_collaborateurs.path,
@ -73,6 +59,20 @@ const routes: Routes = [
{
path: paths_notes.path,
loadChildren: () => import('./notes/notes.module').then( m => m.NotesModule)
},
//Chemin du home
{
path: paths_home.path,
component: HomeComponent,
canActivate: [AuthGuard],
data: { roles: [Role.assistante, Role.commercial, Role.rh, Role.collaborateur] },
pathMatch: 'full'
},
//Redirection vers le home pour "/"
{
path: '',
redirectTo: paths_home.path,
pathMatch: 'full'
}
];

@ -6,8 +6,6 @@ import { Router } from '@angular/router';
/**
* Composant qui sert à l'affichage de la liste des collaborateurs en fonction de l'agence de son utilitateur.
* Seuls les commerciaux, RH et assistantes pourront accéder à la liste des collaborateurs.
* Les données affichées : Agence-Nom Prénom-Date Embauche-Responsable Commercial-Date Prochain EP.
*/
@Component({
selector: 'app-collaborateurs',
@ -37,6 +35,11 @@ export class CollaborateursComponent {
constructor(private router: Router) {}
/**
* Fonction permettant d'ouvrir les détails d'un référent ou d'un collaborateur en fonction de la case cliquée
*
* @param event Evènement reçu par le composant enfant, contient le type du collaborateur reçu (référent, collaborateur) et les données collaborateur
*/
event(event : any) {
switch(event.type) {
case "collaborateur":

@ -17,9 +17,7 @@ import { MatTablesModule } from "@shared/mat-tables/mat-tables.module";
import { CollaborateursRoutingModule } from "./collaborateurs.routing.module";
import { AffichageDetailsCollaborateurModule } from "@shared/affichage-details-collaboarteur/affichage-details-collaborateur.module";
/**
* Module collaborateur.
*/
@NgModule({
declarations: [
CollaborateursComponent, DetailsCollaborateurComponent,

@ -7,27 +7,24 @@ import { FormationsCollaboateurComponent } from "./formations-collaborateur/form
import { EvaluationComponent } from './formations-collaborateur/details-evaluation/evaluation.component';
import { EditEvaluationComponent } from './formations-collaborateur/edit-evaluation/edit-evaluation.component';
import { paths_collaborateurs } from '@shared/utils/paths';
import { paths_collaborateurs } from '../shared/utils/paths';
import { AuthGuard } from '@shared/auth/auth.guard';
import { Role } from '@shared/utils/roles';
import { AuthGuard } from '../shared/auth/auth.guard';
import { Role } from '../shared/utils/roles';
/**
* Routes du module collaborateur
*/
const routes: Routes = [
{ path:paths_collaborateurs.formations, component: FormationsCollaboateurComponent, canActivate: [AuthGuard] },
{ path:paths_collaborateurs.evaluation, component: EvaluationComponent, canActivate: [AuthGuard] },
{ path:paths_collaborateurs.edit, component: EditEvaluationComponent, canActivate: [AuthGuard] },
{ path:paths_collaborateurs.get, component: DetailsCollaborateurComponent, canActivate: [AuthGuard] },
{
path:'',
component: CollaborateursComponent,
canActivate: [AuthGuard],
data: { roles: [Role.assistante, Role.commercial, Role.rh] },
pathMatch: 'full'
},
{ path:paths_collaborateurs.formations, component: FormationsCollaboateurComponent, canActivate: [AuthGuard] },
{ path:paths_collaborateurs.evaluation, component: EvaluationComponent, canActivate: [AuthGuard] },
{ path:paths_collaborateurs.edit, component: EditEvaluationComponent, canActivate: [AuthGuard] },
{ path:paths_collaborateurs.get, component: DetailsCollaborateurComponent, canActivate: [AuthGuard] }
}
];

@ -1,39 +1,3 @@
<app-nav-menu></app-nav-menu>
<affichage-details-collaborateur [idCollaborateur]="idCollaborateur"></affichage-details-collaborateur>
<!--
<ng-container *ngIf= "eploaded && nbEP==0">
<h3> Aucun EP effectué encore </h3>
</ng-container>
<ng-container *ngIf= "eploaded && nbEP>0">
Affichage de la liste des EP effectués
<h3>Liste des précédents EP</h3>
<mat-table [dataSource]="this.dataSource" matSort>
<ng-container matColumnDef="dateentretien">
<mat-header-cell *matHeaderCellDef mat-sort-header>Date entretient</mat-header-cell>
<mat-cell *matCellDef="let row">{{ row.datePrevisionnelle }}</mat-cell>
</ng-container>
<ng-container matColumnDef="referent">
<mat-header-cell *matHeaderCellDef mat-sort-header>Référent</mat-header-cell>
<mat-cell *matCellDef="let row"> {{ getReferent(row.referent) }}</mat-cell>
</ng-container>
<ng-container matColumnDef="type">
<mat-header-cell *matHeaderCellDef mat-sort-header>Type</mat-header-cell>
<mat-cell *matCellDef="let row">{{ row.type }}</mat-cell>
</ng-container>
<ng-container matColumnDef="details">
<mat-header-cell *matHeaderCellDef mat-sort-header></mat-header-cell>
<mat-cell *matCellDef="let row" [routerLink]="['/ep',row.id]"> Voir détails EP </mat-cell>
</ng-container>
<mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row>
<mat-row *matRowDef="let row; columns: displayedColumns;"></mat-row>
</mat-table>
</ng-container>
-->

@ -4,7 +4,7 @@ import {ActivatedRoute} from '@angular/router';
/**
* Composant pour gérer l'affichage des détails d'un collaborateur et de ses EP
* Composant pour gérer l'affichage des détails d'un collaborateur avec ses formations et ses EP
*/
@Component({
selector: 'app-details-collaborateur',
@ -13,6 +13,7 @@ import {ActivatedRoute} from '@angular/router';
export class DetailsCollaborateurComponent {
idCollaborateur: string;
constructor(private route: ActivatedRoute) {
this.idCollaborateur = this.route.snapshot.paramMap.get('id');
}

@ -5,6 +5,7 @@ import { cles } from '@shared/utils/cles';
import { Subscription } from 'rxjs';
/**
* Composant pour faire afficher la liste des demandes de délégation reçues
*/
@Component({
selector: 'app-demandes-delegation',
@ -25,12 +26,12 @@ export class DemandesDelegationComponent implements OnInit {
ngOnInit() {
this.recupererIdCollaborateurConencte();
this.setIdCollaborateurConnecte();
}
recupererIdCollaborateurConencte() {
setIdCollaborateurConnecte() {
if(sessionStorage.getItem(cles.sessionKeyConnectee) == undefined) {
setTimeout( () => this.recupererIdCollaborateurConencte(), 1000);
setTimeout( () => this.setIdCollaborateurConnecte(), 1000);
}
else {
const collaborateurConnecte: CollaborateurDTO = JSON.parse(sessionStorage.getItem(cles.sessionKeyConnectee));
@ -39,6 +40,9 @@ export class DemandesDelegationComponent implements OnInit {
}
}
/**
* Cette fonction permet de mettre à jour l'affichage de la liste des demande de délégation
*/
updateListeDemandesDelegation() {
this.chargement = false;
this.demandeDelegationSubscription = this.demandeDelegationService.getDemandesDelegationReferent(this.idCollaborateurConnecte).subscribe(

@ -7,6 +7,7 @@ import { Subscription } from 'rxjs';
/**
* Composant pour faire afficher les détails d'une demande de délégation
*/
@Component({
selector: 'app-demande-delegation',
@ -62,9 +63,21 @@ export class DemandeDelegationComponent implements OnInit {
})
export class DialogReponseDemandeDelegation {
/**
* Texte à afficher lors de la réponse à une demande de délégation. Le texte dépend de si la demande va être acceptée ou bien refusée.
*/
texte: string ="";
/**
* Indique si la réponse est un refus.
*/
estRefus: boolean = false;
raisonRefus: string;
/**
* Contient l'information indiquant si la réponse a é validé et doit être enregistré ou non et la demande de délégation cible.
*/
reponse: any = {
engistree: false
}
@ -81,7 +94,7 @@ export class DialogReponseDemandeDelegation {
}
}
enregistrer() {
enregistrer() {
if(this.estRefus && this.raisonRefus == "")
return;
let demandeDelegation: DemandeDelegationDTO = this.data.demandeDelegation;
@ -92,7 +105,7 @@ enregistrer() {
demandeDelegation: demandeDelegation
}
this.fermer();
}
}

@ -1,2 +1,3 @@
<app-nav-menu></app-nav-menu>
<h1>Liste des demandes de formation </h1>
<demandes-formation-table [displayedColumns]="displayedColumns" (eventEmitter)="afficherDetailDemandeFormation($event)"></demandes-formation-table>

@ -1,4 +1,7 @@
import { Component, OnInit } from '@angular/core';
import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
import { DemandeFormationDTO } from '@shared/api-swagger';
import { DialogDemandeFormationComponent } from './mat-dialog/dialog-demande-formation.component';
/**
* Composant pour faire afficher la liste des demandes de formations
@ -10,8 +13,16 @@ import { Component, OnInit } from '@angular/core';
})
export class DemandesFormationComponent implements OnInit {
constructor() {}
displayedColumns : string[] = ["businessunit", "collaborateur", "datedemande", "demanderh", "ep", "etat", "datereponse"];
constructor(private dialog: MatDialog) {}
ngOnInit() {
}
afficherDetailDemandeFormation(demandeFormation: DemandeFormationDTO) {
const datas = { data: demandeFormation, width: "80%", height: '80%'};
this.dialog.open(DialogDemandeFormationComponent, datas);
}
}

@ -1,35 +1,40 @@
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { FormsModule } from '@angular/forms';
import { RouterModule } from '@angular/router';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { NgModule } from "@angular/core";
import { CommonModule } from "@angular/common";
import { MaterialModule } from "@shared/angular-material/angular-material.module";
import {NavMenuModule} from '@shared/nav-menu/nav-menu.module';
import { DemandesFormationComponent } from './demandes-formation.component';
import { DialogDemandeFormationComponent } from './mat-dialog/dialog-demande-formation.component';
import { DemandeFormationComponent } from './details-demande-formation/demande-formation.component'
import { NewDemandeFormationComponent } from './new-demande-formation/new-demande-formation.component'
import { DemandesFormationsRoutingModule } from './demandes-formation.routing.module';
import { MatTablesModule } from "@shared/mat-tables/mat-tables.module";
/**
* Module demandes formation
*/
@NgModule({
declarations: [ DemandesFormationComponent, DemandeFormationComponent,
declarations: [ DemandesFormationComponent, DialogDemandeFormationComponent, DemandeFormationComponent,
NewDemandeFormationComponent
],
exports: [
DemandesFormationComponent
],
imports: [
CommonModule,
MaterialModule,
NavMenuModule,
DemandesFormationsRoutingModule,
RouterModule
MatTablesModule,
RouterModule,
FormsModule,
ReactiveFormsModule
],
})
export class DemandesFormationModule {}

@ -6,17 +6,17 @@ import { DemandesFormationComponent } from "./demandes-formation.component";
import { DemandeFormationComponent } from "./details-demande-formation/demande-formation.component";
import { NewDemandeFormationComponent } from "./new-demande-formation/new-demande-formation.component";
import { AuthGuard } from '@shared/auth/auth.guard';
import { AuthGuard } from '../shared/auth/auth.guard';
import { paths_demandes_formation } from "@shared/utils/paths";
import { paths_demandes_formation } from "../shared/utils/paths";
/**
* Routes du module demandes formation
*/
const routes: Routes = [
{ path:'', component: DemandesFormationComponent, pathMatch: 'full', canActivate: [AuthGuard] },
{ path:paths_demandes_formation.new, component: NewDemandeFormationComponent, canActivate: [AuthGuard] },
{ path:paths_demandes_formation.get, component: DemandeFormationComponent, canActivate: [AuthGuard] }
{ path:paths_demandes_formation.get, component: DemandeFormationComponent, canActivate: [AuthGuard] },
{ path:'', component: DemandesFormationComponent, pathMatch: 'full', canActivate: [AuthGuard] }
];

@ -0,0 +1,31 @@
<h3>Détails de la demande</h3>
<p><button mat-stroked-button (click)="fermer()" [routerLink]="['/collaborateurs', collaborateur.id]"> Collaborateur: {{collaborateur.nom}} {{collaborateur.prenom}}</button></p>
<p> <button mat-stroked-button (click)="fermer()" [routerLink]="['/referents', referent.id]">Référent: {{referent.nom}} {{referent.prenom}}</button></p>
<p><button mat-stroked-button (click)="fermer()" [routerLink]="['/ep',ep.id]">Voir EP effectué le {{ ep.datePrevisionnelle | date: 'dd/MM/yyyy' }} </button></p>
<p>Libellé : {{ data.libelle}}</p>
<p>Description: {{ data.description }}</p>
<p>Demande RH: {{ afficherDemandeRH(data.demandeRH) }}</p>
<p>Date demande: {{ data.dateDemande | date: 'dd/MM/yyyy' }} </p>
<p>Etat : {{ afficherEtat(data.etatDemande) }}</p>
<p *ngIf="data.etatDemande == etatDemande.Rejetee"> Raison du refus : {{data.commentaireRefus}}</p>
<ng-container *ngIf="data.etatDemande == etatDemande.EnAttente">
<button mat-raised-button (click)="repondre()">Répondre à la demande de formation</button>
<ng-container *ngIf="donnerReponse">
<mat-slide-toggle [(ngModel)]="demandeValidee">
Demande validée
</mat-slide-toggle>
<div>
<mat-form-field *ngIf="!demandeValidee" appearance="fill">
<mat-label>Raison du refus</mat-label>
<textarea matInput [(ngModel)]="commentaireRefus"></textarea>
</mat-form-field>
</div>
<button mat-raised-button (click)="updateDemandeFormation()">Valider le choix</button>
</ng-container>
</ng-container>
<button mat-raised-button (click)="fermer()">Fermer</button>

@ -0,0 +1,79 @@
import { Component, Inject } from "@angular/core";
import { MatDialogRef, MAT_DIALOG_DATA } from "@angular/material/dialog";
import { MatSnackBar } from "@angular/material/snack-bar";
import { CollaborateurDTO, EpInformationDTO, DemandesFormationService, DemandeFormationDTO, EtatDemande, afficherEtatDemande } from "@shared/api-swagger";
import { Subscription } from "rxjs";
@Component( {
selector: "dialog-demande-formation",
templateUrl: "dialog-demande-formation.component.html"
})
export class DialogDemandeFormationComponent {
ep: EpInformationDTO;
collaborateur: CollaborateurDTO;
referent: CollaborateurDTO;
etatDemande: any = EtatDemande;
engagementsSubscription: Subscription;
donnerReponse: boolean = false;
commentaireRefus : string = "";
demandeValidee: boolean = true;
constructor(private dialogRef : MatDialogRef<DialogDemandeFormationComponent>, @Inject(MAT_DIALOG_DATA) public data : DemandeFormationDTO, private demandesFormationService: DemandesFormationService,
private snackBar: MatSnackBar){
this.ep = data.ep;
this.collaborateur = data.ep.collaborateur;
this.referent = data.ep.referent;
}
updateDemandeFormation() {
let demandeFormation : DemandeFormationDTO = this.data;
if(this.demandeValidee) {
demandeFormation.etatDemande = EtatDemande.Validee;
}
else {
if(this.commentaireRefus.length == 0) {
this.snackBar.open("Vous devez justifier le refus de la demande de formation.", "Attention", {
duration: 5000,
horizontalPosition: "center",
verticalPosition: "top",
});
return;
}
demandeFormation.commentaireRefus = this.commentaireRefus;
demandeFormation.etatDemande = EtatDemande.Rejetee;
}
this.engagementsSubscription = this.demandesFormationService.updateDemandeFormation(demandeFormation, demandeFormation.id).subscribe(
() => location.reload(),
err => console.log(err)
);
}
afficherDemandeRH(demandeRH: boolean) {
if (demandeRH)
return 'Oui';
else
return 'Non'
}
afficherEtat(etat: EtatDemande) {
return afficherEtatDemande(etat);
}
fermer() {
this.dialogRef.close();
}
repondre() {
this.donnerReponse = true;
}
ngOnDestroy() {
if(this.engagementsSubscription != null) {
this.engagementsSubscription.unsubscribe();
}
}
}

@ -0,0 +1,16 @@
div {
margin-left: 5%;
margin-bottom: 1%;
}
.input{
width: 30%;
}
.input2 {
width: 14%;
}
.moveright {
margin-left: 2%;
}

@ -1,2 +1,35 @@
<app-nav-menu></app-nav-menu>
<h1> Nouvelle demande de formation </h1>
<!-- Le formulaire -->
<form [formGroup]="demandeFormationForm" (ngSubmit)="ajouterDemandeFormation()">
<div>
<!-- Attribut : libelle -->
<mat-form-field class="input">
<input matInput placeholder="Libellé" formControlName="libelle">
</mat-form-field>
</div>
<div>
<!-- Attribut : description -->
<mat-form-field class="input">
<input matInput placeholder="Description" formControlName="description">
</mat-form-field>
</div>
<div>
<!-- Attribut : origine -->
<mat-form-field class="input">
<mat-label>Origine de la demande</mat-label>
<mat-select formControlName="origine">
<mat-option *ngFor="let o of originesDemandeFormation" [value]="o">{{o.libelle}}</mat-option>
</mat-select>
</mat-form-field>
</div>
<div>
<button mat-raised-button>Ajouter une demande de formation</button>
</div>
</form>

@ -1,16 +1,80 @@
import { Component, OnInit } from '@angular/core';
import { Observable, Subscription } from 'rxjs';
import { Router } from '@angular/router';
import { FormBuilder, FormGroup, FormControl, } from '@angular/forms';
import { OrigineDemandeFormationDTO, EtatDemande } from "@shared/api-swagger/model/models";
import { DemandesFormationService } from "@shared/api-swagger/api/api";
/**
* Composant qui sert à créer une demande de formation pour un collaborateur.
*/
@Component({
selector: 'app-new-demande-formation',
templateUrl: './new-demande-formation.component.html'
templateUrl: './new-demande-formation.component.html',
styleUrls: ['./new-demande-formation.component.css']
})
export class NewDemandeFormationComponent implements OnInit {
constructor() {}
/**
* Observable pour enregistrer la nouvelle formation
*/
demandeFormationSubscription: Subscription;
/**
* Observable pour récupérer la liste des origines formation
*/
origineDemandeSubscription: Subscription;
/**
* Liste des origines de demande de formation à faire afficher dans une liste déroulante.
*/
originesDemandeFormation: OrigineDemandeFormationDTO[];
/**
* FormBuilder qui sera lié au formulaire du template avec les attributs d'une formation
* C'est dans cet objet qu'est stockée la nouvelle formation
*/
demandeFormationForm = this.fb.group(
{
id:[0],
libelle: [""],
description: [],
demandeRH: [true],
dateDemande: [new Date()],
etatDemande: [EtatDemande.EnAttente],
origine: [""],
collaborateur: [""],
}
);
constructor(private fb: FormBuilder, private demandesFormationService: DemandesFormationService, private router: Router) { }
ngOnInit() {
this.origineDemandeSubscription = this.demandesFormationService.getOriginesDemandeFormation().subscribe(
originesDemandeFormation => this.originesDemandeFormation = originesDemandeFormation,
err => console.log(err)
);
}
ajouterDemandeFormation() {
this.demandeFormationSubscription = this.demandesFormationService.addDemandeFormation(this.demandeFormationForm.getRawValue()).subscribe(
response => {
console.log(response);
this.router.navigate(['/demandesformation',response["id"]]);
}
);
}
ngOnDestroy() {
if(this.demandeFormationSubscription != undefined) {
this.demandeFormationSubscription.unsubscribe();
}
if(this.origineDemandeSubscription != undefined) {
this.origineDemandeSubscription.unsubscribe();
}
}
}

@ -4,7 +4,9 @@ import { MatSnackBar } from "@angular/material/snack-bar";
import { CollaborateurDTO, EngagementDTO, EngagementsService, EpInformationDTO, EtatEngagement, afficherEtatEngagement } from "@shared/api-swagger";
import { Subscription } from "rxjs";
/**
* Composant pour afficher la liste des engagements EP
*/
@Component({
selector: "app-engagements",
templateUrl: "./engagements.html"
@ -20,6 +22,9 @@ export class EngagementsComponent {
}
}
/**
* Dialog pour afficher les détails d'un engagement et y donner une réponse si possible
*/
@Component( {
selector: "dialog-engagements",
templateUrl: "dialog-engagements.html"
@ -31,6 +36,9 @@ export class DialogEngagementsComponent {
etatEngagement: any = EtatEngagement;
engagementsSubscription: Subscription;
/**
* Indique si l'on souhaite donner une réponse à l'engagement encore en cours ou non
*/
donnerReponse: boolean = false;
raisonRefus : string = "";
engagementRespecte: boolean = true;

@ -7,9 +7,9 @@ import { EpsSaisieComponent } from "./eps-saisie/eps-saisie.component";
import { EpaSaisieComponent } from "./epa-saisie/epa-saisie.component";
import { EpaSixAnsSaisieComponent } from "./epa-six-ans-saisie/epa-six-ans-saisie.component";
import { AuthGuard } from '@shared/auth/auth.guard';
import { AuthGuard } from '../shared/auth/auth.guard';
import { paths_saisie_ep } from "@shared/utils/paths";
import { paths_saisie_ep } from "../shared/utils/paths";
/**
* Routes du module saisie ep

@ -5,6 +5,9 @@ import { AuthService } from "@shared/auth/auth.service";
import { Role } from "@shared/utils/roles";
import { Subscription } from "rxjs";
/**
* Composant pour afficher les détails d'un EP
*/
@Component({
selector : "details-ep",
templateUrl: "./details-ep.component.html",

@ -3,7 +3,7 @@ import { Router } from '@angular/router';
import { epTypeRecherche } from '@shared/utils/cles';
/**
* Composant qui permet la consultation de la liste des EP signés collaborateur
* Composant qui permet la consultation de la liste des EP signés
*/
@Component({
selector: 'app-ep-signes',
@ -17,6 +17,11 @@ export class EpSignesComponent {
constructor(private router: Router){}
/**
* Evènement permettant de choisir si l'on souhaite ouvrir les détails du collaborateur, du référent ou bien de l'EP
*
* @param event Evènement reçu par le composant enfant, contient le type de l'évènement (référent, ep, collaborateur) et les données ep
*/
eventEmitter(event: any) {
switch(event.type) {
case "collaborateur":

@ -6,7 +6,9 @@ import { cles, epTypeRecherche } from '@shared/utils/cles';
import { Role } from '@shared/utils/roles';
/**
* Composant pour faire afficher les EP signés, référent et participants du connecté
*/
@Component({
selector: 'app-ep',
templateUrl: './ep.component.html'
@ -36,6 +38,7 @@ export class EpComponent implements OnInit {
this.setIdCollaborateur();
}
setIdCollaborateur() {
if(sessionStorage.getItem(cles.sessionKeyConnectee) == undefined) {
setTimeout( () => this.setIdCollaborateur(), 1000);
@ -47,7 +50,7 @@ export class EpComponent implements OnInit {
}
ouvrirEP(event) {
ouvrirEP(event : any) {
if(event.type == "ep")
this.router.navigate(["/ep", event.ep.id]);
}

@ -4,8 +4,8 @@ import { Routes, RouterModule } from '@angular/router';
import { EpComponent } from "./ep.component";
import { AuthGuard } from '@shared/auth/auth.guard';
import { paths_ep } from "@shared/utils/paths";
import { AuthGuard } from '../shared/auth/auth.guard';
import { paths_ep } from "../shared/utils/paths";
import { EpSignesComponent } from './ep-signes/ep-signes.component';
import { DetailsEPComponent } from './details-ep/details-ep.component';

@ -14,6 +14,7 @@ import { FormationDTO, ModeFormationDTO, TypeFormationDTO, StatutFormationDTO, O
import { FormationsService } from '@shared/api-swagger/api/api';
/**
* Composant pour modifier une formation
*/
@Component({
selector: 'app-edit-formation',

@ -1,6 +1,7 @@
import { Component } from '@angular/core';
/**
* Composant pour faire afficher la liste des formations liées à l'agence du connecté
*/
@Component({
selector: 'app-formations',

@ -7,17 +7,17 @@ import { FormationComponent } from "./details-formation/formation.component";
import { NewFormationComponent } from "./new-formation/new-formation.component";
import { EditFormationComponent } from "./edit-formation/edit-formation.component";
import { AuthGuard } from '@shared/auth/auth.guard';
import { AuthGuard } from '../shared/auth/auth.guard';
import { paths_formation } from "@shared/utils/paths";
import { paths_formation } from "../shared/utils/paths";
/**
* Routes du module formation
*/
const routes: Routes = [
{ path:'', component: FormationsComponent, pathMatch: 'full', canActivate: [AuthGuard] },
{ path:paths_formation.edit, component: EditFormationComponent, canActivate: [AuthGuard] },
{ path:paths_formation.new, component: NewFormationComponent, canActivate: [AuthGuard] },
{ path:paths_formation.get, component: FormationComponent, canActivate: [AuthGuard] }
{ path:paths_formation.get, component: FormationComponent, canActivate: [AuthGuard] },
{ path:'', component: FormationsComponent, pathMatch: 'full', canActivate: [AuthGuard] }
];

@ -8,7 +8,7 @@ import { FormationDTO, ModeFormationDTO, TypeFormationDTO, StatutFormationDTO, O
import { FormationsService } from "@shared/api-swagger/api/api";
/**
* Composant pour l'ajout d'une nouvelle formation
* Composant pour ajotuer une nouvelle formation
*/
@Component({
selector: 'app-new-formation',

@ -4,7 +4,9 @@ import { ActivatedRoute, Router } from "@angular/router";
import { DetailsNoteDTO, NotesService } from "@shared/api-swagger";
import { Subscription } from "rxjs";
/**
* Composant pour faire afficher les détails d'une note d'un manager ou d'un RA
*/
@Component({
selector: "app-details-note",
templateUrl: "./details-note.component.html"
@ -27,6 +29,9 @@ export class DetailsNoteComponent implements OnInit{
}
}
/**
* Permet d'ouvrir un popup pour effectuer la validation de la suppresion d'une note
*/
supprimerNote() {
this.dialog.open(DialogSuppressionNoteComponent, { data: this.note})
}

@ -6,6 +6,10 @@ import { ActivatedRoute, Router } from "@angular/router";
import { CollaborateurDTO, DetailsNoteDTO, NotesService } from "@shared/api-swagger";
import { Subscription } from "rxjs";
/**
* Composant pour modifier une note
*/
@Component({
selector: "modifier-note",
templateUrl: "./modifier-note.component.html"
@ -14,6 +18,7 @@ export class ModifierNoteComponent implements OnInit{
chercherNoteSubscription: Subscription;
modifierNoteSubscription: Subscription;
dialogSubscription: Subscription;
@ -22,6 +27,9 @@ export class ModifierNoteComponent implements OnInit{
id: any;
/**
* Form lié à la note qui devra être mise à jour
*/
noteForm: FormGroup;
constructor(private noteService: NotesService, private fb: FormBuilder, private router: Router,

@ -21,7 +21,7 @@
<ng-container *ngIf="taille != 0">
<mat-table [dataSource]="dataSource" (matSortChange)="triTableau($event)" matSort matSortActive="{{this.tri}}" matSortDirection="desc">
<mat-table [dataSource]="dataSource" (matSortChange)="trierTableau($event)" matSort matSortActive="{{this.tri}}" matSortDirection="desc">
<ng-container matColumnDef="collaborateur">
<mat-header-cell *matHeaderCellDef mat-sort-header disableClear>Collaborateur</mat-header-cell>
@ -49,7 +49,7 @@
[pageIndex]="numPage-1"
[pageSize]="parPage"
[pageSizeOptions]="pageOption"
(page)="updatePageInfo($event)">
(page)="updatePaginationTableau($event)">
</mat-paginator>
</ng-container>

@ -28,7 +28,7 @@ export class NotesComponent implements OnInit {
notesSubscriber: Subscription;
notesCountSubscriber: Subscription;
id: string;
idCollaborateur: string;
dataSource: MatTableDataSource<AffichageNoteDTO>;
@ -40,7 +40,7 @@ export class NotesComponent implements OnInit {
setSearch() {
this.numPage = 1;
this.updateDataSource();
this.updateDonneesTableau();
}
resetSearch() {
@ -49,40 +49,42 @@ export class NotesComponent implements OnInit {
}
ngOnInit() {
this.recupererId();
this.setIdCollaborateur();
}
recupererId() {
setIdCollaborateur() {
if(sessionStorage.getItem(cles.sessionKeyConnectee) == undefined){
setTimeout( () => this.recupererId(), 1000);
setTimeout( () => this.setIdCollaborateur(), 1000);
}
else {
const collaborateurConnecte : CollaborateurDTO = JSON.parse(sessionStorage.getItem(cles.sessionKeyConnectee));
this.id = collaborateurConnecte.id;
this.idCollaborateur = collaborateurConnecte.id;
this.chargement = false;
this.updateDataSource();
this.updateDonneesTableau();
}
}
updateDataSource() {
this.notesSubscriber = this.notesService.getNotesAuteur(this.id, this.asc, this.numPage, this.parPage, this.search, this.tri).subscribe(
updateDonneesTableau() {
this.notesSubscriber = this.notesService.getNotesAuteur(this.idCollaborateur, this.asc, this.numPage, this.parPage, this.search, this.tri).subscribe(
notes => { console.log(notes); this.dataSource = new MatTableDataSource(notes);},
err => console.log(err)
);
this.notesCountSubscriber = this.notesService.getNotesAuteurCount(this.id, this.asc, this.numPage, this.parPage, this.search, this.tri).subscribe(
this.notesCountSubscriber = this.notesService.getNotesAuteurCount(this.idCollaborateur, this.search).subscribe(
count => this.taille = count,
err => console.log(err)
);
}
updatePageInfo(event){
updatePaginationTableau(event :any){
this.parPage = event.pageSize;
this.numPage = event.pageIndex+1;
this.updateDataSource();
this.updateDonneesTableau();
}
triTableau(e) {
trierTableau(e :any) {
this.tri = e.active;
switch(e.direction) {
case "asc":
@ -92,7 +94,7 @@ export class NotesComponent implements OnInit {
this.asc = false;
break;
}
this.updateDataSource();
this.updateDonneesTableau();
}

@ -3,10 +3,10 @@ import { Routes, RouterModule } from '@angular/router';
import { NotesComponent } from "./notes.component";
import { AuthGuard } from "@shared/auth/auth.guard";
import { AuthGuard } from "../shared/auth/auth.guard";
import { paths_notes } from "@shared/utils/paths";
import { paths_notes } from "../shared/utils/paths";
import { NouvelleNoteComponent } from './nouvelle-note/nouvelle-note.component';
import { DetailsNoteComponent } from './details-note/details-note.component';
import { ModifierNoteComponent } from './modifier-note/modifier-note.component';

@ -6,6 +6,8 @@ import { CollaborateurDTO, DetailsNoteDTO, NotesService } from "@shared/api-swag
import { cles, collaborateurTypeRecherche } from "@shared/utils/cles";
import { Subscription } from "rxjs";
@Component({
selector: "nouvelle-note",
templateUrl: "./nouvelle-note.component.html"
@ -18,6 +20,9 @@ export class NouvelleNoteComponent {
collaborateurChoisi: CollaborateurDTO;
/**
* Form lié à la note à ajouter
*/
noteForm = this.fb.group(
{
titre: [""],
@ -48,6 +53,9 @@ export class NouvelleNoteComponent {
);
}
/**
* Permet d'ouvrir un popup qui va permettre de choisir le collaborateur lié à la note
*/
choixCollaborateur() {
const datas = { data: this.collaborateurChoisi, width: "80%", height: '80%'};
const dialogRef = this.dialog.open(DialogChoixCollaborateurNoteComponent, datas);
@ -89,12 +97,20 @@ export class DialogChoixCollaborateurNoteComponent {
this.dialogRef.close();
}
/**
* Enregister le choix du collaborateur de la note
*/
enregistrerChoix() {
if(this.collaborateurChoisi != undefined) {
this.dialogRef.close(this.collaborateurChoisi);
}
}
/**
* Evènement permettant de mettre à jour le collaborateur de la note avec le collaborateur reçu par le composant enfant
* @param event Evènement reçu du composant enfant
*/
choisirCollaborateur(event : any) {
this.collaborateurChoisi = event.collaborateur;

@ -6,7 +6,7 @@
<mat-step label="Choix du référent" [completed]="referentChoisi != undefined">
<p *ngIf="referentChoisi == undefined">Veuillez sélectionner un référent</p>
<p *ngIf="referentChoisi != undefined">Référent sélectionné : {{referentChoisi.nom}} {{referentChoisi.prenom}}</p>
<collaborateurs-table [typeRecherche]="typeRechercheReferent" [rechercherParBU]="rechercherParBu" [roles]="rolesReferents" [displayedColumns]="displayedColumnsReferent" [rechercherParDate]="rechercherParDate" (eventEmitter)="choixReferent($event)" ></collaborateurs-table>
<collaborateurs-table [typeRecherche]="typeRechercheReferent" [rechercherParBU]="rechercherParBu" [roles]="rolesReferents" [displayedColumns]="displayedColumnsReferent" [rechercherParDate]="rechercherParDate" (eventEmitter)="selectionnerReferent($event)" ></collaborateurs-table>
</mat-step>
<mat-step label="Choix des collaborateurs" [completed]="collaborateursSelectionnes.length != 0" >
@ -26,7 +26,7 @@
</mat-chip-list>
</ng-container>
<collaborateurs-table [typeRecherche]="typeRechercheCollaborateursEP" [rechercherParBU]="rechercherParBu" [roles]="rolesCollaborateurs" [displayedColumns]="displayedColumnsCollaborateurs" [rechercherParDate]="rechercherParDate" [collaborateursEP]="collaborateursEP" [collaborateursAjouts]="collaborateursSelectionnes" (eventEmitter)="ajoutCollaborateur($event)" ></collaborateurs-table>
<collaborateurs-table [typeRecherche]="typeRechercheCollaborateursEP" [rechercherParBU]="rechercherParBu" [roles]="rolesCollaborateurs" [displayedColumns]="displayedColumnsCollaborateurs" [rechercherParDate]="rechercherParDate" [collaborateursEP]="collaborateursEP" [collaborateursAjouts]="collaborateursSelectionnes" (eventEmitter)="selectionnerCollaborateur($event)" ></collaborateurs-table>
</mat-step>
<mat-step label="Confirmation">

@ -24,7 +24,6 @@ export class AssignationReferentComponent {
rolesReferents : string[] = ["Manager", "RA", "CP", "TL"];
typeRechercheReferent: string = collaborateurTypeRecherche.referents;
collaborateursEP: CollaborateurDTO[] = [];
@ -36,12 +35,12 @@ export class AssignationReferentComponent {
collaborateursSelectionnes: CollaborateurDTO[] = [];
/**
* Liste des colonnes du tableau à afficher pour les référents.
* Liste des colonnes à afficher lors du choix du référent
*/
displayedColumnsReferent : string[] = ["businessunit", "collaborateur"];
/**
* Liste des colonnes du tableau à afficher.
* Liste des colonnes à afficher lors du choix des collaborateurs
*/
displayedColumnsCollaborateurs : string[] = ["businessunit", "collaborateur", "datearrivee", "referent"];
@ -53,13 +52,17 @@ export class AssignationReferentComponent {
private snackBar: MatSnackBar) {
}
choixReferent(event: any) {
selectionnerReferent(event: any) {
console.log(event);
this.referentChoisi = event.collaborateur;
this.setCollaborateurEP();
this.setCollaborateursEP();
}
setCollaborateurEP() {
/**
* Récupérer la liste des collaborateurs EP du référent sélectionné
*/
setCollaborateursEP() {
this.collaborateurSubscription = this.collaborateurService.getCollaborateursByReferent(this.referentChoisi.id).subscribe(
collaborateurs => {
this.collaborateursEP = collaborateurs;
@ -69,7 +72,12 @@ export class AssignationReferentComponent {
);
}
ajoutCollaborateur(event:any) {
/**
* Permet de sélectionner un collaborateur et de l'ajouter ou l'enlever de la liste des collaborateurs à ajouter si il n'est pas déjà un collaborateur EP du référent
* @param event contient le collaborateur qui a é récupéré
*/
selectionnerCollaborateur(event:any) {
if(event.type != "collaborateur")
return;
if(event.collaborateur.id == this.referentChoisi.id) {
@ -95,6 +103,7 @@ export class AssignationReferentComponent {
this.collaborateursSelectionnes = this.collaborateursSelectionnes.filter(c => c.id != collaborateur.id);
}
mettreAJourReferentEP() {
const referentEP :ReferentEPDTO = {
idReferent: this.referentChoisi.id,

@ -5,20 +5,15 @@ import { Routes, RouterModule } from '@angular/router';
import { ReferentsComponent } from "./referents.component";
import { DetailsReferentComponent } from "./details-referent/details-referent.component";
import { paths_referents } from "@shared/utils/paths";
import { paths_referents } from "../shared/utils/paths";
import { AuthGuard } from '@shared/auth/auth.guard';
import { AuthGuard } from '../shared/auth/auth.guard';
import { AssignationReferentComponent } from './assignation-referent/assignation-referent.component';
/**
* Routes du module référents
*/
const routes: Routes = [
{ path:'',
component: ReferentsComponent,
pathMatch: 'full',
canActivate: [AuthGuard]
},
{
path:paths_referents.assignation,
component: AssignationReferentComponent,
@ -28,6 +23,11 @@ const routes: Routes = [
path:paths_referents.get,
component: DetailsReferentComponent,
canActivate: [AuthGuard]
},
{ path:'',
component: ReferentsComponent,
pathMatch: 'full',
canActivate: [AuthGuard]
}
];

@ -46,7 +46,7 @@ export class AffichageDetailsCollaborateurComponent implements OnInit{
err => console.log(err)
);
this.participationFormationSubscription = this.participationFormationService.getParticipationByCollaborateur(this.idCollaborateur).subscribe(
this.participationFormationSubscription = this.participationFormationService.getParticipationsByCollaborateur(this.idCollaborateur).subscribe(
participationsFormation => this.participationsFormation = participationsFormation,
err => console.log(err)
);
@ -62,7 +62,7 @@ export class AffichageDetailsCollaborateurComponent implements OnInit{
}
}
ouvrirEP(event) {
ouvrirEP(event :any) {
if(event.type == "ep")
this.router.navigate(["/ep", event.ep.id]);
}

@ -14,4 +14,4 @@
</ng-container>
<p *ngIf="collaborateursSelectionnes.length == 0">Veuillez sélectionner au moins un collaborateur</p>
<button mat-raised-button color="primary" (click)="annuler()">Annuler</button>
<collaborateurs-table [rechercherParBU]="rechercherParBU" [rechercherParDate]="rechercherParDate" [roles]="roles" [displayedColumns]="displayedColumns" [typeRecherche]="typeRecherche" (eventEmitter)="ajoutCollaborateur($event)" [collaborateursEP]="collaborateursEP" [collaborateursAjouts]="collaborateursSelectionnes" ></collaborateurs-table>
<collaborateurs-table [rechercherParBU]="rechercherParBU" [rechercherParDate]="rechercherParDate" [roles]="roles" [displayedColumns]="displayedColumns" [typeRecherche]="typeRecherche" (eventEmitter)="selectionnerCollaborateur($event)" [collaborateursEP]="collaborateursEP" [collaborateursAjouts]="collaborateursSelectionnes" ></collaborateurs-table>

@ -31,7 +31,7 @@ export class DialogAssignationRapideReferentComponent {
this.referentChoisi = data.referent;
}
selectionnerReferent(event) {
selectionnerReferent(event :any) {
this.referentChoisi = event.collaborateur;
}
@ -100,8 +100,11 @@ export class DialogAssignationRapideCollaborateursComponent implements OnInit{
);
}
ajoutCollaborateur(event:any) {
/**
* Permet de sélectionner un collaborateur et de l'ajouter ou l'enlever de la liste des collaborateurs à ajouter si il n'est pas déjà un collaborateur EP du référent
* @param event contient le collaborateur qui a é récupéré
*/
selectionnerCollaborateur(event:any) {
if(event.type != "collaborateur")
return;
if(event.collaborateur.id == this.data.id) {
@ -127,11 +130,6 @@ export class DialogAssignationRapideCollaborateursComponent implements OnInit{
this.collaborateursSelectionnes = this.collaborateursSelectionnes.filter(c => c.id != collaborateur.id);
}
ajouterCollaborateur(event) {
if(event.type == "collaborateur") {
}
}
mettreAJourReferentEP() {
const referentEP : ReferentEPDTO = {

@ -2,29 +2,29 @@
<mat-spinner></mat-spinner>
</ng-container>
<ng-container *ngIf="!chargement">
<ng-container *ngIf="ep == undefined">
<ng-container *ngIf="prochainEP == undefined">
<p> Aucun prochain EP n'a été trouvé </p>
</ng-container>
<ng-container *ngIf="ep != undefined">
<ng-container *ngIf="ep.statut == statutEP.cree">
<p> Prochain {{ep.type}} disponible pour saisie le {{ ep.dateDisponibilite | date: "dd/MM/yyyy" }} </p>
<ng-container *ngIf="prochainEP != undefined">
<ng-container *ngIf="prochainEP.statut == statutEP.cree">
<p> Prochain {{prochainEP.type}} disponible pour saisie le {{ prochainEP.dateDisponibilite | date: "dd/MM/yyyy" }} </p>
</ng-container>
<ng-container *ngIf="ep.statut != statutEP.cree">
<p> {{ep.type}} : {{ afficherStatutEP(ep.statut) }} </p>
<p> Disponible depuis le {{ ep.dateDisponibilite | date : "dd/MM/yyyy" }}</p>
<p> Date d'entretien le {{ ep.datePrevisionnelle | date : "dd/MM/yyyy" }}</p>
<ng-container *ngIf="ep.referent != undefined">
<p> Référent EP : {{ep.referent.nom}} {{ep.referent.prenom}} </p>
<ng-container *ngIf="prochainEP.statut != statutEP.cree">
<p> {{prochainEP.type}} : {{ afficherStatutEP(prochainEP.statut) }} </p>
<p> Disponible depuis le {{ prochainEP.dateDisponibilite | date : "dd/MM/yyyy" }}</p>
<p> Date d'entretien le {{ prochainEP.datePrevisionnelle | date : "dd/MM/yyyy" }}</p>
<ng-container *ngIf="prochainEP.referent != undefined">
<p> Référent EP : {{prochainEP.referent.nom}} {{prochainEP.referent.prenom}} </p>
</ng-container>
<ng-container *ngIf="ep.referent == undefined">
<ng-container *ngIf="prochainEP.referent == undefined">
<p> Il n'y a actuellement aucun référent pour cet EP </p>
</ng-container>
<button mat-stroked-button *ngIf="ep.statut != statutEP.Disponible" [routerLink]="['/ep',ep.id]">Accéder à l'EP</button>
<button mat-stroked-button *ngIf="prochainEP.statut != statutEP.Disponible" [routerLink]="['/ep',prochainEP.id]">Accéder à l'EP</button>
</ng-container>
</ng-container>

@ -16,7 +16,7 @@ export class ProchainEpComponent implements OnInit {
chargement: boolean = true;
ep : EpInformationDTO;
prochainEP : EpInformationDTO;
epSubscription: Subscription;
@ -28,7 +28,7 @@ export class ProchainEpComponent implements OnInit {
this.epSubscription = this.epService.getProchainEPCollaborateur(this.idCollaborateur).subscribe(
ep => {
console.log(ep);
this.ep = ep;
this.prochainEP = ep;
this.chargement = false;
},
err => {

@ -159,7 +159,7 @@ export class CollaborateursService {
* @param idBUs liste des ids des BU auxquelles les données sont rattachées
* @param asc Indique si les données sont récupérées dans l&#x27;ordre croissant ou non
* @param numPage Numéro de la page du tableau à afficher
* @param parPAge Nombre délément maximum à afficher dans le tableau
* @param parPage Nombre délément maximum à afficher dans le tableau
* @param texte Texte permettant de filtrer les données
* @param tri Colonne du tableau sur lequel le tri devra être effectué
* @param dateDebut Date à partir de laquelle les données son récupérées
@ -167,10 +167,10 @@ export class CollaborateursService {
* @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
* @param reportProgress flag to report request and response progress.
*/
public getCollaborateurs(roles?: Array<string>, idBUs?: Array<number>, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, dateDebut?: Date, dateFin?: Date, observe?: 'body', reportProgress?: boolean): Observable<Array<CollaborateurDTO>>;
public getCollaborateurs(roles?: Array<string>, idBUs?: Array<number>, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, dateDebut?: Date, dateFin?: Date, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Array<CollaborateurDTO>>>;
public getCollaborateurs(roles?: Array<string>, idBUs?: Array<number>, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, dateDebut?: Date, dateFin?: Date, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Array<CollaborateurDTO>>>;
public getCollaborateurs(roles?: Array<string>, idBUs?: Array<number>, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, dateDebut?: Date, dateFin?: Date, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {
public getCollaborateurs(roles?: Array<string>, idBUs?: Array<number>, asc?: boolean, numPage?: number, parPage?: number, texte?: string, tri?: string, dateDebut?: Date, dateFin?: Date, observe?: 'body', reportProgress?: boolean): Observable<Array<CollaborateurDTO>>;
public getCollaborateurs(roles?: Array<string>, idBUs?: Array<number>, asc?: boolean, numPage?: number, parPage?: number, texte?: string, tri?: string, dateDebut?: Date, dateFin?: Date, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Array<CollaborateurDTO>>>;
public getCollaborateurs(roles?: Array<string>, idBUs?: Array<number>, asc?: boolean, numPage?: number, parPage?: number, texte?: string, tri?: string, dateDebut?: Date, dateFin?: Date, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Array<CollaborateurDTO>>>;
public getCollaborateurs(roles?: Array<string>, idBUs?: Array<number>, asc?: boolean, numPage?: number, parPage?: number, texte?: string, tri?: string, dateDebut?: Date, dateFin?: Date, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {
@ -198,8 +198,8 @@ export class CollaborateursService {
if (numPage !== undefined && numPage !== null) {
queryParameters = queryParameters.set('numPage', <any>numPage);
}
if (parPAge !== undefined && parPAge !== null) {
queryParameters = queryParameters.set('parPAge', <any>parPAge);
if (parPage !== undefined && parPage !== null) {
queryParameters = queryParameters.set('parPage', <any>parPage);
}
if (texte !== undefined && texte !== null) {
queryParameters = queryParameters.set('texte', <any>texte);
@ -253,16 +253,16 @@ export class CollaborateursService {
* @param idReferent Id d&#x27;un référent
* @param asc Indique si les données sont récupérées dans l&#x27;ordre croissant ou non
* @param numPage Numéro de la page du tableau à afficher
* @param parPAge Nombre délément maximum à afficher dans le tableau
* @param parPage Nombre délément maximum à afficher dans le tableau
* @param texte Texte permettant de filtrer les données
* @param tri Colonne du tableau sur lequel le tri devra être effectué
* @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
* @param reportProgress flag to report request and response progress.
*/
public getCollaborateursByReferent(idReferent: string, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, observe?: 'body', reportProgress?: boolean): Observable<Array<CollaborateurDTO>>;
public getCollaborateursByReferent(idReferent: string, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Array<CollaborateurDTO>>>;
public getCollaborateursByReferent(idReferent: string, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Array<CollaborateurDTO>>>;
public getCollaborateursByReferent(idReferent: string, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {
public getCollaborateursByReferent(idReferent: string, asc?: boolean, numPage?: number, parPage?: number, texte?: string, tri?: string, observe?: 'body', reportProgress?: boolean): Observable<Array<CollaborateurDTO>>;
public getCollaborateursByReferent(idReferent: string, asc?: boolean, numPage?: number, parPage?: number, texte?: string, tri?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Array<CollaborateurDTO>>>;
public getCollaborateursByReferent(idReferent: string, asc?: boolean, numPage?: number, parPage?: number, texte?: string, tri?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Array<CollaborateurDTO>>>;
public getCollaborateursByReferent(idReferent: string, asc?: boolean, numPage?: number, parPage?: number, texte?: string, tri?: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {
if (idReferent === null || idReferent === undefined) {
throw new Error('Required parameter idReferent was null or undefined when calling getCollaborateursByReferent.');
@ -280,8 +280,8 @@ export class CollaborateursService {
if (numPage !== undefined && numPage !== null) {
queryParameters = queryParameters.set('numPage', <any>numPage);
}
if (parPAge !== undefined && parPAge !== null) {
queryParameters = queryParameters.set('parPAge', <any>parPAge);
if (parPage !== undefined && parPage !== null) {
queryParameters = queryParameters.set('parPage', <any>parPage);
}
if (texte !== undefined && texte !== null) {
queryParameters = queryParameters.set('texte', <any>texte);
@ -327,44 +327,24 @@ export class CollaborateursService {
*
* Récupérer le nombre total de collaborateurs dun référent.
* @param idReferent Id d&#x27;un référent
* @param asc Indique si les données sont récupérées dans l&#x27;ordre croissant ou non
* @param numPage Numéro de la page du tableau à afficher
* @param parPAge Nombre délément maximum à afficher dans le tableau
* @param texte Texte permettant de filtrer les données
* @param tri Colonne du tableau sur lequel le tri devra être effectué
* @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
* @param reportProgress flag to report request and response progress.
*/
public getCollaborateursByReferentCount(idReferent: string, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, observe?: 'body', reportProgress?: boolean): Observable<number>;
public getCollaborateursByReferentCount(idReferent: string, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<number>>;
public getCollaborateursByReferentCount(idReferent: string, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<number>>;
public getCollaborateursByReferentCount(idReferent: string, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {
public getCollaborateursByReferentCount(idReferent: string, texte?: string, observe?: 'body', reportProgress?: boolean): Observable<number>;
public getCollaborateursByReferentCount(idReferent: string, texte?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<number>>;
public getCollaborateursByReferentCount(idReferent: string, texte?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<number>>;
public getCollaborateursByReferentCount(idReferent: string, texte?: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {
if (idReferent === null || idReferent === undefined) {
throw new Error('Required parameter idReferent was null or undefined when calling getCollaborateursByReferentCount.');
}
let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});
if (asc !== undefined && asc !== null) {
queryParameters = queryParameters.set('asc', <any>asc);
}
if (numPage !== undefined && numPage !== null) {
queryParameters = queryParameters.set('numPage', <any>numPage);
}
if (parPAge !== undefined && parPAge !== null) {
queryParameters = queryParameters.set('parPAge', <any>parPAge);
}
if (texte !== undefined && texte !== null) {
queryParameters = queryParameters.set('texte', <any>texte);
}
if (tri !== undefined && tri !== null) {
queryParameters = queryParameters.set('tri', <any>tri);
}
let headers = this.defaultHeaders;
@ -404,24 +384,16 @@ export class CollaborateursService {
* Récupérer le nombre total de collaborateurs.
* @param roles Liste des rôles auquels appartiennent les collaborateurs (e.g [CP, Commerciaux,RA])
* @param idBUs liste des ids des BU auxquelles les données sont rattachées
* @param asc Indique si les données sont récupérées dans l&#x27;ordre croissant ou non
* @param numPage Numéro de la page du tableau à afficher
* @param parPAge Nombre délément maximum à afficher dans le tableau
* @param texte Texte permettant de filtrer les données
* @param tri Colonne du tableau sur lequel le tri devra être effectué
* @param dateDebut Date à partir de laquelle les données son récupérées
* @param dateFin Date jusqu&#x27;à laquelle les données sont récupérées
* @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
* @param reportProgress flag to report request and response progress.
*/
public getCollaborateursCount(roles?: Array<string>, idBUs?: Array<number>, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, dateDebut?: Date, dateFin?: Date, observe?: 'body', reportProgress?: boolean): Observable<number>;
public getCollaborateursCount(roles?: Array<string>, idBUs?: Array<number>, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, dateDebut?: Date, dateFin?: Date, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<number>>;
public getCollaborateursCount(roles?: Array<string>, idBUs?: Array<number>, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, dateDebut?: Date, dateFin?: Date, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<number>>;
public getCollaborateursCount(roles?: Array<string>, idBUs?: Array<number>, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, dateDebut?: Date, dateFin?: Date, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {
public getCollaborateursCount(roles?: Array<string>, idBUs?: Array<number>, texte?: string, dateDebut?: Date, dateFin?: Date, observe?: 'body', reportProgress?: boolean): Observable<number>;
public getCollaborateursCount(roles?: Array<string>, idBUs?: Array<number>, texte?: string, dateDebut?: Date, dateFin?: Date, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<number>>;
public getCollaborateursCount(roles?: Array<string>, idBUs?: Array<number>, texte?: string, dateDebut?: Date, dateFin?: Date, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<number>>;
public getCollaborateursCount(roles?: Array<string>, idBUs?: Array<number>, texte?: string, dateDebut?: Date, dateFin?: Date, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {
@ -439,21 +411,9 @@ export class CollaborateursService {
queryParameters = queryParameters.append('idBUs', <any>element);
})
}
if (asc !== undefined && asc !== null) {
queryParameters = queryParameters.set('asc', <any>asc);
}
if (numPage !== undefined && numPage !== null) {
queryParameters = queryParameters.set('numPage', <any>numPage);
}
if (parPAge !== undefined && parPAge !== null) {
queryParameters = queryParameters.set('parPAge', <any>parPAge);
}
if (texte !== undefined && texte !== null) {
queryParameters = queryParameters.set('texte', <any>texte);
}
if (tri !== undefined && tri !== null) {
queryParameters = queryParameters.set('tri', <any>tri);
}
if (dateDebut !== undefined && dateDebut !== null) {
queryParameters = queryParameters.set('dateDebut', <any>dateDebut.toISOString());
}

@ -24,6 +24,7 @@ import { OrigineDemandeFormationDTO } from '../model/origineDemandeFormationDTO'
import { BASE_PATH, COLLECTION_FORMATS } from '../variables';
import { Configuration } from '../configuration';
import { StatutEp } from '../model/statutEp';
@Injectable()
@ -165,9 +166,10 @@ export class DemandesFormationService {
* Récupérer la liste des demandes de formation.
* @param etatsDemande Liste des états des demandes à afficher
* @param idBUs liste des ids des BU auxquelles les données sont rattachées
* @param statutsEp Liste des statuts d&#x27;EP auxquelles les données sont rattachées
* @param asc Indique si les données sont récupérées dans l&#x27;ordre croissant ou non
* @param numPage Numéro de la page du tableau à afficher
* @param parPAge Nombre délément maximum à afficher dans le tableau
* @param parPage Nombre délément maximum à afficher dans le tableau
* @param texte Texte permettant de filtrer les données
* @param tri Colonne du tableau sur lequel le tri devra être effectué
* @param dateDebut Date à partir de laquelle les données son récupérées
@ -175,10 +177,10 @@ export class DemandesFormationService {
* @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
* @param reportProgress flag to report request and response progress.
*/
public getDemandesFormation(etatsDemande?: Array<EtatDemande>, idBUs?: Array<number>, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, dateDebut?: Date, dateFin?: Date, observe?: 'body', reportProgress?: boolean): Observable<Array<DemandeFormationDTO>>;
public getDemandesFormation(etatsDemande?: Array<EtatDemande>, idBUs?: Array<number>, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, dateDebut?: Date, dateFin?: Date, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Array<DemandeFormationDTO>>>;
public getDemandesFormation(etatsDemande?: Array<EtatDemande>, idBUs?: Array<number>, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, dateDebut?: Date, dateFin?: Date, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Array<DemandeFormationDTO>>>;
public getDemandesFormation(etatsDemande?: Array<EtatDemande>, idBUs?: Array<number>, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, dateDebut?: Date, dateFin?: Date, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {
public getDemandesFormation(etatsDemande?: Array<EtatDemande>, idBUs?: Array<number>, statutsEp?: Array<StatutEp>, asc?: boolean, numPage?: number, parPage?: number, texte?: string, tri?: string, dateDebut?: Date, dateFin?: Date, observe?: 'body', reportProgress?: boolean): Observable<Array<DemandeFormationDTO>>;
public getDemandesFormation(etatsDemande?: Array<EtatDemande>, idBUs?: Array<number>, statutsEp?: Array<StatutEp>, asc?: boolean, numPage?: number, parPage?: number, texte?: string, tri?: string, dateDebut?: Date, dateFin?: Date, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Array<DemandeFormationDTO>>>;
public getDemandesFormation(etatsDemande?: Array<EtatDemande>, idBUs?: Array<number>, statutsEp?: Array<StatutEp>, asc?: boolean, numPage?: number, parPage?: number, texte?: string, tri?: string, dateDebut?: Date, dateFin?: Date, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Array<DemandeFormationDTO>>>;
public getDemandesFormation(etatsDemande?: Array<EtatDemande>, idBUs?: Array<number>, statutsEp?: Array<StatutEp>, asc?: boolean, numPage?: number, parPage?: number, texte?: string, tri?: string, dateDebut?: Date, dateFin?: Date, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {
@ -200,14 +202,19 @@ export class DemandesFormationService {
queryParameters = queryParameters.append('idBUs', <any>element);
})
}
if (statutsEp) {
statutsEp.forEach((element) => {
queryParameters = queryParameters.append('statutsEp', <any>element);
})
}
if (asc !== undefined && asc !== null) {
queryParameters = queryParameters.set('asc', <any>asc);
}
if (numPage !== undefined && numPage !== null) {
queryParameters = queryParameters.set('numPage', <any>numPage);
}
if (parPAge !== undefined && parPAge !== null) {
queryParameters = queryParameters.set('parPAge', <any>parPAge);
if (parPage !== undefined && parPage !== null) {
queryParameters = queryParameters.set('parPage', <any>parPage);
}
if (texte !== undefined && texte !== null) {
queryParameters = queryParameters.set('texte', <any>texte);
@ -260,20 +267,20 @@ export class DemandesFormationService {
* Récupérer le nombre total de demandes de formation.
* @param etatsDemande Liste des états des demandes à afficher
* @param idBUs liste des ids des BU auxquelles les données sont rattachées
* @param statutsEp Liste des statuts d&#x27;EP auxquelles les données sont rattachées
* @param asc Indique si les données sont récupérées dans l&#x27;ordre croissant ou non
* @param numPage Numéro de la page du tableau à afficher
* @param parPAge Nombre délément maximum à afficher dans le tableau
* @param parPage Nombre délément maximum à afficher dans le tableau
* @param texte Texte permettant de filtrer les données
* @param tri Colonne du tableau sur lequel le tri devra être effectué
* @param dateDebut Date à partir de laquelle les données son récupérées
* @param dateFin Date jusqu&#x27;à laquelle les données sont récupérées
* @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
* @param reportProgress flag to report request and response progress.
*/
public getDemandesFormationCount(etatsDemande?: Array<EtatDemande>, idBUs?: Array<number>, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, dateDebut?: Date, dateFin?: Date, observe?: 'body', reportProgress?: boolean): Observable<number>;
public getDemandesFormationCount(etatsDemande?: Array<EtatDemande>, idBUs?: Array<number>, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, dateDebut?: Date, dateFin?: Date, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<number>>;
public getDemandesFormationCount(etatsDemande?: Array<EtatDemande>, idBUs?: Array<number>, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, dateDebut?: Date, dateFin?: Date, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<number>>;
public getDemandesFormationCount(etatsDemande?: Array<EtatDemande>, idBUs?: Array<number>, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, dateDebut?: Date, dateFin?: Date, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {
public getDemandesFormationCount(etatsDemande?: Array<EtatDemande>, idBUs?: Array<number>, statutsEp?: Array<StatutEp>, asc?: boolean, numPage?: number, parPage?: number, texte?: string, tri?: string, dateDebut?: Date, dateFin?: Date, observe?: 'body', reportProgress?: boolean): Observable<number>;
public getDemandesFormationCount(etatsDemande?: Array<EtatDemande>, idBUs?: Array<number>, statutsEp?: Array<StatutEp>, asc?: boolean, numPage?: number, parPage?: number, texte?: string, tri?: string, dateDebut?: Date, dateFin?: Date, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<number>>;
public getDemandesFormationCount(etatsDemande?: Array<EtatDemande>, idBUs?: Array<number>, statutsEp?: Array<StatutEp>, asc?: boolean, numPage?: number, parPage?: number, texte?: string, tri?: string, dateDebut?: Date, dateFin?: Date, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<number>>;
public getDemandesFormationCount(etatsDemande?: Array<EtatDemande>, idBUs?: Array<number>, statutsEp?: Array<StatutEp>, asc?: boolean, numPage?: number, parPage?: number, texte?: string, tri?: string, dateDebut?: Date, dateFin?: Date, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {
@ -295,21 +302,23 @@ export class DemandesFormationService {
queryParameters = queryParameters.append('idBUs', <any>element);
})
}
if (statutsEp) {
statutsEp.forEach((element) => {
queryParameters = queryParameters.append('statutsEp', <any>element);
})
}
if (asc !== undefined && asc !== null) {
queryParameters = queryParameters.set('asc', <any>asc);
}
if (numPage !== undefined && numPage !== null) {
queryParameters = queryParameters.set('numPage', <any>numPage);
}
if (parPAge !== undefined && parPAge !== null) {
queryParameters = queryParameters.set('parPAge', <any>parPAge);
if (parPage !== undefined && parPage !== null) {
queryParameters = queryParameters.set('parPAge', <any>parPage);
}
if (texte !== undefined && texte !== null) {
queryParameters = queryParameters.set('texte', <any>texte);
}
if (tri !== undefined && tri !== null) {
queryParameters = queryParameters.set('tri', <any>tri);
}
if (dateDebut !== undefined && dateDebut !== null) {
queryParameters = queryParameters.set('dateDebut', <any>dateDebut.toISOString());
}

@ -60,20 +60,20 @@ export class EngagementsService {
/**
*
* Récupérer la liste des engagements.
* @param etatsEngagement Etats de l&#x27;engagement
* @param idBUs liste des ids des BU auxquelles les données sont rattachées
* @param etatsEngagement Etats de l&#x27;engagement
* @param asc Indique si les données sont récupérées dans l&#x27;ordre croissant ou non
* @param numPage Numéro de la page du tableau à afficher
* @param parPAge Nombre délément maximum à afficher dans le tableau
* @param parPage Nombre délément maximum à afficher dans le tableau
* @param texte Texte permettant de filtrer les données
* @param tri Colonne du tableau sur lequel le tri devra être effectué
* @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
* @param reportProgress flag to report request and response progress.
*/
public getEngagements(etatsEngagement?: Array<EtatEngagement>, idBUs?: Array<number>, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, observe?: 'body', reportProgress?: boolean): Observable<Array<EngagementDTO>>;
public getEngagements(etatsEngagement?: Array<EtatEngagement>, idBUs?: Array<number>, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Array<EngagementDTO>>>;
public getEngagements(etatsEngagement?: Array<EtatEngagement>, idBUs?: Array<number>, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Array<EngagementDTO>>>;
public getEngagements(etatsEngagement?: Array<EtatEngagement>, idBUs?: Array<number>, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {
public getEngagements(idBUs?: Array<number>, etatsEngagement?: Array<EtatEngagement>, asc?: boolean, numPage?: number, parPage?: number, texte?: string, tri?: string, observe?: 'body', reportProgress?: boolean): Observable<Array<EngagementDTO>>;
public getEngagements(idBUs?: Array<number>, etatsEngagement?: Array<EtatEngagement>, asc?: boolean, numPage?: number, parPage?: number, texte?: string, tri?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Array<EngagementDTO>>>;
public getEngagements(idBUs?: Array<number>, etatsEngagement?: Array<EtatEngagement>, asc?: boolean, numPage?: number, parPage?: number, texte?: string, tri?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Array<EngagementDTO>>>;
public getEngagements(idBUs?: Array<number>, etatsEngagement?: Array<EtatEngagement>, asc?: boolean, numPage?: number, parPage?: number, texte?: string, tri?: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {
@ -83,24 +83,24 @@ export class EngagementsService {
let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});
if (etatsEngagement) {
etatsEngagement.forEach((element) => {
queryParameters = queryParameters.append('etatsEngagement', <any>element);
})
}
if (idBUs) {
idBUs.forEach((element) => {
queryParameters = queryParameters.append('idBUs', <any>element);
})
}
if (etatsEngagement) {
etatsEngagement.forEach((element) => {
queryParameters = queryParameters.append('etatsEngagement', <any>element);
})
}
if (asc !== undefined && asc !== null) {
queryParameters = queryParameters.set('asc', <any>asc);
}
if (numPage !== undefined && numPage !== null) {
queryParameters = queryParameters.set('numPage', <any>numPage);
}
if (parPAge !== undefined && parPAge !== null) {
queryParameters = queryParameters.set('parPAge', <any>parPAge);
if (parPage !== undefined && parPage !== null) {
queryParameters = queryParameters.set('parPage', <any>parPage);
}
if (texte !== undefined && texte !== null) {
queryParameters = queryParameters.set('texte', <any>texte);
@ -145,54 +145,34 @@ export class EngagementsService {
/**
*
* Récupérer le nombre total dengagements.
* @param etatsEngagement Etats de l&#x27;engagement
* @param idBUs liste des ids des BU auxquelles les données sont rattachées
* @param asc Indique si les données sont récupérées dans l&#x27;ordre croissant ou non
* @param numPage Numéro de la page du tableau à afficher
* @param parPAge Nombre délément maximum à afficher dans le tableau
* @param etatsEngagement Etats de l&#x27;engagement
* @param texte Texte permettant de filtrer les données
* @param tri Colonne du tableau sur lequel le tri devra être effectué
* @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
* @param reportProgress flag to report request and response progress.
*/
public getEngagementsCount(etatsEngagement?: Array<EtatEngagement>, idBUs?: Array<number>, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, observe?: 'body', reportProgress?: boolean): Observable<number>;
public getEngagementsCount(etatsEngagement?: Array<EtatEngagement>, idBUs?: Array<number>, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<number>>;
public getEngagementsCount(etatsEngagement?: Array<EtatEngagement>, idBUs?: Array<number>, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<number>>;
public getEngagementsCount(etatsEngagement?: Array<EtatEngagement>, idBUs?: Array<number>, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {
public getEngagementsCount(idBUs?: Array<number>, etatsEngagement?: Array<EtatEngagement>, texte?: string, observe?: 'body', reportProgress?: boolean): Observable<number>;
public getEngagementsCount(idBUs?: Array<number>, etatsEngagement?: Array<EtatEngagement>, texte?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<number>>;
public getEngagementsCount(idBUs?: Array<number>, etatsEngagement?: Array<EtatEngagement>, texte?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<number>>;
public getEngagementsCount(idBUs?: Array<number>, etatsEngagement?: Array<EtatEngagement>, texte?: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {
let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});
if (etatsEngagement) {
etatsEngagement.forEach((element) => {
queryParameters = queryParameters.append('etatsEngagement', <any>element);
})
}
if (idBUs) {
idBUs.forEach((element) => {
queryParameters = queryParameters.append('idBUs', <any>element);
})
}
if (asc !== undefined && asc !== null) {
queryParameters = queryParameters.set('asc', <any>asc);
}
if (numPage !== undefined && numPage !== null) {
queryParameters = queryParameters.set('numPage', <any>numPage);
}
if (parPAge !== undefined && parPAge !== null) {
queryParameters = queryParameters.set('parPAge', <any>parPAge);
if (etatsEngagement) {
etatsEngagement.forEach((element) => {
queryParameters = queryParameters.append('etatsEngagement', <any>element);
})
}
if (texte !== undefined && texte !== null) {
queryParameters = queryParameters.set('texte', <any>texte);
}
if (tri !== undefined && tri !== null) {
queryParameters = queryParameters.set('tri', <any>tri);
}
let headers = this.defaultHeaders;

@ -218,7 +218,7 @@ export class FormationsService {
* @param idStatuts liste des ids des statuts des formations à récupérer
* @param asc Indique si les données sont récupérées dans l&#x27;ordre croissant ou non
* @param numPage Numéro de la page du tableau à afficher
* @param parPAge Nombre délément maximum à afficher dans le tableau
* @param parPage Nombre délément maximum à afficher dans le tableau
* @param texte Texte permettant de filtrer les données
* @param tri Colonne du tableau sur lequel le tri devra être effectué
* @param dateDebut Date à partir de laquelle les données son récupérées
@ -226,10 +226,10 @@ export class FormationsService {
* @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
* @param reportProgress flag to report request and response progress.
*/
public getFormations(idAgence?: number, idStatuts?: Array<number>, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, dateDebut?: Date, dateFin?: Date, observe?: 'body', reportProgress?: boolean): Observable<Array<FormationDetailsDTO>>;
public getFormations(idAgence?: number, idStatuts?: Array<number>, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, dateDebut?: Date, dateFin?: Date, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Array<FormationDetailsDTO>>>;
public getFormations(idAgence?: number, idStatuts?: Array<number>, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, dateDebut?: Date, dateFin?: Date, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Array<FormationDetailsDTO>>>;
public getFormations(idAgence?: number, idStatuts?: Array<number>, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, dateDebut?: Date, dateFin?: Date, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {
public getFormations(idAgence?: number, idStatuts?: Array<number>, asc?: boolean, numPage?: number, parPage?: number, texte?: string, tri?: string, dateDebut?: Date, dateFin?: Date, observe?: 'body', reportProgress?: boolean): Observable<Array<FormationDetailsDTO>>;
public getFormations(idAgence?: number, idStatuts?: Array<number>, asc?: boolean, numPage?: number, parPage?: number, texte?: string, tri?: string, dateDebut?: Date, dateFin?: Date, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Array<FormationDetailsDTO>>>;
public getFormations(idAgence?: number, idStatuts?: Array<number>, asc?: boolean, numPage?: number, parPage?: number, texte?: string, tri?: string, dateDebut?: Date, dateFin?: Date, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Array<FormationDetailsDTO>>>;
public getFormations(idAgence?: number, idStatuts?: Array<number>, asc?: boolean, numPage?: number, parPage?: number, texte?: string, tri?: string, dateDebut?: Date, dateFin?: Date, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {
@ -255,8 +255,8 @@ export class FormationsService {
if (numPage !== undefined && numPage !== null) {
queryParameters = queryParameters.set('numPage', <any>numPage);
}
if (parPAge !== undefined && parPAge !== null) {
queryParameters = queryParameters.set('parPAge', <any>parPAge);
if (parPage !== undefined && parPage !== null) {
queryParameters = queryParameters.set('parPage', <any>parPage);
}
if (texte !== undefined && texte !== null) {
queryParameters = queryParameters.set('texte', <any>texte);
@ -309,24 +309,16 @@ export class FormationsService {
* Récupérer le nombre total de formations.
* @param idAgence id de l&#x27;agence à laquelle sont rattachées les données à récupérer
* @param idStatuts liste des ids des statuts des formations à récupérer
* @param asc Indique si les données sont récupérées dans l&#x27;ordre croissant ou non
* @param numPage Numéro de la page du tableau à afficher
* @param parPAge Nombre délément maximum à afficher dans le tableau
* @param texte Texte permettant de filtrer les données
* @param tri Colonne du tableau sur lequel le tri devra être effectué
* @param dateDebut Date à partir de laquelle les données son récupérées
* @param dateFin Date jusqu&#x27;à laquelle les données sont récupérées
* @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
* @param reportProgress flag to report request and response progress.
*/
public getFormationsCount(idAgence?: number, idStatuts?: Array<number>, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, dateDebut?: Date, dateFin?: Date, observe?: 'body', reportProgress?: boolean): Observable<number>;
public getFormationsCount(idAgence?: number, idStatuts?: Array<number>, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, dateDebut?: Date, dateFin?: Date, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<number>>;
public getFormationsCount(idAgence?: number, idStatuts?: Array<number>, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, dateDebut?: Date, dateFin?: Date, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<number>>;
public getFormationsCount(idAgence?: number, idStatuts?: Array<number>, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, dateDebut?: Date, dateFin?: Date, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {
public getFormationsCount(idAgence?: number, idStatuts?: Array<number>, texte?: string, dateDebut?: Date, dateFin?: Date, observe?: 'body', reportProgress?: boolean): Observable<number>;
public getFormationsCount(idAgence?: number, idStatuts?: Array<number>, texte?: string, dateDebut?: Date, dateFin?: Date, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<number>>;
public getFormationsCount(idAgence?: number, idStatuts?: Array<number>, texte?: string, dateDebut?: Date, dateFin?: Date, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<number>>;
public getFormationsCount(idAgence?: number, idStatuts?: Array<number>, texte?: string, dateDebut?: Date, dateFin?: Date, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {
@ -342,21 +334,9 @@ export class FormationsService {
queryParameters = queryParameters.append('idStatuts', <any>element);
})
}
if (asc !== undefined && asc !== null) {
queryParameters = queryParameters.set('asc', <any>asc);
}
if (numPage !== undefined && numPage !== null) {
queryParameters = queryParameters.set('numPage', <any>numPage);
}
if (parPAge !== undefined && parPAge !== null) {
queryParameters = queryParameters.set('parPAge', <any>parPAge);
}
if (texte !== undefined && texte !== null) {
queryParameters = queryParameters.set('texte', <any>texte);
}
if (tri !== undefined && tri !== null) {
queryParameters = queryParameters.set('tri', <any>tri);
}
if (dateDebut !== undefined && dateDebut !== null) {
queryParameters = queryParameters.set('dateDebut', <any>dateDebut.toISOString());
}

@ -213,16 +213,16 @@ export class NotesService {
* @param idAuteur Id de l&#x27;auteur
* @param asc Indique si les données sont récupérées dans l&#x27;ordre croissant ou non
* @param numPage Numéro de la page du tableau à afficher
* @param parPAge Nombre délément maximum à afficher dans le tableau
* @param parPage Nombre délément maximum à afficher dans le tableau
* @param texte Texte permettant de filtrer les données
* @param tri Colonne du tableau sur lequel le tri devra être effectué
* @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
* @param reportProgress flag to report request and response progress.
*/
public getNotesAuteur(idAuteur: string, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, observe?: 'body', reportProgress?: boolean): Observable<Array<AffichageNoteDTO>>;
public getNotesAuteur(idAuteur: string, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Array<AffichageNoteDTO>>>;
public getNotesAuteur(idAuteur: string, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Array<AffichageNoteDTO>>>;
public getNotesAuteur(idAuteur: string, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {
public getNotesAuteur(idAuteur: string, asc?: boolean, numPage?: number, parPage?: number, texte?: string, tri?: string, observe?: 'body', reportProgress?: boolean): Observable<Array<AffichageNoteDTO>>;
public getNotesAuteur(idAuteur: string, asc?: boolean, numPage?: number, parPage?: number, texte?: string, tri?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Array<AffichageNoteDTO>>>;
public getNotesAuteur(idAuteur: string, asc?: boolean, numPage?: number, parPage?: number, texte?: string, tri?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Array<AffichageNoteDTO>>>;
public getNotesAuteur(idAuteur: string, asc?: boolean, numPage?: number, parPage?: number, texte?: string, tri?: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {
if (idAuteur === null || idAuteur === undefined) {
throw new Error('Required parameter idAuteur was null or undefined when calling getNotesAuteur.');
@ -240,8 +240,8 @@ export class NotesService {
if (numPage !== undefined && numPage !== null) {
queryParameters = queryParameters.set('numPage', <any>numPage);
}
if (parPAge !== undefined && parPAge !== null) {
queryParameters = queryParameters.set('parPAge', <any>parPAge);
if (parPage !== undefined && parPage !== null) {
queryParameters = queryParameters.set('parPage', <any>parPage);
}
if (texte !== undefined && texte !== null) {
queryParameters = queryParameters.set('texte', <any>texte);
@ -287,44 +287,24 @@ export class NotesService {
*
* Récupérer le nombre total de notes dun auteur.
* @param idAuteur Id de l&#x27;auteur
* @param asc Indique si les données sont récupérées dans l&#x27;ordre croissant ou non
* @param numPage Numéro de la page du tableau à afficher
* @param parPAge Nombre délément maximum à afficher dans le tableau
* @param texte Texte permettant de filtrer les données
* @param tri Colonne du tableau sur lequel le tri devra être effectué
* @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
* @param reportProgress flag to report request and response progress.
*/
public getNotesAuteurCount(idAuteur: string, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, observe?: 'body', reportProgress?: boolean): Observable<number>;
public getNotesAuteurCount(idAuteur: string, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<number>>;
public getNotesAuteurCount(idAuteur: string, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<number>>;
public getNotesAuteurCount(idAuteur: string, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {
public getNotesAuteurCount(idAuteur: string, texte?: string, observe?: 'body', reportProgress?: boolean): Observable<number>;
public getNotesAuteurCount(idAuteur: string, texte?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<number>>;
public getNotesAuteurCount(idAuteur: string, texte?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<number>>;
public getNotesAuteurCount(idAuteur: string, texte?: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {
if (idAuteur === null || idAuteur === undefined) {
throw new Error('Required parameter idAuteur was null or undefined when calling getNotesAuteurCount.');
}
let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});
if (asc !== undefined && asc !== null) {
queryParameters = queryParameters.set('asc', <any>asc);
}
if (numPage !== undefined && numPage !== null) {
queryParameters = queryParameters.set('numPage', <any>numPage);
}
if (parPAge !== undefined && parPAge !== null) {
queryParameters = queryParameters.set('parPAge', <any>parPAge);
}
if (texte !== undefined && texte !== null) {
queryParameters = queryParameters.set('texte', <any>texte);
}
if (tri !== undefined && tri !== null) {
queryParameters = queryParameters.set('tri', <any>tri);
}
let headers = this.defaultHeaders;

@ -168,43 +168,16 @@ export class ParticipationsFormationsService {
*
* Récupérer la liste des participations de formation dun collaborateur.
* @param idCollaborateur Id du collaborateur
* @param asc Indique si les données sont récupérées dans l&#x27;ordre croissant ou non
* @param numPage Numéro de la page du tableau à afficher
* @param parPAge Nombre délément maximum à afficher dans le tableau
* @param texte Texte permettant de filtrer les données
* @param tri Colonne du tableau sur lequel le tri devra être effectué
* @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
* @param reportProgress flag to report request and response progress.
*/
public getParticipationByCollaborateur(idCollaborateur: string, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, observe?: 'body', reportProgress?: boolean): Observable<Array<ParticipationFormationDTO>>;
public getParticipationByCollaborateur(idCollaborateur: string, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Array<ParticipationFormationDTO>>>;
public getParticipationByCollaborateur(idCollaborateur: string, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Array<ParticipationFormationDTO>>>;
public getParticipationByCollaborateur(idCollaborateur: string, asc?: boolean, numPage?: number, parPAge?: number, texte?: string, tri?: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {
public getParticipationsByCollaborateur(idCollaborateur: string, observe?: 'body', reportProgress?: boolean): Observable<Array<ParticipationFormationDTO>>;
public getParticipationsByCollaborateur(idCollaborateur: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<Array<ParticipationFormationDTO>>>;
public getParticipationsByCollaborateur(idCollaborateur: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<Array<ParticipationFormationDTO>>>;
public getParticipationsByCollaborateur(idCollaborateur: string, observe: any = 'body', reportProgress: boolean = false ): Observable<any> {
if (idCollaborateur === null || idCollaborateur === undefined) {
throw new Error('Required parameter idCollaborateur was null or undefined when calling getParticipationByCollaborateur.');
}
let queryParameters = new HttpParams({encoder: new CustomHttpUrlEncodingCodec()});
if (asc !== undefined && asc !== null) {
queryParameters = queryParameters.set('asc', <any>asc);
}
if (numPage !== undefined && numPage !== null) {
queryParameters = queryParameters.set('numPage', <any>numPage);
}
if (parPAge !== undefined && parPAge !== null) {
queryParameters = queryParameters.set('parPAge', <any>parPAge);
}
if (texte !== undefined && texte !== null) {
queryParameters = queryParameters.set('texte', <any>texte);
}
if (tri !== undefined && tri !== null) {
queryParameters = queryParameters.set('tri', <any>tri);
throw new Error('Required parameter idCollaborateur was null or undefined when calling getParticipationsByCollaborateur.');
}
let headers = this.defaultHeaders;
@ -231,7 +204,6 @@ export class ParticipationsFormationsService {
return this.httpClient.request<Array<ParticipationFormationDTO>>('get',`${this.basePath}/participationsformation/${encodeURIComponent(String(idCollaborateur))}`,
{
params: queryParameters,
withCredentials: this.configuration.withCredentials,
headers: headers,
observe: observe,

@ -12,7 +12,7 @@
import { CollaborateurDTO } from './collaborateurDTO';
import { EpInformationDTO } from './epInformationDTO';
import { EtatDemande } from './etatDemande';
import { FormationDTO } from './formationDTO';
import { FormationDetailsDTO } from './formationDetailsDTO';
import { OrigineDemandeFormationDTO } from './origineDemandeFormationDTO';
/**
@ -51,5 +51,5 @@ export interface DemandeFormationDTO {
origine?: OrigineDemandeFormationDTO;
collaborateur?: CollaborateurDTO;
ep?: EpInformationDTO;
formation?: FormationDTO;
formation?: FormationDetailsDTO;
}

@ -31,3 +31,14 @@ export function AfficherEtatDemandeDelegation(etat: EtatDemande) {
return "Demande en attente";
}
}
export function afficherEtatDemande(etatDemande: EtatDemande) {
switch(etatDemande) {
case EtatDemande.Validee:
return "Validée";
case EtatDemande.Rejetee:
return "Rejetée";
case EtatDemande.EnAttente:
return "En attente";
}
}

@ -19,7 +19,7 @@ export interface SaisieDTO {
/**
* Id de la saisie
*/
id: string;
id: number;
/**
* Note saisie
*/

@ -11,7 +11,7 @@
*/
/**
* Statut ou état dans lequel se trouve lEP au cours du processus EP: * `Cree` - L'EP a été créé en base de données mais n'est pas encore disponible * `Disponible` - L'EP est disponible pour être saisi par le collaborateur * `Saisi` - L'EP a é saisi par le collaborateur * `DatesProposees` - Des dates d'entretiens ont été proposées par le référent * `AttenteEntretien` - Indique qu’il s’agit d’un EPS * `Effectue` - Le référent a marqué l'EP comme étant effectué et peut accéder à sa saisie * `SignatureReferent` - Le référent a complété en signé l'EP * `Signe` - Le collaborateur a signé l'EP * `Rejete` - Le collaborateur n'a pas effectué la saisie dans les temps ou a refusé l'EP * `Annule` - Une assistante ou le référent a annulé l'EP du collaborateur
* Statut ou état dans lequel se trouve lEP au cours du processus EP: * `Cree` - L'EP a été créé en base de données mais n'est pas encore disponible * `Disponible` - L'EP est disponible pour être saisi par le collaborateur * `Saisi` - L'EP a é saisi par le collaborateur * `DatesProposees` - Des dates d'entretiens ont été proposées par le référent * `AttenteEntretien` - Le collaborateur a choisi une date, il ne reste plus qu'à attendre l'entretien * `Effectue` - Le référent a marqué l'EP comme étant effectué et peut accéder à sa saisie * `SignatureReferent` - Le référent a complété en signé l'EP * `Signe` - Le collaborateur a signé l'EP * `Rejete` - Le collaborateur n'a pas effectué la saisie dans les temps ou a refusé l'EP * `Annule` - Une assistante ou le référent a annulé l'EP du collaborateur
*/
export type StatutEp = 'Cree' | 'Disponible' | 'Saisi' | 'DatesProposees' | 'AttenteEntretien' | 'Effectue' | 'SignatureReferent' | 'Signe' | 'Rejete' | 'Annule';
@ -36,6 +36,10 @@ export function estEPDisponible (statut:StatutEp) {
return statut != StatutEp.Cree && statut != StatutEp.Disponible
}
export function estEPEnCours (statut:StatutEp) {
return statut != StatutEp.Annule && statut != StatutEp.Cree && statut != StatutEp.Rejete && statut != StatutEp.Signe
}
export function affichageStatut(statut: StatutEp) {
switch(statut) {
case StatutEp.Cree:

@ -22,7 +22,7 @@
<!-- Datepicker début -->
<mat-form-field >
<mat-label>Date de début</mat-label>
<input [(ngModel)]="dateDebut" matInput [matDatepicker]="dateDebutPicker" [max]="dateFin" disabled (dateChange)="updateDataSource()">
<input [(ngModel)]="dateDebut" matInput [matDatepicker]="dateDebutPicker" [max]="dateFin" disabled (dateChange)="updateDonneesTableau()">
<mat-icon *ngIf="this.dateDebut != undefined" matDatepickerToggleIcon (click)="updateDateToUndefined(1)">clear</mat-icon>
<mat-datepicker-toggle matSuffix [for]="dateDebutPicker"></mat-datepicker-toggle>
<mat-datepicker touchUi #dateDebutPicker disabled="false"></mat-datepicker>
@ -31,7 +31,7 @@
<!-- Datepicker fin -->
<mat-form-field>
<mat-label>Date de fin</mat-label>
<input [(ngModel)]="dateFin" matInput [matDatepicker]="dateFinPicker" [min]="dateDebut" disabled (dateChange)="updateDataSource()">
<input [(ngModel)]="dateFin" matInput [matDatepicker]="dateFinPicker" [min]="dateDebut" disabled (dateChange)="updateDonneesTableau()">
<mat-icon *ngIf="this.dateFin != undefined" matDatepickerToggleIcon (click)="updateDateToUndefined(2)">clear</mat-icon>
<mat-datepicker-toggle matSuffix [for]="dateFinPicker"></mat-datepicker-toggle>
<mat-datepicker touchUi #dateFinPicker disabled="false"></mat-datepicker>
@ -46,7 +46,7 @@
<!-- Affichage de la liste des collaborateurs -->
<mat-table matSort [dataSource]="dataSource" (matSortChange)="triTableau($event)" matSortActive="{{this.tri}}" matSortDirection="asc" >
<mat-table matSort [dataSource]="dataSource" (matSortChange)="trierTableau($event)" matSortActive="{{this.tri}}" matSortDirection="asc" >
<ng-container matColumnDef="businessunit">
<mat-header-cell *matHeaderCellDef mat-sort-header disableClear>Agence</mat-header-cell>
<mat-cell *matCellDef="let row">{{ row.businessUnit.nom }}</mat-cell>
@ -79,7 +79,7 @@
[pageIndex]="numPage-1"
[pageSize]="parPage"
[pageSizeOptions]="pageOption"
(page)="updatePageInfo($event)">
(page)="updatePaginationTableau($event)">
</mat-paginator>
</ng-container>
</ng-container>

@ -160,7 +160,7 @@ export class CollaborateursTableComponent implements OnInit {
* Mettre à jour les informations à afficher dans la tableau.
* Devra se faire à l'ouverture de la page, au changement de page ou du nombre d'éléments à afficher, au moment d'un tri ou encore lors de l'utilisation de la barre de recherche.
*/
updateDataSource() {
updateDonneesTableau() {
switch(this.typeRecherche) {
case collaborateurTypeRecherche.collaborateurs:
case collaborateurTypeRecherche.referents:
@ -186,7 +186,7 @@ export class CollaborateursTableComponent implements OnInit {
collaborateurs => { console.log(collaborateurs); this.dataSource = new MatTableDataSource(collaborateurs);},
err => console.log(err)
);
this.collaborateursDisponiblesCountSubscription = this.service.getCollaborateursCount(this.roles, this.busIds,this.asc, this.numPage, this.parPage, this.search, this.tri, this.dateDebut, this.dateFin).subscribe(
this.collaborateursDisponiblesCountSubscription = this.service.getCollaborateursCount(this.roles, this.busIds,this.search, this.dateDebut, this.dateFin).subscribe(
count => { console.log(count); this.taille=count;},
err => console.log(err)
);
@ -200,7 +200,7 @@ export class CollaborateursTableComponent implements OnInit {
collaborateurs => { console.log(collaborateurs); this.dataSource = new MatTableDataSource(collaborateurs);},
err => console.log(err)
);
this.collaborateursDisponiblesCountSubscription = this.service.getCollaborateursByReferentCount(this.idReferent, this.asc, this.numPage, this.parPage, this.search, this.tri).subscribe(
this.collaborateursDisponiblesCountSubscription = this.service.getCollaborateursByReferentCount(this.idReferent, this.search).subscribe(
count => { console.log(count); this.taille=count;},
err => console.log(err)
);
@ -215,17 +215,17 @@ export class CollaborateursTableComponent implements OnInit {
this.dateDebut = undefined;
if(val == 2)
this.dateFin = undefined;
this.updateDataSource();
this.updateDonneesTableau();
}
/**
* Mettre à jour le nomre d'élément à afficher par page et le numéro de la page
* @param event évènement de la pagination
*/
updatePageInfo(event){
updatePaginationTableau(event){
this.parPage = event.pageSize;
this.numPage = event.pageIndex+1;
this.updateDataSource();
this.updateDonneesTableau();
}
/**
@ -233,7 +233,7 @@ export class CollaborateursTableComponent implements OnInit {
*/
setSearch() {
this.numPage = 1;
this.updateDataSource();
this.updateDonneesTableau();
}
@ -250,7 +250,7 @@ export class CollaborateursTableComponent implements OnInit {
* Trier le tableau en fonction de l'évènement de la colonne
* @param e évènement du tri
*/
triTableau(e) {
trierTableau(e) {
this.tri = e.active;
switch(e.direction) {
case "asc":
@ -260,7 +260,7 @@ export class CollaborateursTableComponent implements OnInit {
this.asc = false;
break;
}
this.updateDataSource();
this.updateDonneesTableau();
}
/**
@ -276,11 +276,16 @@ export class CollaborateursTableComponent implements OnInit {
for(let bu of this.bus) {
this.busIds.push(bu.id);
}
this.updateDataSource();
this.updateDonneesTableau();
this.chargement = false;
}
}
/**
* Permettre d'ajouter une classe à la ligne afin de choisir la couleur de cette même ligne
*
* @param collaborateur le collaborateur de la ligne du tableau
*/
setClassCouleurLigne(collaborateur: CollaborateurDTO) {
if(this.contientCollaborateur(this.collaborateursAjouts,collaborateur)) {
return "collaborateurAjoute";
@ -308,7 +313,7 @@ export class CollaborateursTableComponent implements OnInit {
this.busIds = this.busIds.filter( (id) => id != bu.id);
}
this.numPage = 1;
this.updateDataSource();
this.updateDonneesTableau();
}
/**

@ -0,0 +1,133 @@
<ng-container *ngIf="chargement">
<mat-spinner></mat-spinner>
</ng-container>
<ng-container *ngIf="!chargement">
<ng-container *ngIf="!estAffichageEP">
<!-- Barre de recherche -->
<mat-form-field>
<mat-label>Rechercher un collaborateur</mat-label>
<input matInput type="text" [(ngModel)]="search" (keyup)="setSearch()">
<button mat-button *ngIf="search" matSuffix mat-icon-button aria-label="Clear" (click)="resetSearch()">
<mat-icon>close</mat-icon>
</button>
</mat-form-field>
<!--Checkboxes des BU-->
<ng-container>
<select-filter
[dataSource]="bus"
[checkedAll]="true"
label="Business Unit"
propertyValueName="nom"
(isSelectedAllEvent)="updateAllBUs($event)"
(isSelectedEvent)="updateBUs($event.isSelected, $event.selectedElement)">
</select-filter>
</ng-container>
<!--Checkboxes des Etats engagement-->
<ng-container>
<select-filter
[dataSource]="etatsDemandesAffiches"
[checkedAll]="true"
label="Etats engagement"
(isSelectedAllEvent)="updateAllEtatsDemande($event)"
(isSelectedEvent)="updateEtatsDemande($event.isSelected, $event.selectedElement)">
</select-filter>
</ng-container>
<!--Checkboxes des Statuts d'EP-->
<ng-container>
<select-filter
[dataSource]="statutsEpAffiches"
[checkedAll]="true"
label="Statuts EP"
(isSelectedAllEvent)="updateAllStatutsEp($event)"
(isSelectedEvent)="updateStatutsEp($event.isSelected, $event.selectedElement)">
</select-filter>
</ng-container>
<ng-container>
<!-- Datepicker début -->
<mat-form-field >
<mat-label>Date de début</mat-label>
<input [(ngModel)]="dateDebut" matInput [matDatepicker]="dateDebutPicker" [max]="dateFin" disabled (dateChange)="updateDataSource()">
<mat-icon *ngIf="this.dateDebut != undefined" matDatepickerToggleIcon (click)="updateDateToUndefined(1)">clear</mat-icon>
<mat-datepicker-toggle matSuffix [for]="dateDebutPicker"></mat-datepicker-toggle>
<mat-datepicker touchUi #dateDebutPicker disabled="false"></mat-datepicker>
</mat-form-field>
<!-- Datepicker fin -->
<mat-form-field>
<mat-label>Date de fin</mat-label>
<input [(ngModel)]="dateFin" matInput [matDatepicker]="dateFinPicker" [min]="dateDebut" disabled (dateChange)="updateDataSource()">
<mat-icon *ngIf="this.dateFin != undefined" matDatepickerToggleIcon (click)="updateDateToUndefined(2)">clear</mat-icon>
<mat-datepicker-toggle matSuffix [for]="dateFinPicker"></mat-datepicker-toggle>
<mat-datepicker touchUi #dateFinPicker disabled="false"></mat-datepicker>
</mat-form-field>
</ng-container>
</ng-container>
<ng-container *ngIf="taille == 0">
<p>Aucune demande de formation à afficher</p>
</ng-container>
<ng-container *ngIf="taille != 0">
<mat-table matSort [dataSource]="dataSource" (matSortChange)="triTableau($event)" matSortActive="{{this.tri}}" matSortDirection="asc" >
<ng-container matColumnDef="businessunit">
<mat-header-cell *matHeaderCellDef mat-sort-header >Agence</mat-header-cell>
<mat-cell *matCellDef="let row">{{row.ep.collaborateur.businessUnit.nom}}</mat-cell>
</ng-container>
<ng-container matColumnDef="collaborateur">
<mat-header-cell mat-header-cell *matHeaderCellDef mat-sort-header>Collabotareur</mat-header-cell>
<!-- Lien vers le détail du collaborateur -->
<mat-cell *matCellDef="let row">
{{row.collaborateur.nom}} {{row.collaborateur.prenom}}
</mat-cell>
</ng-container>
<ng-container matColumnDef="datedemande">
<mat-header-cell *matHeaderCellDef mat-sort-header>Date demande</mat-header-cell>
<mat-cell *matCellDef="let row">{{row.dateDemande | date :'dd/MM/yyyy'}}</mat-cell>
</ng-container>
<ng-container matColumnDef="demanderh">
<mat-header-cell *matHeaderCellDef mat-sort-header>Demande RH</mat-header-cell>
<mat-cell *matCellDef="let row">{{afficherDemandeRH(row.demandeRH)}}</mat-cell>
</ng-container>
<ng-container matColumnDef="ep">
<mat-header-cell *matHeaderCellDef mat-sort-header>EP</mat-header-cell>
<ng-container *matCellDef="let row">
<!-- Lien vers l'EP -->
<mat-cell *ngIf="row.ep" [routerLink]="['/ep',row.ep.id]">
<p>Consulter EP</p>
</mat-cell>
</ng-container>
</ng-container>
<ng-container matColumnDef="etat">
<mat-header-cell *matHeaderCellDef mat-sort-header>Réponse</mat-header-cell>
<mat-cell *matCellDef="let row">{{afficherEtat(row.etatDemande)}}</mat-cell>
</ng-container>
<ng-container matColumnDef="datereponse">
<mat-header-cell *matHeaderCellDef mat-sort-header>Date réponse</mat-header-cell>
<ng-container *matCellDef="let row">
<mat-cell *ngIf="row.dateDerniereReponse">{{row.dateDerniereReponse | date :'dd/MM/yyyy'}}</mat-cell>
<mat-cell *ngIf="!row.dateDerniereReponse">{{row.dateDerniereReponse}}</mat-cell>
</ng-container>
</ng-container>
<mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row>
<mat-row *matRowDef="let row; columns: displayedColumns;" (click)="emitEvent(row)"></mat-row>
</mat-table>
<mat-paginator *ngIf="!estAffichageEP" #paginator
[length] = "taille"
[pageIndex]="numPage-1"
[pageSize]="parPage"
[pageSizeOptions]="pageOption"
(page)="updatePageInfo($event)">
</mat-paginator>
</ng-container>
</ng-container>

@ -0,0 +1,372 @@
import { Component, EventEmitter, Input, OnInit, Output } from "@angular/core";
import { MatTableDataSource } from "@angular/material/table";
import { BusinessUnitDTO, CollaborateurDTO, DemandesFormationService, EtatDemande, afficherEtatDemande, DemandeFormationDTO, StatutEp, estEPEnCours } from "@shared/api-swagger";
import { cles } from "@shared/utils/cles";
import { DemandesFormationsRoutingModule } from "app/demandes-formation/demandes-formation.routing.module";
import { Subscription } from "rxjs";
@Component({
selector: "demandes-formation-table",
templateUrl: "./demandes-formation.table.html"
})
export class DemandesFormationTableComponent implements OnInit {
chargement : boolean = true;
/**
* * Ordre de tri à envoyer au serveur (true : croissant, false : décroissantà).
*/
asc : boolean = true;
/**
* Numéro de la page à afficher dans le tableau.
*/
numPage: number = 1;
/**
* Nombre d'élément du tableau à affiche en une page.
*/
parPage: number = 15;
/**
* Nombre total d'élément du tableau
*/
taille: number = 0;
/**
* Liste des business units du collaborateur connecté
*/
bus: Array<BusinessUnitDTO> = [];
/**
* contenu de la recherche pour trouver un collaborateur.
*/
search: string = "";
/**
* Options pour choisir le nombre de page à affiche
*/
pageOption = [ 5, 15, 20, 30, 50];
/**
* Permet de savoir sur quelle attribut d'un CollaborateurDTO doit être trié le tableau.
*/
tri: string = "collaborateur";
/**
* Liste des id des business units des collaborateurs à afficher
*/
private busIds: Array<number> = [];
/**
* Liste des tous les états demandes
*/
etatsDemandes: Array<EtatDemande> = [
EtatDemande.EnAttente, EtatDemande.Validee,
EtatDemande.Rejetee
];
etatsDemandesAffiches: Array<EtatDemande> = [
EtatDemande.EnAttente, EtatDemande.Validee,
EtatDemande.Rejetee
];
/**
* Liste des tous les statuts d'EP
*/
allStatutsEp: Array<StatutEp> = [
StatutEp.Cree, StatutEp.Disponible,
StatutEp.Saisi, StatutEp.DatesProposees,
StatutEp.AttenteEntretien, StatutEp.Effectue,
StatutEp.SignatureReferent, StatutEp.Signe,
StatutEp.Rejete, StatutEp.Annule
];
statutsEp: Array<StatutEp> = [
StatutEp.Cree, StatutEp.Disponible,
StatutEp.Saisi, StatutEp.DatesProposees,
StatutEp.AttenteEntretien, StatutEp.Effectue,
StatutEp.SignatureReferent, StatutEp.Signe,
StatutEp.Rejete, StatutEp.Annule
];
statutsEpAffiches: Array<string> = [
'Annulé','En cours', 'Rejeté', 'Signé'
];
/**
* Date à partir de laquelle les demandes de formation doivent être récupérées en fonction de leur date de demande
*/
dateDebut: Date = undefined;
/**
* Date jusqu'à laquelle les demandes de formation doivent être récupérées en fonction de leur date de demande
*/
dateFin: Date = undefined;
/**
* Liste des colonnes du tableau à afficher.
*/
@Input() displayedColumns : string[] = [];
@Input() estAffichageEP: boolean = false;
@Input() demandesFormation: DemandeFormationDTO[] = [];
@Output() eventEmitter: EventEmitter<any> = new EventEmitter<any>();
dataSource: MatTableDataSource<DemandeFormationDTO>;
demandesFormationSubscription: Subscription;
demandesFormationCountSubscription: Subscription;
etatsDemandesSubscription: Subscription;
constructor(private demandeFormationService: DemandesFormationService) {}
ngOnInit() {
if(this.estAffichageEP) {
this.taille = this.demandesFormation.length;
this.dataSource = new MatTableDataSource(this.demandesFormation);
}
else
this.setBUsId();
}
emitEvent(demande: DemandesFormationsRoutingModule) {
if(this.eventEmitter != null)
this.eventEmitter.emit(demande);
}
updateDataSource() {
if(this.busIds.length == 0 || this.etatsDemandes.length == 0 || this.statutsEp.length == 0) {
this.taille = 0;
this.dataSource = new MatTableDataSource(undefined);
return;
}
this.demandesFormationSubscription = this.demandeFormationService.getDemandesFormation(this.etatsDemandes, this.busIds, this.statutsEp, this.asc, this.numPage, this.parPage, this.search, this.tri, this.dateDebut, this.dateFin).subscribe(
demandesFormation => this.dataSource = new MatTableDataSource(demandesFormation),
err => console.log(err)
);
this.demandesFormationCountSubscription = this.demandeFormationService.getDemandesFormationCount(this.etatsDemandes, this.busIds, this.statutsEp, this.asc, this.numPage, this.parPage, this.search, this.tri, this.dateDebut, this.dateFin).subscribe(
count => this.taille = count,
err => console.log(err)
);
}
afficherDemandeRH(demandeRH: boolean) {
if (demandeRH)
return 'Oui';
else
return 'Non'
}
afficherEtat(etat: EtatDemande) {
return afficherEtatDemande(etat);
}
/**
* création de la liste des business unit du collaborateur connecté pour afficher les checkboxes
*/
setBUsId() {
if(sessionStorage.getItem(cles.sessionKeyConnectee) == undefined){
setTimeout( () => this.setBUsId(), 1000);
}
else {
const collaborateurConnecte : CollaborateurDTO = JSON.parse(sessionStorage.getItem(cles.sessionKeyConnectee));
this.bus = collaborateurConnecte.businessUnit.agence.bu;
for(let bu of this.bus) {
this.busIds.push(bu.id);
}
this.updateDataSource();
this.chargement = false;
}
}
setSearch() {
this.numPage = 1;
this.updateDataSource();
}
resetSearch() {
this.search = "";
this.setSearch();
}
/**
* Trier le tableau en fonction de l'évènement de la colonne
* @param e évènement du tri
*/
triTableau(e) {
this.tri = e.active;
switch(e.direction) {
case "asc":
this.asc = true;
break;
case "desc":
this.asc = false;
break;
}
this.updateDataSource();
}
/**
* Mettre à jour le nombre d'élément à afficher par page et le numéro de la page
* @param event évènement de la pagination
*/
updatePageInfo(event){
this.parPage = event.pageSize;
this.numPage = event.pageIndex+1;
this.updateDataSource();
}
/**
* Mettre à jour toutes les checkbox des états d'engagement
* @param event case cochée ou décochée
*/
updateAllEtatsDemande(event) {
this.etatsDemandes = [];
// si la checkbox a été cochée
if(event)
this.etatsDemandes = this.etatsDemandesAffiches.map(e => e);
else
this.etatsDemandes = [];
this.setSearch();
}
/**
* Mettre à jour la liste des etats de demande
* @param event
* @param etat
*/
updateEtatsDemande(event:boolean, etat:EtatDemande) {
if(event) {
this.etatsDemandes.push(etat);
}
else
this.etatsDemandes = this.etatsDemandes.filter( e => etat != e);
this.setSearch();
}
getStatutsEpEnCours() {
return [ StatutEp.AttenteEntretien, StatutEp.DatesProposees,
StatutEp.Disponible, StatutEp.Effectue,
StatutEp.Saisi, StatutEp.SignatureReferent ];
}
/**
* Mettre à jour toutes les checkbox des statuts d'EP
* @param event case cochée ou décochée
*/
updateAllStatutsEp(event) {
this.statutsEp = [];
// si la checkbox a été cochée
if(event)
this.statutsEp = this.allStatutsEp;
else
this.statutsEp = [];
this.setSearch();
}
/**
* Mettre à jour la liste des statuts d'EP
* @param event
* @param statutEpAffiche
*/
updateEt
updateStatutsEp(event:boolean, statutEpAffiche:string) {
if(event) {
this.addStatutsEp(statutEpAffiche);
}
else {
this.removeStatutsEp(statutEpAffiche);
}
this.setSearch();
}
addStatutsEp(statutEpAffiche:string) {
switch(statutEpAffiche) {
case "Annulé":
this.statutsEp.push(StatutEp.Annule);
break;
case "En cours":
const statutsEpEnCoursOuCree = this.allStatutsEp.filter(s => estEPEnCours(s) || s == StatutEp.Cree);
this.statutsEp = this.statutsEp.concat(statutsEpEnCoursOuCree);
break;
case "Rejeté":
this.statutsEp.push(StatutEp.Rejete);
break;
case "Signé":
this.statutsEp.push(StatutEp.Signe);
break;
}
}
removeStatutsEp(statutEpAffiche:string) {
switch(statutEpAffiche) {
case "Annulé":
this.statutsEp = this.statutsEp.filter(s => s != StatutEp.Annule)
break;
case "En cours":
this.statutsEp = this.statutsEp.filter(s => !estEPEnCours(s) && s != StatutEp.Cree)
break;
case "Rejeté":
this.statutsEp = this.statutsEp.filter(s => s != StatutEp.Rejete)
break;
case "Signé":
this.statutsEp = this.statutsEp.filter(s => s != StatutEp.Signe)
break;
}
}
/**
* Mettre à jour toutes les checkbox des BU
* @param event case cochée ou décochée
*/
updateAllBUs(event) {
this.busIds = [];
// si la checkbox a été cochée
if(event)
this.bus.map(bu => this.busIds.push(bu.id));
else
this.busIds = [];
this.setSearch();
}
updateBUs(event, bu) {
// si la checkbox a été cochée
if(event) {
this.busIds.push(bu.id)
}
else{
this.busIds = this.busIds.filter( (id) => id != bu.id);
}
this.setSearch();
}
/**
* Mettre à undefined la date de début ou la date de fin
* @param val Valeur pour indiquer quel variable doit être mis à undefined
*/
updateDateToUndefined(val : number) {
if(val == 1)
this.dateDebut = undefined;
if(val == 2)
this.dateFin = undefined;
this.updateDataSource();
}
ngOnDestroy() {
if(this.demandesFormationSubscription != undefined) {
this.demandesFormationSubscription.unsubscribe();
}
if(this.demandesFormationCountSubscription != undefined) {
this.demandesFormationCountSubscription.unsubscribe();
}
}
}

@ -73,7 +73,7 @@
[pageIndex]="numPage-1"
[pageSize]="parPage"
[pageSizeOptions]="pageOption"
(page)="updatePageInfo($event)">
(page)="updatePaginationTableau($event)">
</mat-paginator>
</ng-container>

@ -109,18 +109,18 @@ export class EngagementTableComponent implements OnInit {
}
updateDataSource() {
updateDonneesTableau() {
if(this.busIds.length == 0 || this.etatsEngagements.length == 0) {
this.taille = 0;
this.dataSource = new MatTableDataSource(undefined);
return;
}
this.engagementSubscription = this.engagementService.getEngagements(this.etatsEngagements, this.busIds, this.asc, this.numPage, this.parPage, this.search, this.tri).subscribe(
this.engagementSubscription = this.engagementService.getEngagements(this.busIds, this.etatsEngagements,this.asc, this.numPage, this.parPage, this.search, this.tri).subscribe(
engagements => { console.log(engagements); this.dataSource = new MatTableDataSource(engagements); },
err => console.log(err)
);
this.engagementCountSubscripton = this.engagementService.getEngagementsCount(this.etatsEngagements, this.busIds, this.asc, this.numPage, this.parPage, this.search, this.tri).subscribe(
this.engagementCountSubscripton = this.engagementService.getEngagementsCount(this.busIds, this.etatsEngagements, this.search).subscribe(
count => this.taille = count,
err => console.log(err)
);
@ -143,14 +143,14 @@ export class EngagementTableComponent implements OnInit {
for(let bu of this.bus) {
this.busIds.push(bu.id);
}
this.updateDataSource();
this.updateDonneesTableau();
this.chargement = false;
}
}
setSearch() {
this.numPage = 1;
this.updateDataSource();
this.updateDonneesTableau();
}
resetSearch() {
@ -162,10 +162,10 @@ export class EngagementTableComponent implements OnInit {
* Mettre à jour le nomre d'élément à afficher par page et le numéro de la page
* @param event évènement de la pagination
*/
updatePageInfo(event){
updatePaginationTableau(event){
this.parPage = event.pageSize;
this.numPage = event.pageIndex+1;
this.updateDataSource();
this.updateDonneesTableau();
}
updateEtatsEngagement(event:boolean, etat:EtatEngagement) {

@ -36,7 +36,7 @@
<!-- Datepicker début -->
<mat-form-field >
<mat-label>Date de début</mat-label>
<input [(ngModel)]="dateDebut" matInput [matDatepicker]="dateDebutPicker" [max]="dateFin" disabled (dateChange)="updateDataSource()">
<input [(ngModel)]="dateDebut" matInput [matDatepicker]="dateDebutPicker" [max]="dateFin" disabled (dateChange)="updateDonneesTableau()">
<mat-icon *ngIf="this.dateDebut != undefined" matDatepickerToggleIcon (click)="updateDateToUndefined(1)">clear</mat-icon>
<mat-datepicker-toggle matSuffix [for]="dateDebutPicker"></mat-datepicker-toggle>
<mat-datepicker touchUi #dateDebutPicker disabled="false"></mat-datepicker>
@ -45,7 +45,7 @@
<!-- Datepicker fin -->
<mat-form-field>
<mat-label>Date de fin</mat-label>
<input [(ngModel)]="dateFin" matInput [matDatepicker]="dateFinPicker" [min]="dateDebut" disabled (dateChange)="updateDataSource()">
<input [(ngModel)]="dateFin" matInput [matDatepicker]="dateFinPicker" [min]="dateDebut" disabled (dateChange)="updateDonneesTableau()">
<mat-icon *ngIf="this.dateFin != undefined" matDatepickerToggleIcon (click)="updateDateToUndefined(2)">clear</mat-icon>
<mat-datepicker-toggle matSuffix [for]="dateFinPicker"></mat-datepicker-toggle>
<mat-datepicker touchUi #dateFinPicker disabled="false"></mat-datepicker>
@ -60,7 +60,7 @@
<mat-table matSort [dataSource]="dataSource" (matSortChange)="triTableau($event)" matSortDirection="asc">
<mat-table matSort [dataSource]="dataSource" (matSortChange)="trierTableau($event)" matSortDirection="asc">
<ng-container matColumnDef="agence">
<mat-header-cell *matHeaderCellDef mat-sort-header disableClear>
Business Unit
@ -128,7 +128,7 @@
[pageIndex]="numPage-1"
[pageSize]="parPage"
[pageSizeOptions]="pageOption"
(page)="updatePageInfo($event)"
(page)="updatePaginationTableau($event)"
>
</mat-paginator>

@ -101,7 +101,7 @@ export class EpTableComponent implements OnInit{
});
}
updateDataSource() {
updateDonneesTableau() {
switch(this.typeRechercheEP) {
case epTypeRecherche.EPEnCours:
this.getEPEnCours();
@ -196,7 +196,7 @@ export class EpTableComponent implements OnInit{
updateToggle(event :MatSlideToggleChange) {
this.epObligatoires = event.checked;
this.updateDataSource();
this.updateDonneesTableau();
}
/**
@ -212,7 +212,7 @@ export class EpTableComponent implements OnInit{
/*for(let bu of this.bus) {
this.busIds.push(bu.id);
}*/
this.updateDataSource();
this.updateDonneesTableau();
this.chargement = false;
}
}
@ -226,17 +226,17 @@ export class EpTableComponent implements OnInit{
this.dateDebut = undefined;
if(val == 2)
this.dateFin = undefined;
this.updateDataSource();
this.updateDonneesTableau();
}
/**
* Mettre à jour le nomre d'élément à afficher par page et le numéro de la page
* @param event évènement de la pagination
*/
updatePageInfo(event){
updatePaginationTableau(event){
this.parPage = event.pageSize;
this.numPage = event.pageIndex+1;
this.updateDataSource();
this.updateDonneesTableau();
}
/**
@ -244,7 +244,7 @@ export class EpTableComponent implements OnInit{
*/
setSearch() {
this.numPage = 1;
this.updateDataSource();
this.updateDonneesTableau();
}
/**
@ -268,7 +268,7 @@ export class EpTableComponent implements OnInit{
this.busIds = [];
this.numPage = 1;
this.updateDataSource();
this.updateDonneesTableau();
}
/**
@ -285,14 +285,14 @@ export class EpTableComponent implements OnInit{
this.busIds = this.busIds.filter( (id) => id != bu.id);
}
this.numPage = 1;
this.updateDataSource();
this.updateDonneesTableau();
}
/**
* Trier le tableau en fonction de l'évènement de la colonne
* @param e évènement du tri
*/
triTableau(e) {
trierTableau(e) {
this.tri = e.active;
switch(e.direction) {
case "asc":
@ -302,7 +302,7 @@ export class EpTableComponent implements OnInit{
this.asc = false;
break;
}
this.updateDataSource();
this.updateDonneesTableau();
}

@ -26,7 +26,7 @@
<!-- Affichage de la liste des formations -->
<mat-table matSort [dataSource]="dataSource" (matSortChange)="triTableau($event)" matSortActive="{{this.tri}}" matSortDirection="asc" >
<mat-table matSort [dataSource]="dataSource" (matSortChange)="trierTableau($event)" matSortActive="{{this.tri}}" matSortDirection="asc" >
<ng-container matColumnDef="intitule">
<mat-header-cell *matHeaderCellDef mat-sort-header disableClear>Intitulé</mat-header-cell>
<mat-cell *matCellDef="let row">{{ row.intitule }}</mat-cell>
@ -76,7 +76,7 @@
[pageIndex]="numPage-1"
[pageSize]="parPage"
[pageSizeOptions]="pageOption"
(page)="updatePageInfo($event)"
(page)="updatePaginationTableau($event)"
>
</mat-paginator>

@ -111,7 +111,7 @@ export class FormationsTableComponent implements OnInit {
* Mettre à jour les informations à afficher dans la tableau.
* Devra se faire à l'ouverture de la page, au changement de page ou du nombre d'éléments à afficher, au moment d'un tri ou encore lors de l'utilisation de la barre de recherche.
*/
updateDataSource() {
updateDonneesTableau() {
this.updateFormations();
}
@ -136,7 +136,7 @@ export class FormationsTableComponent implements OnInit {
err => console.log(err)
)
this.formationsDisponiblesCountSubscription = this.formationsService.getFormationsCount(this.idAgence,this.idStatuts,this.asc, this.numPage, this.parPage, this.search, this.tri).subscribe(
this.formationsDisponiblesCountSubscription = this.formationsService.getFormationsCount(this.idAgence,this.idStatuts, this.search).subscribe(
count => this.taille=count,
err => console.log(err)
);
@ -156,7 +156,7 @@ export class FormationsTableComponent implements OnInit {
else {
this.collaborateurConnecte = JSON.parse(sessionStorage.getItem(cles.sessionKeyConnectee));
this.idAgence = this.collaborateurConnecte.businessUnit.agence.id;
this.updateDataSource();
this.updateDonneesTableau();
this.chargement = false;
}
}
@ -165,10 +165,10 @@ export class FormationsTableComponent implements OnInit {
* Mettre à jour le nomre d'élément à afficher par page et le numéro de la page
* @param event évènement de la pagination
*/
updatePageInfo(event){
updatePaginationTableau(event){
this.parPage = event.pageSize;
this.numPage = event.pageIndex+1;
this.updateDataSource();
this.updateDonneesTableau();
}
@ -177,7 +177,7 @@ export class FormationsTableComponent implements OnInit {
*/
setSearch() {
this.numPage = 1;
this.updateDataSource();
this.updateDonneesTableau();
}
@ -194,7 +194,7 @@ export class FormationsTableComponent implements OnInit {
* Trier le tableau en fonction de l'évènement de la colonne
* @param e évènement du tri
*/
triTableau(e) {
trierTableau(e) {
this.tri = e.active;
switch(e.direction) {
case "asc":
@ -204,7 +204,7 @@ export class FormationsTableComponent implements OnInit {
this.asc = false;
break;
}
this.updateDataSource();
this.updateDonneesTableau();
}
/**
@ -220,7 +220,7 @@ export class FormationsTableComponent implements OnInit {
this.idStatuts = [];
this.numPage = 1;
this.updateDataSource();
this.updateDonneesTableau();
}
@ -238,7 +238,7 @@ export class FormationsTableComponent implements OnInit {
this.idStatuts = this.idStatuts.filter(id => id != statut.id);
}
this.numPage = 1;
this.updateDataSource();
this.updateDonneesTableau();
}
/**

@ -10,6 +10,7 @@ import { FormationsTableComponent } from "@shared/mat-tables/formations-table/fo
import { ParticipationsFormationTableComponent } from "@shared/mat-tables/participations-formation-table/participations-formation.table";
import { FilterModule } from "@shared/filter/filter.module";
import { EpTableComponent } from "./ep-table/ep-table";
import { DemandesFormationTableComponent } from "@shared/mat-tables/demandes-formation-table/demandes-formation.table";
@NgModule({
@ -18,7 +19,8 @@ import { EpTableComponent } from "./ep-table/ep-table";
EngagementTableComponent,
FormationsTableComponent ,
EpTableComponent,
ParticipationsFormationTableComponent
ParticipationsFormationTableComponent,
DemandesFormationTableComponent
],
imports: [
MaterialModule,
@ -32,7 +34,8 @@ import { EpTableComponent } from "./ep-table/ep-table";
EngagementTableComponent,
FormationsTableComponent,
EpTableComponent,
ParticipationsFormationTableComponent
ParticipationsFormationTableComponent,
DemandesFormationTableComponent
]
})
export class MatTablesModule {}

@ -0,0 +1,13 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "./out-tsc/app",
"types": []
},
"exclude": [
"src/test.ts",
"src/**/*.spec.ts",
"src/app/file-to-exclude.ts"
]
}
Loading…
Cancel
Save