Compare commits

...

2 Commits

  1. 371
      package-lock.json
  2. 2
      package.json
  3. 34
      src/app/app-routing.module.ts
  4. 0
      src/app/collaborateurs/collaborateur-routing.module.ts
  5. 7
      src/app/collaborateurs/collaborateurs.component.ts
  6. 4
      src/app/collaborateurs/collaborateurs.module.ts
  7. 19
      src/app/collaborateurs/collaborateurs.routing.module.ts
  8. 36
      src/app/collaborateurs/details-collaborateur/details-collaborateur.component.html
  9. 3
      src/app/collaborateurs/details-collaborateur/details-collaborateur.component.ts
  10. 12
      src/app/demandes-delegation/demandes-delegation.component.ts
  11. 37
      src/app/demandes-delegation/details-demande-delegation/demande-delegation.component.ts
  12. 8
      src/app/demandes-formation/demandes-formation.routing.module.ts
  13. 10
      src/app/engagements/engagements.component.ts
  14. 4
      src/app/ep-saisie/ep-saisie.routing.module.ts
  15. 3
      src/app/ep/details-ep/details-ep.component.ts
  16. 7
      src/app/ep/ep-signes/ep-signes.component.ts
  17. 7
      src/app/ep/ep.component.ts
  18. 4
      src/app/ep/ep.routing.module.ts
  19. 3
      src/app/formations/edit-formation/edit-formation.component.ts
  20. 3
      src/app/formations/formations.component.ts
  21. 8
      src/app/formations/formations.routing.module.ts
  22. 2
      src/app/formations/new-formation/new-formation.component.ts
  23. 7
      src/app/notes/details-note/details-note.component.ts
  24. 8
      src/app/notes/modifier-note/modifier-note.component.ts
  25. 4
      src/app/notes/notes.component.html
  26. 30
      src/app/notes/notes.component.ts
  27. 4
      src/app/notes/notes.routing.module.ts
  28. 16
      src/app/notes/nouvelle-note/nouvelle-note.component.ts
  29. 4
      src/app/referents/assignation-referent/assignation-referent.component.html
  30. 27
      src/app/referents/assignation-referent/assignation-referent.component.ts
  31. 14
      src/app/referents/referents.routing.module.ts
  32. 2
      src/app/shared/affichage-details-collaboarteur/affichage-details-collaborateur.ts
  33. 2
      src/app/shared/affichage-details-collaboarteur/dialog-assignation-rapide/dialog-assignation-rapide-collaborateurs.html
  34. 14
      src/app/shared/affichage-details-collaboarteur/dialog-assignation-rapide/dialog-assignation-rapide.component.ts
  35. 24
      src/app/shared/affichage-details-collaboarteur/prochain-ep/prochain-ep.component.html
  36. 4
      src/app/shared/affichage-details-collaboarteur/prochain-ep/prochain-ep.component.ts
  37. 8
      src/app/shared/mat-tables/collaborateurs-table/collaborateurs.table.html
  38. 25
      src/app/shared/mat-tables/collaborateurs-table/collaborateurs.table.ts
  39. 2
      src/app/shared/mat-tables/engagements-table/engagements-table.html
  40. 10
      src/app/shared/mat-tables/engagements-table/engagements-table.ts
  41. 8
      src/app/shared/mat-tables/ep-table/ep-table.html
  42. 20
      src/app/shared/mat-tables/ep-table/ep-table.ts
  43. 4
      src/app/shared/mat-tables/formations-table/formations.table.html
  44. 18
      src/app/shared/mat-tables/formations-table/formations.table.ts
  45. 13
      tsconfig.compodoc.json

371
package-lock.json generated

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

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

