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. 38
      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. 10
      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. 18
      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. 16
      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. 27
      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,
"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,45 +2800,58 @@
}
},
"@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==",
"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"
}
},
"universalify": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
"integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
"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": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/@dsherret/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz",
@ -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": {
"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,
"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"
"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": "1.2.0",
"resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
"integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
"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": {
"boolbase": "~1.0.0",
"css-what": "2.1",
"domutils": "1.5.1",
"nth-check": "~1.0.1"
"boolbase": "^1.0.0",
"css-what": "^4.0.0",
"domhandler": "^4.0.0",
"domutils": "^2.4.3",
"nth-check": "^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==",
"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": "0.1.1",
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz",
"integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==",
"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": "^1.3.0",
"entities": "^1.1.1"
"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
},
"domutils": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
"integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
"version": "2.4.4",
"resolved": "https://registry.npmjs.org/domutils/-/domutils-2.4.4.tgz",
"integrity": "sha512-jBC0vOsECI4OMdD0GC9mGn7NXPLb+Qt6KW1YDQzeQYRUFKmNG8lh7mO5HiELfr+lLQE7loDVI4QcAxV80HS+RA==",
"dev": true,
"requires": {
"dom-serializer": "0",
"domelementtype": "1"
"dom-serializer": "^1.0.1",
"domelementtype": "^2.0.1",
"domhandler": "^4.0.0"
}
},
"entities": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
"integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==",
"dev": true
},
"parse5": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz",
"integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==",
"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": {
"@types/node": "*"
"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>
-->
<affichage-details-collaborateur [idCollaborateur]="idCollaborateur"></affichage-details-collaborateur>

@ -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,7 +5,8 @@ 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',
templateUrl: './demandes-delegation.component.html'
@ -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,7 +7,8 @@ import { Subscription } from 'rxjs';
/**
*/
* Composant pour faire afficher les détails d'une demande de délégation
*/
@Component({
selector: 'app-demande-delegation',
templateUrl: './demande-delegation.component.html'
@ -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,18 +94,18 @@ export class DialogReponseDemandeDelegation {
}
}
enregistrer() {
if(this.estRefus && this.raisonRefus == "")
return;
let demandeDelegation: DemandeDelegationDTO = this.data.demandeDelegation;
demandeDelegation.etatDemande = this.data.etatDemande;
demandeDelegation.raisonRefus = this.raisonRefus;
this.reponse = {
engistree: true,
demandeDelegation: demandeDelegation
enregistrer() {
if(this.estRefus && this.raisonRefus == "")
return;
let demandeDelegation: DemandeDelegationDTO = this.data.demandeDelegation;
demandeDelegation.etatDemande = this.data.etatDemande;
demandeDelegation.raisonRefus = this.raisonRefus;
this.reponse = {
engistree: true,
demandeDelegation: demandeDelegation
}
this.fermer();
}
this.fermer();
}

@ -6,18 +6,18 @@ 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] }
];
@NgModule({

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

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

@ -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.asc, this.numPage, this.parPage, this.search, this.tri).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">

@ -23,7 +23,6 @@ export class AssignationReferentComponent {
referentChoisi : CollaborateurDTO = undefined;
rolesReferents : string[] = ["Manager", "RA", "CP", "TL"];
typeRechercheReferent: string = collaborateurTypeRecherche.referents;
@ -36,13 +35,13 @@ 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"];
collaborateurSubscription: Subscription;
@ -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]
}
];

@ -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) {
@ -126,12 +129,7 @@ export class DialogAssignationRapideCollaborateursComponent implements OnInit{
enleverCollaborateur(collaborateur: CollaborateurDTO) {
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 => {

@ -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:
@ -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,12 +276,17 @@ export class CollaborateursTableComponent implements OnInit {
for(let bu of this.bus) {
this.busIds.push(bu.id);
}
this.updateDataSource();
this.updateDonneesTableau();
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)) {
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();
}
/**

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

@ -104,7 +104,7 @@ export class EngagementTableComponent implements OnInit {
}
updateDataSource() {
updateDonneesTableau() {
if(this.busIds.length == 0 || this.etatsEngagements.length == 0) {
this.taille = 0;
this.dataSource = new MatTableDataSource(undefined);
@ -138,14 +138,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() {
@ -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
* @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,14 +45,14 @@
<!-- 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>
</mat-form-field>
</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">
<mat-header-cell *matHeaderCellDef mat-sort-header disableClear>
Business Unit
@ -120,7 +120,7 @@
[pageIndex]="numPage-1"
[pageSize]="parPage"
[pageSizeOptions]="pageOption"
(page)="updatePageInfo($event)"
(page)="updatePaginationTableau($event)"
>
</mat-paginator>

@ -94,7 +94,7 @@ export class EpTableComponent implements OnInit{
});
}
updateDataSource() {
updateDonneesTableau() {
switch(this.typeRechercheEP) {
case epTypeRecherche.EPEnCours:
this.getEPEnCours();
@ -199,7 +199,7 @@ export class EpTableComponent implements OnInit{
/*for(let bu of this.bus) {
this.busIds.push(bu.id);
}*/
this.updateDataSource();
this.updateDonneesTableau();
this.chargement = false;
}
}
@ -213,17 +213,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();
}
/**
@ -231,7 +231,7 @@ export class EpTableComponent implements OnInit{
*/
setSearch() {
this.numPage = 1;
this.updateDataSource();
this.updateDonneesTableau();
}
/**
@ -255,7 +255,7 @@ export class EpTableComponent implements OnInit{
this.busIds = [];
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.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":
@ -289,7 +289,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();
}
@ -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();
}
/**

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