@ -5,31 +5,17 @@ import { Routes } from '@angular/router';
import { HomeComponent } from './home/'; 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, 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 * L'ensemble des routes du client Angular
*/ */
const routes: Routes = [ 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 //chargement des chemins du module collaborateur à partir du routing de ce module
{ {
path: paths_collaborateurs.path, path: paths_collaborateurs.path,
@ -73,6 +59,20 @@ const routes: Routes = [
{ {
path: paths_notes.path, path: paths_notes.path,
loadChildren: () => import('./notes/notes.module').then( m => m.NotesModule) 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. * 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({ @Component({
selector: 'app-collaborateurs', selector: 'app-collaborateurs',
@ -37,6 +35,11 @@ export class CollaborateursComponent {
constructor(private router: Router) {} 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) { event(event : any) {
switch(event.type) { switch(event.type) {
case "collaborateur": case "collaborateur":

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

@ -7,27 +7,24 @@ import { FormationsCollaboateurComponent } from "./formations-collaborateur/form
import { EvaluationComponent } from './formations-collaborateur/details-evaluation/evaluation.component'; import { EvaluationComponent } from './formations-collaborateur/details-evaluation/evaluation.component';
import { EditEvaluationComponent } from './formations-collaborateur/edit-evaluation/edit-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 { AuthGuard } from '../shared/auth/auth.guard';
import { Role } from '@shared/utils/roles'; import { Role } from '../shared/utils/roles';
/**
* Routes du module collaborateur
*/
const routes: Routes = [ 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:'', path:'',
component: CollaborateursComponent, component: CollaborateursComponent,
canActivate: [AuthGuard], canActivate: [AuthGuard],
data: { roles: [Role.assistante, Role.commercial, Role.rh] }, data: { roles: [Role.assistante, Role.commercial, Role.rh] },
pathMatch: 'full' 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> <app-nav-menu></app-nav-menu>
<affichage-details-collaborateur [idCollaborateur]="idCollaborateur"></affichage-details-collaborateur> <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({ @Component({
selector: 'app-details-collaborateur', selector: 'app-details-collaborateur',
@ -13,6 +13,7 @@ import {ActivatedRoute} from '@angular/router';
export class DetailsCollaborateurComponent { export class DetailsCollaborateurComponent {
idCollaborateur: string; idCollaborateur: string;
constructor(private route: ActivatedRoute) { constructor(private route: ActivatedRoute) {
this.idCollaborateur = this.route.snapshot.paramMap.get('id'); this.idCollaborateur = this.route.snapshot.paramMap.get('id');
} }

@ -5,7 +5,8 @@ import { cles } from '@shared/utils/cles';
import { Subscription } from 'rxjs'; import { Subscription } from 'rxjs';
/** /**
*/ * Composant pour faire afficher la liste des demandes de délégation reçues
*/
@Component({ @Component({
selector: 'app-demandes-delegation', selector: 'app-demandes-delegation',
templateUrl: './demandes-delegation.component.html' templateUrl: './demandes-delegation.component.html'
@ -25,12 +26,12 @@ export class DemandesDelegationComponent implements OnInit {
ngOnInit() { ngOnInit() {
this.recupererIdCollaborateurConencte(); this.setIdCollaborateurConnecte();
} }
recupererIdCollaborateurConencte() { setIdCollaborateurConnecte() {
if(sessionStorage.getItem(cles.sessionKeyConnectee) == undefined) { if(sessionStorage.getItem(cles.sessionKeyConnectee) == undefined) {
setTimeout( () => this.recupererIdCollaborateurConencte(), 1000); setTimeout( () => this.setIdCollaborateurConnecte(), 1000);
} }
else { else {
const collaborateurConnecte: CollaborateurDTO = JSON.parse(sessionStorage.getItem(cles.sessionKeyConnectee)); 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() { updateListeDemandesDelegation() {
this.chargement = false; this.chargement = false;
this.demandeDelegationSubscription = this.demandeDelegationService.getDemandesDelegationReferent(this.idCollaborateurConnecte).subscribe( this.demandeDelegationSubscription = this.demandeDelegationService.getDemandesDelegationReferent(this.idCollaborateurConnecte).subscribe(

@ -7,7 +7,8 @@ import { Subscription } from 'rxjs';
/** /**
*/ * Composant pour faire afficher les détails d'une demande de délégation
*/
@Component({ @Component({
selector: 'app-demande-delegation', selector: 'app-demande-delegation',
templateUrl: './demande-delegation.component.html' templateUrl: './demande-delegation.component.html'
@ -62,9 +63,21 @@ export class DemandeDelegationComponent implements OnInit {
}) })
export class DialogReponseDemandeDelegation { 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 =""; texte: string ="";
/**
* Indique si la réponse est un refus.
*/
estRefus: boolean = false; estRefus: boolean = false;
raisonRefus: string; 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 = { reponse: any = {
engistree: false engistree: false
} }
@ -81,18 +94,18 @@ export class DialogReponseDemandeDelegation {
} }
} }
enregistrer() { enregistrer() {
if(this.estRefus && this.raisonRefus == "") if(this.estRefus && this.raisonRefus == "")
return; return;
let demandeDelegation: DemandeDelegationDTO = this.data.demandeDelegation; let demandeDelegation: DemandeDelegationDTO = this.data.demandeDelegation;
demandeDelegation.etatDemande = this.data.etatDemande; demandeDelegation.etatDemande = this.data.etatDemande;
demandeDelegation.raisonRefus = this.raisonRefus; demandeDelegation.raisonRefus = this.raisonRefus;
this.reponse = { this.reponse = {
engistree: true, engistree: true,
demandeDelegation: demandeDelegation demandeDelegation: demandeDelegation
}
this.fermer();
} }
this.fermer();
}

@ -6,17 +6,17 @@ import { DemandesFormationComponent } from "./demandes-formation.component";
import { DemandeFormationComponent } from "./details-demande-formation/demande-formation.component"; import { DemandeFormationComponent } from "./details-demande-formation/demande-formation.component";
import { NewDemandeFormationComponent } from "./new-demande-formation/new-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 * Routes du module demandes formation
*/ */
const routes: Routes = [ const routes: Routes = [
{ path:'', component: DemandesFormationComponent, pathMatch: 'full', canActivate: [AuthGuard] },
{ path:paths_demandes_formation.new, component: NewDemandeFormationComponent, 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] }
]; ];

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

@ -7,9 +7,9 @@ import { EpsSaisieComponent } from "./eps-saisie/eps-saisie.component";
import { EpaSaisieComponent } from "./epa-saisie/epa-saisie.component"; import { EpaSaisieComponent } from "./epa-saisie/epa-saisie.component";
import { EpaSixAnsSaisieComponent } from "./epa-six-ans-saisie/epa-six-ans-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 * Routes du module saisie ep

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

@ -3,7 +3,7 @@ import { Router } from '@angular/router';
import { epTypeRecherche } from '@shared/utils/cles'; 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({ @Component({
selector: 'app-ep-signes', selector: 'app-ep-signes',
@ -17,6 +17,11 @@ export class EpSignesComponent {
constructor(private router: Router){} 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) { eventEmitter(event: any) {
switch(event.type) { switch(event.type) {
case "collaborateur": case "collaborateur":

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

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

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

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

@ -7,17 +7,17 @@ import { FormationComponent } from "./details-formation/formation.component";
import { NewFormationComponent } from "./new-formation/new-formation.component"; import { NewFormationComponent } from "./new-formation/new-formation.component";
import { EditFormationComponent } from "./edit-formation/edit-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 * Routes du module formation
*/ */
const routes: Routes = [ const routes: Routes = [
{ path:'', component: FormationsComponent, pathMatch: 'full', canActivate: [AuthGuard] },
{ path:paths_formation.edit, component: EditFormationComponent, canActivate: [AuthGuard] }, { path:paths_formation.edit, component: EditFormationComponent, canActivate: [AuthGuard] },
{ path:paths_formation.new, component: NewFormationComponent, 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"; import { FormationsService } from "@shared/api-swagger/api/api";
/** /**
* Composant pour l'ajout d'une nouvelle formation * Composant pour ajotuer une nouvelle formation
*/ */
@Component({ @Component({
selector: 'app-new-formation', selector: 'app-new-formation',

@ -4,7 +4,9 @@ import { ActivatedRoute, Router } from "@angular/router";
import { DetailsNoteDTO, NotesService } from "@shared/api-swagger"; import { DetailsNoteDTO, NotesService } from "@shared/api-swagger";
import { Subscription } from "rxjs"; import { Subscription } from "rxjs";
/**
* Composant pour faire afficher les détails d'une note d'un manager ou d'un RA
*/
@Component({ @Component({
selector: "app-details-note", selector: "app-details-note",
templateUrl: "./details-note.component.html" 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() { supprimerNote() {
this.dialog.open(DialogSuppressionNoteComponent, { data: this.note}) 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 { CollaborateurDTO, DetailsNoteDTO, NotesService } from "@shared/api-swagger";
import { Subscription } from "rxjs"; import { Subscription } from "rxjs";
/**
* Composant pour modifier une note
*/
@Component({ @Component({
selector: "modifier-note", selector: "modifier-note",
templateUrl: "./modifier-note.component.html" templateUrl: "./modifier-note.component.html"
@ -14,6 +18,7 @@ export class ModifierNoteComponent implements OnInit{
chercherNoteSubscription: Subscription; chercherNoteSubscription: Subscription;
modifierNoteSubscription: Subscription; modifierNoteSubscription: Subscription;
dialogSubscription: Subscription; dialogSubscription: Subscription;
@ -22,6 +27,9 @@ export class ModifierNoteComponent implements OnInit{
id: any; id: any;
/**
* Form lié à la note qui devra être mise à jour
*/
noteForm: FormGroup; noteForm: FormGroup;
constructor(private noteService: NotesService, private fb: FormBuilder, private router: Router, constructor(private noteService: NotesService, private fb: FormBuilder, private router: Router,

@ -21,7 +21,7 @@
<ng-container *ngIf="taille != 0"> <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"> <ng-container matColumnDef="collaborateur">
<mat-header-cell *matHeaderCellDef mat-sort-header disableClear>Collaborateur</mat-header-cell> <mat-header-cell *matHeaderCellDef mat-sort-header disableClear>Collaborateur</mat-header-cell>
@ -49,7 +49,7 @@
[pageIndex]="numPage-1" [pageIndex]="numPage-1"
[pageSize]="parPage" [pageSize]="parPage"
[pageSizeOptions]="pageOption" [pageSizeOptions]="pageOption"
(page)="updatePageInfo($event)"> (page)="updatePaginationTableau($event)">
</mat-paginator> </mat-paginator>
</ng-container> </ng-container>

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

@ -3,10 +3,10 @@ import { Routes, RouterModule } from '@angular/router';
import { NotesComponent } from "./notes.component"; 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 { NouvelleNoteComponent } from './nouvelle-note/nouvelle-note.component';
import { DetailsNoteComponent } from './details-note/details-note.component'; import { DetailsNoteComponent } from './details-note/details-note.component';
import { ModifierNoteComponent } from './modifier-note/modifier-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 { cles, collaborateurTypeRecherche } from "@shared/utils/cles";
import { Subscription } from "rxjs"; import { Subscription } from "rxjs";
@Component({ @Component({
selector: "nouvelle-note", selector: "nouvelle-note",
templateUrl: "./nouvelle-note.component.html" templateUrl: "./nouvelle-note.component.html"
@ -18,6 +20,9 @@ export class NouvelleNoteComponent {
collaborateurChoisi: CollaborateurDTO; collaborateurChoisi: CollaborateurDTO;
/**
* Form lié à la note à ajouter
*/
noteForm = this.fb.group( noteForm = this.fb.group(
{ {
titre: [""], titre: [""],
@ -48,6 +53,9 @@ export class NouvelleNoteComponent {
); );
} }
/**
* Permet d'ouvrir un popup qui va permettre de choisir le collaborateur lié à la note
*/
choixCollaborateur() { choixCollaborateur() {
const datas = { data: this.collaborateurChoisi, width: "80%", height: '80%'}; const datas = { data: this.collaborateurChoisi, width: "80%", height: '80%'};
const dialogRef = this.dialog.open(DialogChoixCollaborateurNoteComponent, datas); const dialogRef = this.dialog.open(DialogChoixCollaborateurNoteComponent, datas);
@ -89,12 +97,20 @@ export class DialogChoixCollaborateurNoteComponent {
this.dialogRef.close(); this.dialogRef.close();
} }
/**
* Enregister le choix du collaborateur de la note
*/
enregistrerChoix() { enregistrerChoix() {
if(this.collaborateurChoisi != undefined) { if(this.collaborateurChoisi != undefined) {
this.dialogRef.close(this.collaborateurChoisi); 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) { choisirCollaborateur(event : any) {
this.collaborateurChoisi = event.collaborateur; this.collaborateurChoisi = event.collaborateur;

@ -6,7 +6,7 @@
<mat-step label="Choix du référent" [completed]="referentChoisi != undefined"> <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">Veuillez sélectionner un référent</p>
<p *ngIf="referentChoisi != undefined">Référent sélectionné : {{referentChoisi.nom}} {{referentChoisi.prenom}}</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>
<mat-step label="Choix des collaborateurs" [completed]="collaborateursSelectionnes.length != 0" > <mat-step label="Choix des collaborateurs" [completed]="collaborateursSelectionnes.length != 0" >
@ -26,7 +26,7 @@
</mat-chip-list> </mat-chip-list>
</ng-container> </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>
<mat-step label="Confirmation"> <mat-step label="Confirmation">

@ -24,7 +24,6 @@ export class AssignationReferentComponent {
rolesReferents : string[] = ["Manager", "RA", "CP", "TL"]; rolesReferents : string[] = ["Manager", "RA", "CP", "TL"];
typeRechercheReferent: string = collaborateurTypeRecherche.referents; typeRechercheReferent: string = collaborateurTypeRecherche.referents;
collaborateursEP: CollaborateurDTO[] = []; collaborateursEP: CollaborateurDTO[] = [];
@ -36,13 +35,13 @@ export class AssignationReferentComponent {
collaborateursSelectionnes: CollaborateurDTO[] = []; 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"]; 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"]; displayedColumnsCollaborateurs : string[] = ["businessunit", "collaborateur", "datearrivee", "referent"];
collaborateurSubscription: Subscription; collaborateurSubscription: Subscription;
@ -53,13 +52,17 @@ export class AssignationReferentComponent {
private snackBar: MatSnackBar) { private snackBar: MatSnackBar) {
} }
choixReferent(event: any) {
selectionnerReferent(event: any) {
console.log(event); console.log(event);
this.referentChoisi = event.collaborateur; 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( this.collaborateurSubscription = this.collaborateurService.getCollaborateursByReferent(this.referentChoisi.id).subscribe(
collaborateurs => { collaborateurs => {
this.collaborateursEP = 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") if(event.type != "collaborateur")
return; return;
if(event.collaborateur.id == this.referentChoisi.id) { if(event.collaborateur.id == this.referentChoisi.id) {
@ -95,6 +103,7 @@ export class AssignationReferentComponent {
this.collaborateursSelectionnes = this.collaborateursSelectionnes.filter(c => c.id != collaborateur.id); this.collaborateursSelectionnes = this.collaborateursSelectionnes.filter(c => c.id != collaborateur.id);
} }
mettreAJourReferentEP() { mettreAJourReferentEP() {
const referentEP :ReferentEPDTO = { const referentEP :ReferentEPDTO = {
idReferent: this.referentChoisi.id, idReferent: this.referentChoisi.id,

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

@ -62,7 +62,7 @@ export class AffichageDetailsCollaborateurComponent implements OnInit{
} }
} }
ouvrirEP(event) { ouvrirEP(event :any) {
if(event.type == "ep") if(event.type == "ep")
this.router.navigate(["/ep", event.ep.id]); this.router.navigate(["/ep", event.ep.id]);
} }

@ -14,4 +14,4 @@
</ng-container> </ng-container>
<p *ngIf="collaborateursSelectionnes.length == 0">Veuillez sélectionner au moins un collaborateur</p> <p *ngIf="collaborateursSelectionnes.length == 0">Veuillez sélectionner au moins un collaborateur</p>
<button mat-raised-button color="primary" (click)="annuler()">Annuler</button> <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; this.referentChoisi = data.referent;
} }
selectionnerReferent(event) { selectionnerReferent(event :any) {
this.referentChoisi = event.collaborateur; 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") if(event.type != "collaborateur")
return; return;
if(event.collaborateur.id == this.data.id) { 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); this.collaborateursSelectionnes = this.collaborateursSelectionnes.filter(c => c.id != collaborateur.id);
} }
ajouterCollaborateur(event) {
if(event.type == "collaborateur") {
}
}
mettreAJourReferentEP() { mettreAJourReferentEP() {
const referentEP : ReferentEPDTO = { const referentEP : ReferentEPDTO = {

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

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

@ -22,7 +22,7 @@
<!-- Datepicker début --> <!-- Datepicker début -->
<mat-form-field > <mat-form-field >
<mat-label>Date de début</mat-label> <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-icon *ngIf="this.dateDebut != undefined" matDatepickerToggleIcon (click)="updateDateToUndefined(1)">clear</mat-icon>
<mat-datepicker-toggle matSuffix [for]="dateDebutPicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="dateDebutPicker"></mat-datepicker-toggle>
<mat-datepicker touchUi #dateDebutPicker disabled="false"></mat-datepicker> <mat-datepicker touchUi #dateDebutPicker disabled="false"></mat-datepicker>
@ -31,7 +31,7 @@
<!-- Datepicker fin --> <!-- Datepicker fin -->
<mat-form-field> <mat-form-field>
<mat-label>Date de fin</mat-label> <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-icon *ngIf="this.dateFin != undefined" matDatepickerToggleIcon (click)="updateDateToUndefined(2)">clear</mat-icon>
<mat-datepicker-toggle matSuffix [for]="dateFinPicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="dateFinPicker"></mat-datepicker-toggle>
<mat-datepicker touchUi #dateFinPicker disabled="false"></mat-datepicker> <mat-datepicker touchUi #dateFinPicker disabled="false"></mat-datepicker>
@ -46,7 +46,7 @@
<!-- Affichage de la liste des collaborateurs --> <!-- 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"> <ng-container matColumnDef="businessunit">
<mat-header-cell *matHeaderCellDef mat-sort-header disableClear>Agence</mat-header-cell> <mat-header-cell *matHeaderCellDef mat-sort-header disableClear>Agence</mat-header-cell>
<mat-cell *matCellDef="let row">{{ row.businessUnit.nom }}</mat-cell> <mat-cell *matCellDef="let row">{{ row.businessUnit.nom }}</mat-cell>
@ -79,7 +79,7 @@
[pageIndex]="numPage-1" [pageIndex]="numPage-1"
[pageSize]="parPage" [pageSize]="parPage"
[pageSizeOptions]="pageOption" [pageSizeOptions]="pageOption"
(page)="updatePageInfo($event)"> (page)="updatePaginationTableau($event)">
</mat-paginator> </mat-paginator>
</ng-container> </ng-container>
</ng-container> </ng-container>

@ -160,7 +160,7 @@ export class CollaborateursTableComponent implements OnInit {
* Mettre à jour les informations à afficher dans la tableau. * 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. * 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) { switch(this.typeRecherche) {
case collaborateurTypeRecherche.collaborateurs: case collaborateurTypeRecherche.collaborateurs:
case collaborateurTypeRecherche.referents: case collaborateurTypeRecherche.referents:
@ -215,17 +215,17 @@ export class CollaborateursTableComponent implements OnInit {
this.dateDebut = undefined; this.dateDebut = undefined;
if(val == 2) if(val == 2)
this.dateFin = undefined; this.dateFin = undefined;
this.updateDataSource(); this.updateDonneesTableau();
} }
/** /**
* Mettre à jour le nomre d'élément à afficher par page et le numéro de la page * Mettre à jour le nomre d'élément à afficher par page et le numéro de la page
* @param event évènement de la pagination * @param event évènement de la pagination
*/ */
updatePageInfo(event){ updatePaginationTableau(event){
this.parPage = event.pageSize; this.parPage = event.pageSize;
this.numPage = event.pageIndex+1; this.numPage = event.pageIndex+1;
this.updateDataSource(); this.updateDonneesTableau();
} }
/** /**
@ -233,7 +233,7 @@ export class CollaborateursTableComponent implements OnInit {
*/ */
setSearch() { setSearch() {
this.numPage = 1; 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 * Trier le tableau en fonction de l'évènement de la colonne
* @param e évènement du tri * @param e évènement du tri
*/ */
triTableau(e) { trierTableau(e) {
this.tri = e.active; this.tri = e.active;
switch(e.direction) { switch(e.direction) {
case "asc": case "asc":
@ -260,7 +260,7 @@ export class CollaborateursTableComponent implements OnInit {
this.asc = false; this.asc = false;
break; break;
} }
this.updateDataSource(); this.updateDonneesTableau();
} }
/** /**
@ -276,12 +276,17 @@ export class CollaborateursTableComponent implements OnInit {
for(let bu of this.bus) { for(let bu of this.bus) {
this.busIds.push(bu.id); this.busIds.push(bu.id);
} }
this.updateDataSource(); this.updateDonneesTableau();
this.chargement = false; this.chargement = false;
} }
} }
setClassCouleurLigne(collaborateur: CollaborateurDTO) { /**
* 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)) { if(this.contientCollaborateur(this.collaborateursAjouts,collaborateur)) {
return "collaborateurAjoute"; return "collaborateurAjoute";
} }
@ -308,7 +313,7 @@ export class CollaborateursTableComponent implements OnInit {
this.busIds = this.busIds.filter( (id) => id != bu.id); this.busIds = this.busIds.filter( (id) => id != bu.id);
} }
this.numPage = 1; this.numPage = 1;
this.updateDataSource(); this.updateDonneesTableau();
} }
/** /**

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

@ -104,7 +104,7 @@ export class EngagementTableComponent implements OnInit {
} }
updateDataSource() { updateDonneesTableau() {
if(this.busIds.length == 0 || this.etatsEngagements.length == 0) { if(this.busIds.length == 0 || this.etatsEngagements.length == 0) {
this.taille = 0; this.taille = 0;
this.dataSource = new MatTableDataSource(undefined); this.dataSource = new MatTableDataSource(undefined);
@ -138,14 +138,14 @@ export class EngagementTableComponent implements OnInit {
for(let bu of this.bus) { for(let bu of this.bus) {
this.busIds.push(bu.id); this.busIds.push(bu.id);
} }
this.updateDataSource(); this.updateDonneesTableau();
this.chargement = false; this.chargement = false;
} }
} }
setSearch() { setSearch() {
this.numPage = 1; this.numPage = 1;
this.updateDataSource(); this.updateDonneesTableau();
} }
resetSearch() { resetSearch() {
@ -157,10 +157,10 @@ export class EngagementTableComponent implements OnInit {
* Mettre à jour le nomre d'élément à afficher par page et le numéro de la page * Mettre à jour le nomre d'élément à afficher par page et le numéro de la page
* @param event évènement de la pagination * @param event évènement de la pagination
*/ */
updatePageInfo(event){ updatePaginationTableau(event){
this.parPage = event.pageSize; this.parPage = event.pageSize;
this.numPage = event.pageIndex+1; this.numPage = event.pageIndex+1;
this.updateDataSource(); this.updateDonneesTableau();
} }
updateEtatsEngagement(event:boolean, etat:EtatEngagement) { updateEtatsEngagement(event:boolean, etat:EtatEngagement) {

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

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

@ -26,7 +26,7 @@
<!-- Affichage de la liste des formations --> <!-- 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"> <ng-container matColumnDef="intitule">
<mat-header-cell *matHeaderCellDef mat-sort-header disableClear>Intitulé</mat-header-cell> <mat-header-cell *matHeaderCellDef mat-sort-header disableClear>Intitulé</mat-header-cell>
<mat-cell *matCellDef="let row">{{ row.intitule }}</mat-cell> <mat-cell *matCellDef="let row">{{ row.intitule }}</mat-cell>
@ -76,7 +76,7 @@
[pageIndex]="numPage-1" [pageIndex]="numPage-1"
[pageSize]="parPage" [pageSize]="parPage"
[pageSizeOptions]="pageOption" [pageSizeOptions]="pageOption"
(page)="updatePageInfo($event)" (page)="updatePaginationTableau($event)"
> >
</mat-paginator> </mat-paginator>

@ -111,7 +111,7 @@ export class FormationsTableComponent implements OnInit {
* Mettre à jour les informations à afficher dans la tableau. * 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. * 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(); this.updateFormations();
} }
@ -156,7 +156,7 @@ export class FormationsTableComponent implements OnInit {
else { else {
this.collaborateurConnecte = JSON.parse(sessionStorage.getItem(cles.sessionKeyConnectee)); this.collaborateurConnecte = JSON.parse(sessionStorage.getItem(cles.sessionKeyConnectee));
this.idAgence = this.collaborateurConnecte.businessUnit.agence.id; this.idAgence = this.collaborateurConnecte.businessUnit.agence.id;
this.updateDataSource(); this.updateDonneesTableau();
this.chargement = false; 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 * Mettre à jour le nomre d'élément à afficher par page et le numéro de la page
* @param event évènement de la pagination * @param event évènement de la pagination
*/ */
updatePageInfo(event){ updatePaginationTableau(event){
this.parPage = event.pageSize; this.parPage = event.pageSize;
this.numPage = event.pageIndex+1; this.numPage = event.pageIndex+1;
this.updateDataSource(); this.updateDonneesTableau();
} }
@ -177,7 +177,7 @@ export class FormationsTableComponent implements OnInit {
*/ */
setSearch() { setSearch() {
this.numPage = 1; 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 * Trier le tableau en fonction de l'évènement de la colonne
* @param e évènement du tri * @param e évènement du tri
*/ */
triTableau(e) { trierTableau(e) {
this.tri = e.active; this.tri = e.active;
switch(e.direction) { switch(e.direction) {
case "asc": case "asc":
@ -204,7 +204,7 @@ export class FormationsTableComponent implements OnInit {
this.asc = false; this.asc = false;
break; break;
} }
this.updateDataSource(); this.updateDonneesTableau();
} }
/** /**
@ -220,7 +220,7 @@ export class FormationsTableComponent implements OnInit {
this.idStatuts = []; this.idStatuts = [];
this.numPage = 1; 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.idStatuts = this.idStatuts.filter(id => id != statut.id);
} }
this.numPage = 1; this.numPage = 1;
this.updateDataSource(); this.updateDonneesTableau();
} }
/** /**

@ -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