ddd
parent
03273148fa
commit
3b5fb13d60
|
@ -18,10 +18,15 @@
|
||||||
"@fortawesome/free-regular-svg-icons": "^6.1.1",
|
"@fortawesome/free-regular-svg-icons": "^6.1.1",
|
||||||
"@fortawesome/free-solid-svg-icons": "^6.1.1",
|
"@fortawesome/free-solid-svg-icons": "^6.1.1",
|
||||||
"@fortawesome/react-fontawesome": "^0.1.18",
|
"@fortawesome/react-fontawesome": "^0.1.18",
|
||||||
"@fullcalendar/core": "^6.1.9",
|
"@fullcalendar/core": "^6.1.11",
|
||||||
"@fullcalendar/daygrid": "^6.1.9",
|
"@fullcalendar/daygrid": "^6.1.9",
|
||||||
"@fullcalendar/interaction": "^6.1.9",
|
"@fullcalendar/interaction": "^6.1.9",
|
||||||
|
"@fullcalendar/multimonth": "^6.1.11",
|
||||||
"@fullcalendar/react": "^6.1.9",
|
"@fullcalendar/react": "^6.1.9",
|
||||||
|
"@fullcalendar/resource": "^6.1.11",
|
||||||
|
"@fullcalendar/resource-timegrid": "^6.1.11",
|
||||||
|
"@fullcalendar/resource-timeline": "^6.1.11",
|
||||||
|
"@fullcalendar/scrollgrid": "^6.1.11",
|
||||||
"@fullcalendar/timegrid": "^6.1.9",
|
"@fullcalendar/timegrid": "^6.1.9",
|
||||||
"@mantine/core": "^4.2.10",
|
"@mantine/core": "^4.2.10",
|
||||||
"@mantine/hooks": "^4.2.10",
|
"@mantine/hooks": "^4.2.10",
|
||||||
|
@ -3224,19 +3229,19 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@fullcalendar/core": {
|
"node_modules/@fullcalendar/core": {
|
||||||
"version": "6.1.9",
|
"version": "6.1.11",
|
||||||
"resolved": "https://registry.npmjs.org/@fullcalendar/core/-/core-6.1.9.tgz",
|
"resolved": "https://registry.npmjs.org/@fullcalendar/core/-/core-6.1.11.tgz",
|
||||||
"integrity": "sha512-eeG+z9BWerdsU9Ac6j16rpYpPnE0wxtnEHiHrh/u/ADbGTR3hCOjCD9PxQOfhOTHbWOVs7JQunGcksSPu5WZBQ==",
|
"integrity": "sha512-TjG7c8sUz+Vkui2FyCNJ+xqyu0nq653Ibe99A66LoW95oBo6tVhhKIaG1Wh0GVKymYiqAQN/OEdYTuj4ay27kA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"preact": "~10.12.1"
|
"preact": "~10.12.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@fullcalendar/daygrid": {
|
"node_modules/@fullcalendar/daygrid": {
|
||||||
"version": "6.1.9",
|
"version": "6.1.11",
|
||||||
"resolved": "https://registry.npmjs.org/@fullcalendar/daygrid/-/daygrid-6.1.9.tgz",
|
"resolved": "https://registry.npmjs.org/@fullcalendar/daygrid/-/daygrid-6.1.11.tgz",
|
||||||
"integrity": "sha512-o/6joH/7lmVHXAkbaa/tUbzWYnGp/LgfdiFyYPkqQbjKEeivNZWF1WhHqFbhx0zbFONSHtrvkjY2bjr+Ef2quQ==",
|
"integrity": "sha512-hF5jJB7cgUIxWD5MVjj8IU407HISyLu7BWXcEIuTytkfr8oolOXeCazqnnjmRbnFOncoJQVstTtq6SIhaT32Xg==",
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@fullcalendar/core": "~6.1.9"
|
"@fullcalendar/core": "~6.1.11"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@fullcalendar/interaction": {
|
"node_modules/@fullcalendar/interaction": {
|
||||||
|
@ -3247,6 +3252,25 @@
|
||||||
"@fullcalendar/core": "~6.1.9"
|
"@fullcalendar/core": "~6.1.9"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@fullcalendar/multimonth": {
|
||||||
|
"version": "6.1.11",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fullcalendar/multimonth/-/multimonth-6.1.11.tgz",
|
||||||
|
"integrity": "sha512-7DbPC+AAlaKnquGVdw1Z85Q3nSZ4GZ1NcVIk4k7bLnqDlntwHPPsrDlSIzUWKcN0q5/u7jQHm4PU1m3LAl70Sg==",
|
||||||
|
"dependencies": {
|
||||||
|
"@fullcalendar/daygrid": "~6.1.11"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@fullcalendar/core": "~6.1.11"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@fullcalendar/premium-common": {
|
||||||
|
"version": "6.1.11",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fullcalendar/premium-common/-/premium-common-6.1.11.tgz",
|
||||||
|
"integrity": "sha512-3WsSizkGDJEu+AlgQlFXKI+/DYCYTRp0PQRz0vS63qKBEUsVzfSD0oi/7jCylZJlCUteIjbi4Hu1I2I5o6UHrQ==",
|
||||||
|
"peerDependencies": {
|
||||||
|
"@fullcalendar/core": "~6.1.11"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@fullcalendar/react": {
|
"node_modules/@fullcalendar/react": {
|
||||||
"version": "6.1.9",
|
"version": "6.1.9",
|
||||||
"resolved": "https://registry.npmjs.org/@fullcalendar/react/-/react-6.1.9.tgz",
|
"resolved": "https://registry.npmjs.org/@fullcalendar/react/-/react-6.1.9.tgz",
|
||||||
|
@ -3257,15 +3281,90 @@
|
||||||
"react-dom": "^16.7.0 || ^17 || ^18"
|
"react-dom": "^16.7.0 || ^17 || ^18"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@fullcalendar/timegrid": {
|
"node_modules/@fullcalendar/resource": {
|
||||||
"version": "6.1.9",
|
"version": "6.1.11",
|
||||||
"resolved": "https://registry.npmjs.org/@fullcalendar/timegrid/-/timegrid-6.1.9.tgz",
|
"resolved": "https://registry.npmjs.org/@fullcalendar/resource/-/resource-6.1.11.tgz",
|
||||||
"integrity": "sha512-le7UV05wVE1Trdr054kgJXTwa+A1pEI8nlCBnPWdcyrL+dTLoPvQ4AWEVCnV7So+4zRYaCqnqGXfCJsj0RQa0g==",
|
"integrity": "sha512-hxTQQ+eywfcC28JeyQEdJov+Jqa73zy4xU0Gg7DTTOVlS2lFVrQKM5aMXW8iz800rPbvHFAyVwfFNHclJrRoeQ==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fullcalendar/daygrid": "~6.1.9"
|
"@fullcalendar/premium-common": "~6.1.11"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@fullcalendar/core": "~6.1.9"
|
"@fullcalendar/core": "~6.1.11"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@fullcalendar/resource-daygrid": {
|
||||||
|
"version": "6.1.11",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fullcalendar/resource-daygrid/-/resource-daygrid-6.1.11.tgz",
|
||||||
|
"integrity": "sha512-d/tuNS3mEDELlcohaJ/tQh4SbfeJzO6+1jLZ7Zzpm2oerdYskAzroB0qUlzhs4F9E5WeMj5RfXWUbZ+bmeoYvQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"@fullcalendar/daygrid": "~6.1.11",
|
||||||
|
"@fullcalendar/premium-common": "~6.1.11"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@fullcalendar/core": "~6.1.11",
|
||||||
|
"@fullcalendar/resource": "~6.1.11"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@fullcalendar/resource-timegrid": {
|
||||||
|
"version": "6.1.11",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fullcalendar/resource-timegrid/-/resource-timegrid-6.1.11.tgz",
|
||||||
|
"integrity": "sha512-oomckSrvBjRpp2U8knsimhUWIaIcHf834gWOHpNMwxthzDX1CZ+QzQ3/ZSwMSu0N+L8y2TMpfcBwddX3gCEkTA==",
|
||||||
|
"dependencies": {
|
||||||
|
"@fullcalendar/premium-common": "~6.1.11",
|
||||||
|
"@fullcalendar/resource-daygrid": "~6.1.11",
|
||||||
|
"@fullcalendar/timegrid": "~6.1.11"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@fullcalendar/core": "~6.1.11",
|
||||||
|
"@fullcalendar/resource": "~6.1.11"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@fullcalendar/resource-timeline": {
|
||||||
|
"version": "6.1.11",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fullcalendar/resource-timeline/-/resource-timeline-6.1.11.tgz",
|
||||||
|
"integrity": "sha512-RIQOwGxN8n2jSIOsEGUjzoGgdYDZq8t4sUvSUfnahGwyCesMqsYNmpA+58PFy/BHPIgxyvy8awH2CnjjSN7Uiw==",
|
||||||
|
"dependencies": {
|
||||||
|
"@fullcalendar/premium-common": "~6.1.11",
|
||||||
|
"@fullcalendar/scrollgrid": "~6.1.11",
|
||||||
|
"@fullcalendar/timeline": "~6.1.11"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@fullcalendar/core": "~6.1.11",
|
||||||
|
"@fullcalendar/resource": "~6.1.11"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@fullcalendar/scrollgrid": {
|
||||||
|
"version": "6.1.11",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fullcalendar/scrollgrid/-/scrollgrid-6.1.11.tgz",
|
||||||
|
"integrity": "sha512-GRhhU8ACHqgfxdMnP59VPThfNG3Stkp9zq1sLnI992g1fZQ+V2UhYvl5qhu3eEVSp2KTDPx4NaoR35cQGrC1Mw==",
|
||||||
|
"dependencies": {
|
||||||
|
"@fullcalendar/premium-common": "~6.1.11"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@fullcalendar/core": "~6.1.11"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@fullcalendar/timegrid": {
|
||||||
|
"version": "6.1.11",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fullcalendar/timegrid/-/timegrid-6.1.11.tgz",
|
||||||
|
"integrity": "sha512-0seUHK/ferH89IeuCvV4Bib0zWjgK0nsptNdmAc9wDBxD/d9hm5Mdti0URJX6bDoRtsSfRDu5XsRcrzwoc+AUQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"@fullcalendar/daygrid": "~6.1.11"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@fullcalendar/core": "~6.1.11"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@fullcalendar/timeline": {
|
||||||
|
"version": "6.1.11",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fullcalendar/timeline/-/timeline-6.1.11.tgz",
|
||||||
|
"integrity": "sha512-MGUEAHlFBWxpuhSWhZbHOtD9i+b8GZjqNV82MH+vwPHq1Jjqe8qj9Wby00vKikdWH+RuAB+IuiKjQaROEU0Ecw==",
|
||||||
|
"dependencies": {
|
||||||
|
"@fullcalendar/premium-common": "~6.1.11",
|
||||||
|
"@fullcalendar/scrollgrid": "~6.1.11"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@fullcalendar/core": "~6.1.11"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@googlemaps/js-api-loader": {
|
"node_modules/@googlemaps/js-api-loader": {
|
||||||
|
@ -35898,34 +35997,101 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@fullcalendar/core": {
|
"@fullcalendar/core": {
|
||||||
"version": "6.1.9",
|
"version": "6.1.11",
|
||||||
"resolved": "https://registry.npmjs.org/@fullcalendar/core/-/core-6.1.9.tgz",
|
"resolved": "https://registry.npmjs.org/@fullcalendar/core/-/core-6.1.11.tgz",
|
||||||
"integrity": "sha512-eeG+z9BWerdsU9Ac6j16rpYpPnE0wxtnEHiHrh/u/ADbGTR3hCOjCD9PxQOfhOTHbWOVs7JQunGcksSPu5WZBQ==",
|
"integrity": "sha512-TjG7c8sUz+Vkui2FyCNJ+xqyu0nq653Ibe99A66LoW95oBo6tVhhKIaG1Wh0GVKymYiqAQN/OEdYTuj4ay27kA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"preact": "~10.12.1"
|
"preact": "~10.12.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@fullcalendar/daygrid": {
|
"@fullcalendar/daygrid": {
|
||||||
"version": "6.1.9",
|
"version": "6.1.11",
|
||||||
"resolved": "https://registry.npmjs.org/@fullcalendar/daygrid/-/daygrid-6.1.9.tgz",
|
"resolved": "https://registry.npmjs.org/@fullcalendar/daygrid/-/daygrid-6.1.11.tgz",
|
||||||
"integrity": "sha512-o/6joH/7lmVHXAkbaa/tUbzWYnGp/LgfdiFyYPkqQbjKEeivNZWF1WhHqFbhx0zbFONSHtrvkjY2bjr+Ef2quQ=="
|
"integrity": "sha512-hF5jJB7cgUIxWD5MVjj8IU407HISyLu7BWXcEIuTytkfr8oolOXeCazqnnjmRbnFOncoJQVstTtq6SIhaT32Xg=="
|
||||||
},
|
},
|
||||||
"@fullcalendar/interaction": {
|
"@fullcalendar/interaction": {
|
||||||
"version": "6.1.9",
|
"version": "6.1.9",
|
||||||
"resolved": "https://registry.npmjs.org/@fullcalendar/interaction/-/interaction-6.1.9.tgz",
|
"resolved": "https://registry.npmjs.org/@fullcalendar/interaction/-/interaction-6.1.9.tgz",
|
||||||
"integrity": "sha512-I3FGnv0kKZpIwujg3HllbKrciNjTqeTYy3oJG226oAn7lV6wnrrDYMmuGmA0jPJAGN46HKrQqKN7ItxQRDec4Q=="
|
"integrity": "sha512-I3FGnv0kKZpIwujg3HllbKrciNjTqeTYy3oJG226oAn7lV6wnrrDYMmuGmA0jPJAGN46HKrQqKN7ItxQRDec4Q=="
|
||||||
},
|
},
|
||||||
|
"@fullcalendar/multimonth": {
|
||||||
|
"version": "6.1.11",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fullcalendar/multimonth/-/multimonth-6.1.11.tgz",
|
||||||
|
"integrity": "sha512-7DbPC+AAlaKnquGVdw1Z85Q3nSZ4GZ1NcVIk4k7bLnqDlntwHPPsrDlSIzUWKcN0q5/u7jQHm4PU1m3LAl70Sg==",
|
||||||
|
"requires": {
|
||||||
|
"@fullcalendar/daygrid": "~6.1.11"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@fullcalendar/premium-common": {
|
||||||
|
"version": "6.1.11",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fullcalendar/premium-common/-/premium-common-6.1.11.tgz",
|
||||||
|
"integrity": "sha512-3WsSizkGDJEu+AlgQlFXKI+/DYCYTRp0PQRz0vS63qKBEUsVzfSD0oi/7jCylZJlCUteIjbi4Hu1I2I5o6UHrQ=="
|
||||||
|
},
|
||||||
"@fullcalendar/react": {
|
"@fullcalendar/react": {
|
||||||
"version": "6.1.9",
|
"version": "6.1.9",
|
||||||
"resolved": "https://registry.npmjs.org/@fullcalendar/react/-/react-6.1.9.tgz",
|
"resolved": "https://registry.npmjs.org/@fullcalendar/react/-/react-6.1.9.tgz",
|
||||||
"integrity": "sha512-ioxu0V++pYz2u/N1LL1V8DkMyiKGRun0gMAll2tQz3Kzi3r9pTwncGKRb1zO8h0e+TrInU08ywk/l5lBwp7eog=="
|
"integrity": "sha512-ioxu0V++pYz2u/N1LL1V8DkMyiKGRun0gMAll2tQz3Kzi3r9pTwncGKRb1zO8h0e+TrInU08ywk/l5lBwp7eog=="
|
||||||
},
|
},
|
||||||
"@fullcalendar/timegrid": {
|
"@fullcalendar/resource": {
|
||||||
"version": "6.1.9",
|
"version": "6.1.11",
|
||||||
"resolved": "https://registry.npmjs.org/@fullcalendar/timegrid/-/timegrid-6.1.9.tgz",
|
"resolved": "https://registry.npmjs.org/@fullcalendar/resource/-/resource-6.1.11.tgz",
|
||||||
"integrity": "sha512-le7UV05wVE1Trdr054kgJXTwa+A1pEI8nlCBnPWdcyrL+dTLoPvQ4AWEVCnV7So+4zRYaCqnqGXfCJsj0RQa0g==",
|
"integrity": "sha512-hxTQQ+eywfcC28JeyQEdJov+Jqa73zy4xU0Gg7DTTOVlS2lFVrQKM5aMXW8iz800rPbvHFAyVwfFNHclJrRoeQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@fullcalendar/daygrid": "~6.1.9"
|
"@fullcalendar/premium-common": "~6.1.11"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@fullcalendar/resource-daygrid": {
|
||||||
|
"version": "6.1.11",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fullcalendar/resource-daygrid/-/resource-daygrid-6.1.11.tgz",
|
||||||
|
"integrity": "sha512-d/tuNS3mEDELlcohaJ/tQh4SbfeJzO6+1jLZ7Zzpm2oerdYskAzroB0qUlzhs4F9E5WeMj5RfXWUbZ+bmeoYvQ==",
|
||||||
|
"requires": {
|
||||||
|
"@fullcalendar/daygrid": "~6.1.11",
|
||||||
|
"@fullcalendar/premium-common": "~6.1.11"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@fullcalendar/resource-timegrid": {
|
||||||
|
"version": "6.1.11",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fullcalendar/resource-timegrid/-/resource-timegrid-6.1.11.tgz",
|
||||||
|
"integrity": "sha512-oomckSrvBjRpp2U8knsimhUWIaIcHf834gWOHpNMwxthzDX1CZ+QzQ3/ZSwMSu0N+L8y2TMpfcBwddX3gCEkTA==",
|
||||||
|
"requires": {
|
||||||
|
"@fullcalendar/premium-common": "~6.1.11",
|
||||||
|
"@fullcalendar/resource-daygrid": "~6.1.11",
|
||||||
|
"@fullcalendar/timegrid": "~6.1.11"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@fullcalendar/resource-timeline": {
|
||||||
|
"version": "6.1.11",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fullcalendar/resource-timeline/-/resource-timeline-6.1.11.tgz",
|
||||||
|
"integrity": "sha512-RIQOwGxN8n2jSIOsEGUjzoGgdYDZq8t4sUvSUfnahGwyCesMqsYNmpA+58PFy/BHPIgxyvy8awH2CnjjSN7Uiw==",
|
||||||
|
"requires": {
|
||||||
|
"@fullcalendar/premium-common": "~6.1.11",
|
||||||
|
"@fullcalendar/scrollgrid": "~6.1.11",
|
||||||
|
"@fullcalendar/timeline": "~6.1.11"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@fullcalendar/scrollgrid": {
|
||||||
|
"version": "6.1.11",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fullcalendar/scrollgrid/-/scrollgrid-6.1.11.tgz",
|
||||||
|
"integrity": "sha512-GRhhU8ACHqgfxdMnP59VPThfNG3Stkp9zq1sLnI992g1fZQ+V2UhYvl5qhu3eEVSp2KTDPx4NaoR35cQGrC1Mw==",
|
||||||
|
"requires": {
|
||||||
|
"@fullcalendar/premium-common": "~6.1.11"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@fullcalendar/timegrid": {
|
||||||
|
"version": "6.1.11",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fullcalendar/timegrid/-/timegrid-6.1.11.tgz",
|
||||||
|
"integrity": "sha512-0seUHK/ferH89IeuCvV4Bib0zWjgK0nsptNdmAc9wDBxD/d9hm5Mdti0URJX6bDoRtsSfRDu5XsRcrzwoc+AUQ==",
|
||||||
|
"requires": {
|
||||||
|
"@fullcalendar/daygrid": "~6.1.11"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@fullcalendar/timeline": {
|
||||||
|
"version": "6.1.11",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fullcalendar/timeline/-/timeline-6.1.11.tgz",
|
||||||
|
"integrity": "sha512-MGUEAHlFBWxpuhSWhZbHOtD9i+b8GZjqNV82MH+vwPHq1Jjqe8qj9Wby00vKikdWH+RuAB+IuiKjQaROEU0Ecw==",
|
||||||
|
"requires": {
|
||||||
|
"@fullcalendar/premium-common": "~6.1.11",
|
||||||
|
"@fullcalendar/scrollgrid": "~6.1.11"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@googlemaps/js-api-loader": {
|
"@googlemaps/js-api-loader": {
|
||||||
|
|
|
@ -13,10 +13,15 @@
|
||||||
"@fortawesome/free-regular-svg-icons": "^6.1.1",
|
"@fortawesome/free-regular-svg-icons": "^6.1.1",
|
||||||
"@fortawesome/free-solid-svg-icons": "^6.1.1",
|
"@fortawesome/free-solid-svg-icons": "^6.1.1",
|
||||||
"@fortawesome/react-fontawesome": "^0.1.18",
|
"@fortawesome/react-fontawesome": "^0.1.18",
|
||||||
"@fullcalendar/core": "^6.1.9",
|
"@fullcalendar/core": "^6.1.11",
|
||||||
"@fullcalendar/daygrid": "^6.1.9",
|
"@fullcalendar/daygrid": "^6.1.9",
|
||||||
"@fullcalendar/interaction": "^6.1.9",
|
"@fullcalendar/interaction": "^6.1.9",
|
||||||
|
"@fullcalendar/multimonth": "^6.1.11",
|
||||||
"@fullcalendar/react": "^6.1.9",
|
"@fullcalendar/react": "^6.1.9",
|
||||||
|
"@fullcalendar/resource": "^6.1.11",
|
||||||
|
"@fullcalendar/resource-timegrid": "^6.1.11",
|
||||||
|
"@fullcalendar/resource-timeline": "^6.1.11",
|
||||||
|
"@fullcalendar/scrollgrid": "^6.1.11",
|
||||||
"@fullcalendar/timegrid": "^6.1.9",
|
"@fullcalendar/timegrid": "^6.1.9",
|
||||||
"@mantine/core": "^4.2.10",
|
"@mantine/core": "^4.2.10",
|
||||||
"@mantine/hooks": "^4.2.10",
|
"@mantine/hooks": "^4.2.10",
|
||||||
|
|
|
@ -121,6 +121,33 @@ const AddClassManual = (props) => {
|
||||||
{ field: '_id', headerName: '_id', hide: true },
|
{ field: '_id', headerName: '_id', hide: true },
|
||||||
{ field: 'code', headerName: 'Code', minWidth: 150, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
{ field: 'code', headerName: 'Code', minWidth: 150, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||||
{ field: 'titre', headerName: 'Titre', minWidth: 150, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
{ field: 'titre', headerName: 'Titre', minWidth: 150, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||||
|
{ field: 'credit', headerName: 'Credit', minWidth: 150, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||||
|
{
|
||||||
|
field: 'pres_dist_hyp', headerName: 'Animation', minWidth: 150, flex: 1,
|
||||||
|
renderCell: (cellValues) => {
|
||||||
|
return (
|
||||||
|
<div style={{ paddingLeft: "5px", paddingRight: "15px", "display": "block", wordBreak: "break-all" }}>
|
||||||
|
{cellValues.row.pres_dist_hyp && String(cellValues.row.pres_dist_hyp) === "1" && "Distanciel"}
|
||||||
|
{cellValues.row.pres_dist_hyp && String(cellValues.row.pres_dist_hyp) === "0" && "Présentiel"}
|
||||||
|
{cellValues.row.pres_dist_hyp && String(cellValues.row.pres_dist_hyp) === "2" && "Hybride"}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'is_noted', headerName: 'Evalué', minWidth: 150, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />,
|
||||||
|
renderCell: (cellValues) => {
|
||||||
|
return (
|
||||||
|
<div style={{ paddingLeft: "5px", paddingRight: "15px", "display": "block", wordBreak: "break-all" }}>
|
||||||
|
{cellValues.row.is_noted && String(cellValues.row.is_noted) === "1" && "Oui"}
|
||||||
|
{cellValues.row.is_noted && String(cellValues.row.is_noted) === "0" && "Non"}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
{ field: 'duration_concat', headerName: 'Durée', minWidth: 150, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
{ field: 'duration_concat', headerName: 'Durée', minWidth: 150, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||||
{ field: 'duration', headerName: 'Durée', minWidth: 150, hide: true, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
{ field: 'duration', headerName: 'Durée', minWidth: 150, hide: true, flex: 1, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||||
{ field: 'duration_unite', headerName: 'Unit.', minWidth: 150, hide: true, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
{ field: 'duration_unite', headerName: 'Unit.', minWidth: 150, hide: true, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||||
|
@ -187,7 +214,7 @@ const AddClassManual = (props) => {
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
function handleClick_delete_UE_From_Class(event, cellValues){
|
function handleClick_delete_UE_From_Class(event, cellValues) {
|
||||||
Delete_Given_UE_From_Class(cellValues.row._id);
|
Delete_Given_UE_From_Class(cellValues.row._id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -864,13 +891,13 @@ const AddClassManual = (props) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mylocaltraining.presentiel.distantiel) {
|
if (mylocaltraining.presentiel.distantiel) {
|
||||||
console.log(" ### distantiel distantiel distantiel = ", mylocaltraining.presentiel.distantiel);
|
|
||||||
|
|
||||||
setmydistance(mylocaltraining.presentiel.distantiel);
|
setmydistance(mylocaltraining.presentiel.distantiel);
|
||||||
var result2 = presentiel.filter((local_mymanager) => local_mymanager.value === String((mylocaltraining.presentiel.distantiel)))
|
var result2 = presentiel.filter((local_mymanager) => local_mymanager.value === String((mylocaltraining.presentiel.distantiel)))
|
||||||
if (result2[0]){
|
if (result2[0]) {
|
||||||
setmydistance_label(result2[0].label);
|
setmydistance_label(result2[0].label);
|
||||||
console.log(" IN DISTANTIEL : result2[0].label = ", result2[0].label)
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
setmydistance("0");
|
setmydistance("0");
|
||||||
|
@ -880,13 +907,13 @@ const AddClassManual = (props) => {
|
||||||
|
|
||||||
if (mylocaltraining.presentiel.presentiel) {
|
if (mylocaltraining.presentiel.presentiel) {
|
||||||
|
|
||||||
console.log(" ### presentiel presentiel presentiel = ", mylocaltraining.presentiel.presentiel);
|
|
||||||
setmypresence(mylocaltraining.presentiel.presentiel);
|
setmypresence(mylocaltraining.presentiel.presentiel);
|
||||||
var result2 = presentiel.filter((local_mymanager) => local_mymanager.value === String((mylocaltraining.presentiel.presentiel)))
|
var result2 = presentiel.filter((local_mymanager) => local_mymanager.value === String((mylocaltraining.presentiel.presentiel)))
|
||||||
if (result2[0]){
|
if (result2[0]) {
|
||||||
setmypresence_label(result2[0].label);
|
setmypresence_label(result2[0].label);
|
||||||
|
|
||||||
console.log(" IN PRESEINTIEL : result2[0].label = ", result2[0].label)
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
setmypresence("0");
|
setmypresence("0");
|
||||||
|
@ -2339,6 +2366,9 @@ const AddClassManual = (props) => {
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
const [add_one_eu_to_class, setadd_one_eu_to_class] = useState("");
|
||||||
|
|
||||||
const [Record_All_PJ_api, setRecord_All_PJ_api] = useState();
|
const [Record_All_PJ_api, setRecord_All_PJ_api] = useState();
|
||||||
const [Record_All_PJ_result, setRecord_All_PJ_result] = useState();
|
const [Record_All_PJ_result, setRecord_All_PJ_result] = useState();
|
||||||
const [Record_All_PJ_message, setRecord_All_PJ_message] = useState();
|
const [Record_All_PJ_message, setRecord_All_PJ_message] = useState();
|
||||||
|
@ -2603,9 +2633,7 @@ const AddClassManual = (props) => {
|
||||||
|
|
||||||
const [selected_ue_id, setselected_ue_id] = useState("");
|
const [selected_ue_id, setselected_ue_id] = useState("");
|
||||||
const [selected_ue_credit, setselected_ue_credit] = useState("");
|
const [selected_ue_credit, setselected_ue_credit] = useState("");
|
||||||
|
|
||||||
const [selected_ue_is_noted, setselected_ue_is_noted] = useState("");
|
const [selected_ue_is_noted, setselected_ue_is_noted] = useState("");
|
||||||
|
|
||||||
const [selected_ue_pres_dist_hyp, setselected_ue_pres_dist_hyp] = useState("");
|
const [selected_ue_pres_dist_hyp, setselected_ue_pres_dist_hyp] = useState("");
|
||||||
|
|
||||||
const New_Option_Is_Noted = [
|
const New_Option_Is_Noted = [
|
||||||
|
@ -2629,15 +2657,27 @@ const AddClassManual = (props) => {
|
||||||
setselected_ue_credit("");
|
setselected_ue_credit("");
|
||||||
setselected_ue_is_noted("");
|
setselected_ue_is_noted("");
|
||||||
setselected_ue_pres_dist_hyp("");
|
setselected_ue_pres_dist_hyp("");
|
||||||
|
setadd_one_eu_to_class("");
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
function clean_ue_data() {
|
||||||
|
setselected_ue_id("");
|
||||||
|
setselected_ue_credit("");
|
||||||
|
setselected_ue_is_noted("");
|
||||||
|
setselected_ue_pres_dist_hyp("");
|
||||||
|
setadd_one_eu_to_class("");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
const Dialog_Unite_Enseignement_handleClose_buton = () => {
|
const Dialog_Unite_Enseignement_handleClose_buton = () => {
|
||||||
setDialog_Unite_Enseignement_open(false);
|
setDialog_Unite_Enseignement_open(false);
|
||||||
setselected_ue_id("");
|
setselected_ue_id("");
|
||||||
setselected_ue_credit("");
|
setselected_ue_credit("");
|
||||||
setselected_ue_is_noted("");
|
setselected_ue_is_noted("");
|
||||||
setselected_ue_pres_dist_hyp("");
|
setselected_ue_pres_dist_hyp("");
|
||||||
|
setadd_one_eu_to_class("");
|
||||||
};
|
};
|
||||||
|
|
||||||
const [Dialog_1_message, setDialog_1_message] = React.useState(false);
|
const [Dialog_1_message, setDialog_1_message] = React.useState(false);
|
||||||
|
@ -2693,6 +2733,13 @@ const AddClassManual = (props) => {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const [gridline_ue_id, setgridline_ue_id] = useState("");
|
||||||
|
|
||||||
|
const sleep = (milliseconds) => {
|
||||||
|
return new Promise(resolve => setTimeout(resolve, milliseconds))
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="addclassmanual">
|
<div className="addclassmanual">
|
||||||
{isLoading && <div className="loader-container">
|
{isLoading && <div className="loader-container">
|
||||||
|
@ -2713,7 +2760,9 @@ const AddClassManual = (props) => {
|
||||||
</DialogContentText>
|
</DialogContentText>
|
||||||
|
|
||||||
|
|
||||||
<div className="session_caract_Dialog" > Choisir une unité d'enseignement
|
|
||||||
|
{add_one_eu_to_class && String(add_one_eu_to_class) === "1" && <div className="session_caract_Dialog" > <b> Choisir une unité d'enseignement </b>
|
||||||
|
{New_Getall_Partner_List_UE_result && New_Getall_Partner_List_UE_result.length > 0 &&
|
||||||
<Autocomplete
|
<Autocomplete
|
||||||
disablePortal
|
disablePortal
|
||||||
name="event_dialog_ue_id"
|
name="event_dialog_ue_id"
|
||||||
|
@ -2721,7 +2770,7 @@ const AddClassManual = (props) => {
|
||||||
fullWidth
|
fullWidth
|
||||||
//className="disabled_style enable_style"
|
//className="disabled_style enable_style"
|
||||||
options={New_Getall_Partner_List_UE_result}
|
options={New_Getall_Partner_List_UE_result}
|
||||||
|
//value={New_Getall_Partner_List_UE_result.filter((data) => (data)._id === String(selected_ue_id))[0].label}
|
||||||
onChange={(event, value) => {
|
onChange={(event, value) => {
|
||||||
if (value && value._id) {
|
if (value && value._id) {
|
||||||
|
|
||||||
|
@ -2737,10 +2786,29 @@ const AddClassManual = (props) => {
|
||||||
|
|
||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
|
/>}
|
||||||
|
|
||||||
|
</div>}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{add_one_eu_to_class && String(add_one_eu_to_class) !== "1" &&
|
||||||
|
New_Getall_Partner_List_UE_result && New_Getall_Partner_List_UE_result.length > 0 &&
|
||||||
|
selected_ue_id && <div className="session_caract_Dialog" > <b> Unité d'enseignement </b>
|
||||||
|
<TextField
|
||||||
|
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||||
|
|
||||||
|
name="event_dialog_credit"
|
||||||
|
id="event_dialog_credit"
|
||||||
|
fullWidth
|
||||||
|
value={New_Getall_Partner_List_UE_result.filter((data) => (data)._id === String(selected_ue_id))[0].label}
|
||||||
|
|
||||||
/>
|
/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
<div className="session_caract_Dialog" > <b> Crédits </b>
|
<div className="session_caract_Dialog" > <b> Crédits </b>
|
||||||
<TextField
|
<TextField
|
||||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||||
|
@ -2749,7 +2817,7 @@ const AddClassManual = (props) => {
|
||||||
id="event_dialog_credit"
|
id="event_dialog_credit"
|
||||||
type="number"
|
type="number"
|
||||||
fullWidth
|
fullWidth
|
||||||
//value={p_detail_tuteur1_nom}
|
value={selected_ue_credit}
|
||||||
onChange={(e) => {
|
onChange={(e) => {
|
||||||
setselected_ue_credit(e.target.value);
|
setselected_ue_credit(e.target.value);
|
||||||
}
|
}
|
||||||
|
@ -2761,11 +2829,12 @@ const AddClassManual = (props) => {
|
||||||
|
|
||||||
|
|
||||||
<div className="session_caract_Dialog"> <b> Est Evalué </b><br />
|
<div className="session_caract_Dialog"> <b> Est Evalué </b><br />
|
||||||
|
|
||||||
<Autocomplete
|
<Autocomplete
|
||||||
disablePortal
|
disablePortal
|
||||||
name="event_dialog_is_noted"
|
name="event_dialog_is_noted"
|
||||||
id="event_dialog_is_noted"
|
id="event_dialog_is_noted"
|
||||||
//value={New_civilite.filter((data) => (data).value === String(p_detail_tuteur1_civilite))[0].label}
|
value={New_Option_Is_Noted.filter((data) => (data).id === String(selected_ue_is_noted))[0].label}
|
||||||
|
|
||||||
fullWidth
|
fullWidth
|
||||||
|
|
||||||
|
@ -2780,8 +2849,7 @@ const AddClassManual = (props) => {
|
||||||
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
|
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
|
||||||
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
|
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
|
||||||
|
|
||||||
/>
|
/>}
|
||||||
}
|
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2792,7 +2860,7 @@ const AddClassManual = (props) => {
|
||||||
disablePortal
|
disablePortal
|
||||||
name="event_dialog_mode_animation"
|
name="event_dialog_mode_animation"
|
||||||
id="event_dialog_mode_animation"
|
id="event_dialog_mode_animation"
|
||||||
//value={New_civilite.filter((data) => (data).value === String(p_detail_tuteur1_civilite))[0].label}
|
value={New_Option_pres_dist_hyp.filter((data) => (data).id === String(selected_ue_pres_dist_hyp))[0].label}
|
||||||
|
|
||||||
fullWidth
|
fullWidth
|
||||||
|
|
||||||
|
@ -2948,6 +3016,11 @@ const AddClassManual = (props) => {
|
||||||
_id: JSON.parse(item)._id,
|
_id: JSON.parse(item)._id,
|
||||||
code: JSON.parse(item).code,
|
code: JSON.parse(item).code,
|
||||||
titre: JSON.parse(item).titre,
|
titre: JSON.parse(item).titre,
|
||||||
|
|
||||||
|
credit: JSON.parse(item).credit,
|
||||||
|
pres_dist_hyp: JSON.parse(item).pres_dist_hyp,
|
||||||
|
is_noted: JSON.parse(item).is_noted,
|
||||||
|
|
||||||
duration: JSON.parse(item).duration,
|
duration: JSON.parse(item).duration,
|
||||||
duration_unite: JSON.parse(item).duration_unite,
|
duration_unite: JSON.parse(item).duration_unite,
|
||||||
duration_concat: JSON.parse(item).duration_concat,
|
duration_concat: JSON.parse(item).duration_concat,
|
||||||
|
@ -2959,24 +3032,22 @@ const AddClassManual = (props) => {
|
||||||
pageSize={10}
|
pageSize={10}
|
||||||
className="datagridclass"
|
className="datagridclass"
|
||||||
|
|
||||||
/* onRowDoubleClick={(newSelectionModel) => {
|
onRowDoubleClick={(newSelectionModel) => {
|
||||||
setgridline_id(newSelectionModel.row.id);
|
clean_ue_data();
|
||||||
|
setgridline_ue_id(newSelectionModel.row.id);
|
||||||
|
setselected_ue_id(newSelectionModel.row._id)
|
||||||
|
|
||||||
setsequence_gridline_id("");
|
var current_class_ue_data = New_Getall_Class_List_UE_result.filter((ue_data) => ue_data._id === String((newSelectionModel.row._id)))
|
||||||
|
|
||||||
setaddOneSession("0");
|
setselected_ue_credit(current_class_ue_data[0]['credit']);
|
||||||
setEdite_session("0");
|
setselected_ue_is_noted(current_class_ue_data[0]['is_noted']);
|
||||||
setsessionChanged(false);
|
setselected_ue_pres_dist_hyp(current_class_ue_data[0]['pres_dist_hyp']);
|
||||||
//handleClick_edit_session_From_Line(newSelectionModel.row.id);
|
setadd_one_eu_to_class("0");
|
||||||
|
|
||||||
setselected_session_id(newSelectionModel.row._id);
|
setDialog_Unite_Enseignement_open(true);
|
||||||
|
|
||||||
setsession_selected_row_id(newSelectionModel.row.id);
|
|
||||||
|
|
||||||
setDialog_2_message(String(JSON.parse(rowss[newSelectionModel.row.id]).title));
|
}}
|
||||||
setDialog_2_open(true);
|
|
||||||
|
|
||||||
}}*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -3041,10 +3112,11 @@ const AddClassManual = (props) => {
|
||||||
<div className="div_row_gauche div_row_gauche_etendu" style={{ "textAlign": "left", "paddingLeft": "5px" }}>
|
<div className="div_row_gauche div_row_gauche_etendu" style={{ "textAlign": "left", "paddingLeft": "5px" }}>
|
||||||
<Button variant="outlined" onClick={(e) => {
|
<Button variant="outlined" onClick={(e) => {
|
||||||
Getall_Partner_List_UE();
|
Getall_Partner_List_UE();
|
||||||
|
setadd_one_eu_to_class("1")
|
||||||
setDialog_Unite_Enseignement_open(true);
|
setDialog_Unite_Enseignement_open(true);
|
||||||
}}
|
}}
|
||||||
className="detail_class_submenu bton_add_session"
|
className="detail_class_submenu bton_add_session"
|
||||||
id='menu_import_participant' name='menu_import_participant'>Ajout une UE
|
id='menu_import_participant' name='menu_import_participant'>Ajout 1 UE
|
||||||
<IoAddCircleOutline style={{ "fontSize": "x-large", "color": "green" }} />
|
<IoAddCircleOutline style={{ "fontSize": "x-large", "color": "green" }} />
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -62,6 +62,7 @@ import FullCalendar from "@fullcalendar/react";
|
||||||
import daygridPlugin from "@fullcalendar/daygrid";
|
import daygridPlugin from "@fullcalendar/daygrid";
|
||||||
import interactionPlugin from "@fullcalendar/interaction";
|
import interactionPlugin from "@fullcalendar/interaction";
|
||||||
import timeGridPlugin from "@fullcalendar/timegrid";
|
import timeGridPlugin from "@fullcalendar/timegrid";
|
||||||
|
import resourceTimeGridPlugin from '@fullcalendar/resource-timegrid';
|
||||||
|
|
||||||
import allLocales from '@fullcalendar/core/locales-all'
|
import allLocales from '@fullcalendar/core/locales-all'
|
||||||
|
|
||||||
|
@ -10044,10 +10045,7 @@ const DisplayPartnerSession = (props) => {
|
||||||
|
|
||||||
const handleSelect = (info) => {
|
const handleSelect = (info) => {
|
||||||
|
|
||||||
/*if (String(selected_attendee_email).length < 2) {
|
|
||||||
alert(" Vous devez choisir un stagiaire");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
setp_detail_title("Nouvelle")
|
setp_detail_title("Nouvelle")
|
||||||
|
@ -10060,12 +10058,26 @@ const DisplayPartnerSession = (props) => {
|
||||||
|
|
||||||
setStartDate(info.start);
|
setStartDate(info.start);
|
||||||
setendDate(info.end);
|
setendDate(info.end);
|
||||||
setDialog_1_open(true);*/
|
setDialog_DIALOG_AGENDA_open(true);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const [p_detail_event_id, setp_detail_event_id] = useState();
|
||||||
|
const [p_detail_title, setp_detail_title] = useState();
|
||||||
|
const [p_detail_start, setp_detail_start] = useState();
|
||||||
|
const [p_detail_end, setp_detail_end] = useState();
|
||||||
|
const [p_detail_comment, setp_detail_comment] = useState();
|
||||||
|
const [p_detail_sequence_session_id, setp_detail_sequence_session_id] = useState("");
|
||||||
|
|
||||||
|
const [p_detail_justified, setp_detail_justified] = useState(false);
|
||||||
|
const [p_detail_event_type, setp_detail_event_type] = useState();
|
||||||
|
|
||||||
|
|
||||||
|
const [startDate, setStartDate] = useState(new Date());
|
||||||
|
const [endDate, setendDate] = useState(new Date());
|
||||||
|
|
||||||
const [mysy_events, setmysy_events] = useState();
|
const [mysy_events, setmysy_events] = useState();
|
||||||
|
|
||||||
const [Partner_Debut_Journee, setPartner_Debut_Journee] = useState("7:00");
|
const [Partner_Debut_Journee, setPartner_Debut_Journee] = useState("7:00");
|
||||||
|
@ -10073,17 +10085,13 @@ const DisplayPartnerSession = (props) => {
|
||||||
|
|
||||||
const handleEventClick = (arg) => {
|
const handleEventClick = (arg) => {
|
||||||
|
|
||||||
/* if (String(selected_attendee_email).length < 2) {
|
|
||||||
alert(" Vous devez choisir un stagiaire");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
setp_detail_title(arg.event.title)
|
setp_detail_title(arg.event.title)
|
||||||
setp_detail_start(arg.event.start)
|
setp_detail_start(arg.event.start)
|
||||||
setp_detail_end(arg.event.end)
|
setp_detail_end(arg.event.end)
|
||||||
setp_detail_event_id(arg.event.id);
|
setp_detail_event_id(arg.event.id);
|
||||||
|
|
||||||
|
/*
|
||||||
if (arg.event.extendedProps.comment) {
|
if (arg.event.extendedProps.comment) {
|
||||||
setp_detail_comment(arg.event.extendedProps.comment);
|
setp_detail_comment(arg.event.extendedProps.comment);
|
||||||
}
|
}
|
||||||
|
@ -10110,15 +10118,40 @@ const DisplayPartnerSession = (props) => {
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
setp_detail_event_type("");
|
setp_detail_event_type("");
|
||||||
|
*/
|
||||||
|
|
||||||
setStartDate(arg.event.start);
|
setStartDate(arg.event.start);
|
||||||
setendDate(arg.event.end);
|
setendDate(arg.event.end);
|
||||||
setDialog_1_open(true);
|
setDialog_DIALOG_AGENDA_open(true);
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const [Dialog_DIALOG_AGENDA_message, setDialog_DIALOG_AGENDA_message] = React.useState(false);
|
||||||
|
const [Dialog_DIALOG_AGENDA_open, setDialog_DIALOG_AGENDA_open] = React.useState(false);
|
||||||
|
function Dialog_DIALOG_AGENDA_handle_change_participant_session(message) {
|
||||||
|
setDialog_DIALOG_AGENDA_message(message);
|
||||||
|
setDialog_DIALOG_AGENDA_open(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
const Dialog_DIALOG_AGENDA_handleClose = () => {
|
||||||
|
//alert(" Utiliser le bouton 'fermer' ");
|
||||||
|
//setOpen(false);
|
||||||
|
};
|
||||||
|
|
||||||
|
const Dialog_DIALOG_AGENDA_handleClose_buton = () => {
|
||||||
|
setDialog_DIALOG_AGENDA_open(false);
|
||||||
|
};
|
||||||
|
|
||||||
|
const New_Option_Type_Event = [
|
||||||
|
|
||||||
|
{ "id": "0", "label": "Absence", "value": "absence" },
|
||||||
|
{ "id": "1", "label": "Planning", "value": "planning" },
|
||||||
|
{ "id": "2", "label": "Autre", "value": "autre" },
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="displaypartnersession">
|
<div className="displaypartnersession">
|
||||||
|
|
||||||
|
@ -10361,6 +10394,219 @@ const DisplayPartnerSession = (props) => {
|
||||||
</Dialog>
|
</Dialog>
|
||||||
|
|
||||||
{/*** fin dialog choix modele sequence */}
|
{/*** fin dialog choix modele sequence */}
|
||||||
|
|
||||||
|
{/**** Dialogue pour agenda */}
|
||||||
|
|
||||||
|
<Dialog
|
||||||
|
open={Dialog_DIALOG_AGENDA_open}
|
||||||
|
onClose={Dialog_DIALOG_AGENDA_handleClose}
|
||||||
|
|
||||||
|
className="module_agenda"
|
||||||
|
|
||||||
|
>
|
||||||
|
|
||||||
|
<DialogTitle>MySy Information</DialogTitle>
|
||||||
|
<DialogContent className="DialogContent_width">
|
||||||
|
<DialogContentText>
|
||||||
|
{Dialog_DIALOG_AGENDA_message}
|
||||||
|
</DialogContentText>
|
||||||
|
|
||||||
|
<div className="session_caract_Dialog" >
|
||||||
|
|
||||||
|
<nav style={{ "float": "left", "width": "30%", "paddingTop": "15px" }}> Type </nav>
|
||||||
|
|
||||||
|
|
||||||
|
<nav style={{ "float": "right", "width": "65%" }}>
|
||||||
|
<Autocomplete
|
||||||
|
disablePortal
|
||||||
|
name="event_dialog_type"
|
||||||
|
id="event_dialog_type"
|
||||||
|
value={p_detail_event_type}
|
||||||
|
fullWidth
|
||||||
|
options={New_Option_Type_Event}
|
||||||
|
onChange={(event, value) => {
|
||||||
|
if (String(props.write_access) === "1") {
|
||||||
|
|
||||||
|
if (value && value.value) {
|
||||||
|
setp_detail_event_type(value.value);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}}
|
||||||
|
|
||||||
|
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
|
||||||
|
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
|
||||||
|
|
||||||
|
/>
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
|
||||||
|
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
{String(p_detail_event_type) !== "planning" && <div className="session_caract_Dialog" >
|
||||||
|
<nav style={{ "float": "left", "width": "30%", "paddingTop": "15px" }}> Justifié ? </nav>
|
||||||
|
|
||||||
|
<nav style={{ "float": "right", "width": "65%" }}
|
||||||
|
onClick={(e) => {
|
||||||
|
if (p_detail_justified === true)
|
||||||
|
setp_detail_justified(false);
|
||||||
|
else
|
||||||
|
setp_detail_justified(true);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
id="toggleSwitchNav" name="toggleSwitchNav">
|
||||||
|
<ToggleSwitch id="toggleSwitch" name="toggleSwitch" checked={p_detail_justified}
|
||||||
|
/>
|
||||||
|
</nav>
|
||||||
|
</div>}
|
||||||
|
|
||||||
|
<div className="session_caract_Dialog" > Titre
|
||||||
|
<TextField
|
||||||
|
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||||
|
|
||||||
|
name="event_dialog_title"
|
||||||
|
id="event_dialog_title"
|
||||||
|
|
||||||
|
|
||||||
|
fullWidth
|
||||||
|
|
||||||
|
value={p_detail_title}
|
||||||
|
onChange={(e) => {
|
||||||
|
if (String(props.write_access) === "1" && String(p_detail_sequence_session_id) === "")
|
||||||
|
setp_detail_title(e.target.value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="session_caract_Dialog" > Debut
|
||||||
|
<DatePicker
|
||||||
|
name="event_dialog_start"
|
||||||
|
id="event_dialog_start"
|
||||||
|
selected={startDate}
|
||||||
|
onChange={(date) => {
|
||||||
|
if (String(props.write_access) === "1" && String(p_detail_sequence_session_id) === "")
|
||||||
|
return setStartDate(date);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
className="disabled_style session_caract_Dialog_DatePicker"
|
||||||
|
locale='fr-FR'
|
||||||
|
showTimeSelect
|
||||||
|
timeFormat="HH:mm"
|
||||||
|
timeIntervals={15}
|
||||||
|
dateFormat="dd/MM/yyyy HH:mm"
|
||||||
|
is24Hour
|
||||||
|
|
||||||
|
/>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div className="session_caract_Dialog" > Fin
|
||||||
|
<DatePicker
|
||||||
|
name="event_dialog_end"
|
||||||
|
id="event_dialog_end"
|
||||||
|
selected={endDate}
|
||||||
|
|
||||||
|
onChange={(date) => {
|
||||||
|
if (String(props.write_access) === "1" && String(p_detail_sequence_session_id) === "")
|
||||||
|
return setendDate(date);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
className="disabled_style session_caract_Dialog_DatePicker"
|
||||||
|
locale='fr-FR'
|
||||||
|
showTimeSelect
|
||||||
|
timeFormat="HH:mm"
|
||||||
|
timeIntervals={15}
|
||||||
|
dateFormat="dd/MM/yyyy HH:mm"
|
||||||
|
is24Hour
|
||||||
|
|
||||||
|
/>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="session_caract_Dialog_comment_2_lines" > Commentaire
|
||||||
|
<TextField
|
||||||
|
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||||
|
|
||||||
|
name="event_dialog_comment"
|
||||||
|
id="event_dialog_comment"
|
||||||
|
|
||||||
|
fullWidth
|
||||||
|
|
||||||
|
value={p_detail_comment}
|
||||||
|
onChange={(e) => {
|
||||||
|
|
||||||
|
console.log(" dans comment p_detail_sequence_session_id = ", p_detail_sequence_session_id);
|
||||||
|
if (String(props.write_access) === "1" && String(p_detail_sequence_session_id) === "")
|
||||||
|
setp_detail_comment(e.target.value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
multiline
|
||||||
|
minRows={2}
|
||||||
|
maxRows={2}
|
||||||
|
rows={2}
|
||||||
|
|
||||||
|
/>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</DialogContent>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<DialogActions>
|
||||||
|
<div className="div_row">
|
||||||
|
{String(props.write_access) === "1" && String(p_detail_sequence_session_id) === "" && <div className="div_row_gauche">
|
||||||
|
{p_detail_event_id && String(p_detail_event_id) !== "" && <Button onClick={"Update_One_Agenda_Event"} className="bton_enreg_dialog">Mettre à jour</Button>}
|
||||||
|
{(!p_detail_event_id || String(p_detail_event_id) === "") && <Button onClick={"Update_One_Agenda_Event"} className="bton_enreg_dialog">Ajouter</Button>}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>}
|
||||||
|
<div className="div_row_droite" style={{ "textAlign": 'center' }}>
|
||||||
|
<Button onClick={Dialog_DIALOG_AGENDA_handleClose_buton} className="bton_annule_dialog" >Fermer</Button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</DialogActions>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{String(props.write_access) === "1" && String(p_detail_sequence_session_id) === "" && p_detail_event_id && String(p_detail_event_id) !== "" &&
|
||||||
|
<DialogActions>
|
||||||
|
<div className="div_row" style={{ "textAlign": "center" }}>
|
||||||
|
<Button onClick={(e) => {
|
||||||
|
const response = window.confirm("Confirmez-vous la suppression de l'événement ?");
|
||||||
|
if (!response) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
"Delete_One_Agenda_Event"();
|
||||||
|
}
|
||||||
|
} className="bton_supprime_dialog">Supprimer l'événement</Button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</DialogActions>}
|
||||||
|
|
||||||
|
</Dialog>
|
||||||
|
|
||||||
|
|
||||||
|
{/*** fin dialogue pr agenda */}
|
||||||
<Dialog
|
<Dialog
|
||||||
open={Dialog_1_open}
|
open={Dialog_1_open}
|
||||||
onClose={Dialog_1_handleClose}
|
onClose={Dialog_1_handleClose}
|
||||||
|
@ -14011,7 +14257,7 @@ const DisplayPartnerSession = (props) => {
|
||||||
|
|
||||||
<div className="session_data">
|
<div className="session_data">
|
||||||
|
|
||||||
<div style={{ "textAlign": "right", "float": "right", "width": "100%", "marginRight":'20px' }}>
|
<div style={{ "textAlign": "right", "float": "right", "width": "100%", "marginRight": '20px' }}>
|
||||||
Affichage : <nav className="mode_affichage" onClick={func_display_planning_view}> <FcPlanner /> planning </nav>
|
Affichage : <nav className="mode_affichage" onClick={func_display_planning_view}> <FcPlanner /> planning </nav>
|
||||||
<nav className="mode_affichage" onClick={func_display_list_view}> <CiBoxList /> Liste </nav>
|
<nav className="mode_affichage" onClick={func_display_list_view}> <CiBoxList /> Liste </nav>
|
||||||
</div>
|
</div>
|
||||||
|
@ -14255,7 +14501,7 @@ const DisplayPartnerSession = (props) => {
|
||||||
}}
|
}}
|
||||||
//eventContent={(info) => <EventItem info={info} />}
|
//eventContent={(info) => <EventItem info={info} />}
|
||||||
//plugins={[timeGridPlugin]}
|
//plugins={[timeGridPlugin]}
|
||||||
plugins={[timeGridPlugin, daygridPlugin, interactionPlugin]}
|
plugins={[timeGridPlugin, daygridPlugin, interactionPlugin, resourceTimeGridPlugin]}
|
||||||
views={["dayGridMonth", "dayGridWeek", "dayGridDay"]}
|
views={["dayGridMonth", "dayGridWeek", "dayGridDay"]}
|
||||||
slotMinTime={Partner_Debut_Journee}
|
slotMinTime={Partner_Debut_Journee}
|
||||||
slotMaxTime={Partner_Fin_Journee}
|
slotMaxTime={Partner_Fin_Journee}
|
||||||
|
|
|
@ -42,6 +42,8 @@ import { TransitionProps } from '@mui/material/transitions';
|
||||||
import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif";
|
import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif";
|
||||||
import { IoAddCircleOutline, IoCloseCircleOutline } from "react-icons/io5";
|
import { IoAddCircleOutline, IoCloseCircleOutline } from "react-icons/io5";
|
||||||
import { gridClasses } from '@mui/x-data-grid';
|
import { gridClasses } from '@mui/x-data-grid';
|
||||||
|
import Link from '@mui/material/Link';
|
||||||
|
import { PiDotsThree } from "react-icons/pi";
|
||||||
|
|
||||||
const DisplayPartnerUnite_Enseignement = (props) => {
|
const DisplayPartnerUnite_Enseignement = (props) => {
|
||||||
const history = useHistory();
|
const history = useHistory();
|
||||||
|
@ -52,11 +54,18 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
||||||
var date_today_90j = new Date();
|
var date_today_90j = new Date();
|
||||||
date_today_90j.setDate(date_today_90j.getDate() + 90);
|
date_today_90j.setDate(date_today_90j.getDate() + 90);
|
||||||
|
|
||||||
const [p_filtre1, setp_filtre1] = useState();
|
const [p_filtre1, setp_filtre1] = useState("");
|
||||||
const [p_filtre1_value, setp_filtre1_value] = useState();
|
const [p_filtre1_value, setp_filtre1_value] = useState("");
|
||||||
|
|
||||||
|
const [p_filtre2, setp_filtre2] = useState("");
|
||||||
|
const [p_filtre2_value, setp_filtre2_value] = useState("");
|
||||||
|
|
||||||
|
const [p_filtre3, setp_filtre3] = useState("");
|
||||||
|
const [p_filtre3_value, setp_filtre3_value] = useState();
|
||||||
|
|
||||||
|
const [p_filtre4, setp_filtre4] = useState("");
|
||||||
|
const [p_filtre4_value, setp_filtre4_value] = useState();
|
||||||
|
|
||||||
const [p_filtre2, setp_filtre2] = useState();
|
|
||||||
const [p_filtre2_value, setp_filtre2_value] = useState();
|
|
||||||
|
|
||||||
const [isLoading, setLoading] = useState();
|
const [isLoading, setLoading] = useState();
|
||||||
|
|
||||||
|
@ -65,9 +74,9 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
||||||
const columns = [
|
const columns = [
|
||||||
{ field: '_id', headerName: '_id', hide: true },
|
{ field: '_id', headerName: '_id', hide: true },
|
||||||
{ field: 'id', headerName: 'id', hide: true },
|
{ field: 'id', headerName: 'id', hide: true },
|
||||||
{ field: 'code', headerName: 'Code', flex: 1, hide: false, editable: false },
|
{ field: 'code', headerName: 'Code', flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||||
{ field: 'titre', headerName: 'Titre', flex: 1, hide: false, editable: false },
|
{ field: 'titre', headerName: 'Titre', flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||||
{ field: 'duration_concat', headerName: 'Durée', flex: 1, hide: true, editable: false },
|
{ field: 'duration_concat', headerName: 'Durée', flex: 1, hide: false, editable: false, renderCell: (params) => <ExpandableCell_50 {...params} />, },
|
||||||
{ field: 'duration', headerName: 'Durée', flex: 1, hide: true, editable: false },
|
{ field: 'duration', headerName: 'Durée', flex: 1, hide: true, editable: false },
|
||||||
{ field: 'duration_unite', headerName: 'Unit.', flex: 1, hide: true, editable: false },
|
{ field: 'duration_unite', headerName: 'Unit.', flex: 1, hide: true, editable: false },
|
||||||
|
|
||||||
|
@ -133,6 +142,38 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function ExpandableCell_50({ value }) {
|
||||||
|
const [expanded, setExpanded] = React.useState(false);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<nav>
|
||||||
|
{value && <div style={{ paddingLeft: "5px", paddingRight: "15px", "display": "block", wordBreak: "break-all" }}>
|
||||||
|
|
||||||
|
{expanded ? value : String(value).slice(0, 50)}
|
||||||
|
{value.length > 50 && (
|
||||||
|
// eslint-disable-next-line jsx-a11y/anchor-is-valid
|
||||||
|
<Link
|
||||||
|
type="button"
|
||||||
|
component="button"
|
||||||
|
sx={{ fontSize: 'inherit' }}
|
||||||
|
onClick={() => setExpanded(!expanded)}
|
||||||
|
>
|
||||||
|
{expanded ? <nav> <PiDotsThree />Réduire</nav> : <nav> <PiDotsThree />Voir</nav>}
|
||||||
|
</Link>
|
||||||
|
)}
|
||||||
|
</div>}
|
||||||
|
|
||||||
|
{!value && <div style={{ paddingLeft: "5px", paddingRight: "15px", "display": "block", wordBreak: "break-all" }}>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
</nav>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
function handleClick_delete(event, cellValues) {
|
function handleClick_delete(event, cellValues) {
|
||||||
|
|
||||||
Delete_Given_UE(cellValues.row._id);
|
Delete_Given_UE(cellValues.row._id);
|
||||||
|
@ -243,6 +284,95 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const [Getall_Parter_Unite_Enseignement_with_Filter_api, setGetall_Parter_Unite_Enseignement_with_Filter_api] = useState();
|
||||||
|
const [Getall_Parter_Unite_Enseignement_with_Filter_message, setGetall_Parter_Unite_Enseignement_with_Filter_message] = useState();
|
||||||
|
const [Getall_Parter_Unite_Enseignement_with_Filter_result, setGetall_Parter_Unite_Enseignement_with_Filter_result] = useState([]);
|
||||||
|
function Getall_Parter_Unite_Enseignement_with_Filter(event) {
|
||||||
|
|
||||||
|
var form = new FormData();
|
||||||
|
// Recuperation des parametres
|
||||||
|
var filtre1 = p_filtre1;
|
||||||
|
var filtre2 = p_filtre2;
|
||||||
|
var filtre3 = p_filtre3;
|
||||||
|
var filtre4 = p_filtre4;
|
||||||
|
|
||||||
|
var filtre1_value = "";
|
||||||
|
var filtre2_value = "";
|
||||||
|
var filtre3_value = "";
|
||||||
|
var filtre4_value = "";
|
||||||
|
// Recuperation des valeurs de filtres
|
||||||
|
|
||||||
|
if (p_filtre1_value) {
|
||||||
|
filtre1_value = p_filtre1_value;
|
||||||
|
form.append(filtre1, filtre1_value);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (p_filtre2_value) {
|
||||||
|
filtre2_value = p_filtre2_value;
|
||||||
|
form.append(filtre2, filtre2_value);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (p_filtre3_value) {
|
||||||
|
filtre3_value = p_filtre3_value;
|
||||||
|
form.append(filtre3, p_filtre3_value);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (p_filtre4_value) {
|
||||||
|
filtre4_value = p_filtre4_value;
|
||||||
|
form.append(filtre4, p_filtre4_value);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const stored_cookie = getCookie('tokenmysypart');
|
||||||
|
form.append("token", stored_cookie);
|
||||||
|
|
||||||
|
|
||||||
|
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_List_Unite_Enseignement_with_filter/";
|
||||||
|
|
||||||
|
axios.post(myurl, form).then(res => {
|
||||||
|
|
||||||
|
if (String(res.data.status) === String("true")) {
|
||||||
|
//console.log(" In Getall_Parter_Unite_Enseignement_with_Filter res.data.status = " + res.data.status);
|
||||||
|
//console.log(" In Getall_Parter_Unite_Enseignement_with_Filter res.data.message r_class = " + res.data.message);
|
||||||
|
setGetall_Parter_Unite_Enseignement_with_Filter_api("true");
|
||||||
|
setGetall_Parter_Unite_Enseignement_with_Filter_result(res.data.message);
|
||||||
|
setRows(res.data.message);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
setGetall_Parter_Unite_Enseignement_with_Filter_api("false");
|
||||||
|
setGetall_Parter_Unite_Enseignement_with_Filter_message(res.data.message);
|
||||||
|
alert(res.data.message);
|
||||||
|
}
|
||||||
|
|
||||||
|
}).catch((error) => {
|
||||||
|
console.warn('Not good man :( Getall_Parter_Unite_Enseignement_with_Filter = ', error);
|
||||||
|
setGetall_Parter_Unite_Enseignement_with_Filter_api("false");
|
||||||
|
alert(" Impossible de recuperer la liste des unités d'enseignement ");
|
||||||
|
//setmyApimyApiMessage("")
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function clean_all_filters() {
|
||||||
|
|
||||||
|
setgridline_id('');
|
||||||
|
|
||||||
|
setp_filtre1("");
|
||||||
|
setp_filtre1_value("");
|
||||||
|
|
||||||
|
setp_filtre2("");
|
||||||
|
setp_filtre2_value("");
|
||||||
|
|
||||||
|
setp_filtre3("");
|
||||||
|
setp_filtre3_value("");
|
||||||
|
|
||||||
|
setp_filtre4("");
|
||||||
|
setp_filtre4_value("");
|
||||||
|
|
||||||
|
|
||||||
|
setSelectionModel([]);
|
||||||
|
|
||||||
|
Getall_Parter_Unite_Enseignement();
|
||||||
|
}
|
||||||
|
|
||||||
const [Get_Given_Unite_Enseignement_api, setGet_Given_Unite_Enseignement_api] = useState();
|
const [Get_Given_Unite_Enseignement_api, setGet_Given_Unite_Enseignement_api] = useState();
|
||||||
const [Get_Given_Unite_Enseignement_message, setGet_Given_Unite_Enseignement_message] = useState();
|
const [Get_Given_Unite_Enseignement_message, setGet_Given_Unite_Enseignement_message] = useState();
|
||||||
|
@ -321,6 +451,13 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
||||||
setfield_objectif("");
|
setfield_objectif("");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (local_ue.methode_evaluation) {
|
||||||
|
setfield_suivi_eval(local_ue.methode_evaluation);
|
||||||
|
} else {
|
||||||
|
setfield_suivi_eval("");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (local_ue.methode_pedagogique) {
|
if (local_ue.methode_pedagogique) {
|
||||||
setfield_methode_pedago(local_ue.methode_pedagogique);
|
setfield_methode_pedago(local_ue.methode_pedagogique);
|
||||||
} else {
|
} else {
|
||||||
|
@ -328,8 +465,6 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (local_ue.description) {
|
if (local_ue.description) {
|
||||||
setfield_description(local_ue.description);
|
setfield_description(local_ue.description);
|
||||||
} else {
|
} else {
|
||||||
|
@ -603,7 +738,13 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
||||||
alert(res.data.message);
|
alert(res.data.message);
|
||||||
|
|
||||||
|
|
||||||
|
if (document.getElementById('myRef_head')) {
|
||||||
|
var divh = document.getElementById('myRef_head').offsetTop;
|
||||||
|
window.scrollTo({
|
||||||
|
top: divh,
|
||||||
|
behavior: "smooth",
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
setAdd_Update_UE_Data_api("false");
|
setAdd_Update_UE_Data_api("false");
|
||||||
|
@ -626,6 +767,14 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
||||||
setdisplay_ue("0");
|
setdisplay_ue("0");
|
||||||
setue_data_edit_mode("");
|
setue_data_edit_mode("");
|
||||||
setadd_one_ue("1");
|
setadd_one_ue("1");
|
||||||
|
|
||||||
|
if (document.getElementById('myRef')) {
|
||||||
|
var divh = document.getElementById('myRef').offsetTop;
|
||||||
|
window.scrollTo({
|
||||||
|
top: divh,
|
||||||
|
behavior: "smooth",
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const [p_detail_code, setp_detail_code] = useState("");
|
const [p_detail_code, setp_detail_code] = useState("");
|
||||||
|
@ -716,6 +865,14 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
||||||
setadd_one_ue("");
|
setadd_one_ue("");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const New_Option_Filter = [
|
||||||
|
{ "id": "titre", "label": "Titre ", "value": "titre" },
|
||||||
|
{ "id": "code", "label": "Code", "value": "code" },
|
||||||
|
{ "id": "", "label": "", "value": "" },
|
||||||
|
{ "id": "1", "label": "", "value": "1" }, // Cette ligne pour couvrir l'ajout d'une ligne de filter. C'est fait expres.
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="displayPartnerunite_enseignement">
|
<div className="displayPartnerunite_enseignement">
|
||||||
{isLoading && <div className="loader-container">
|
{isLoading && <div className="loader-container">
|
||||||
|
@ -747,21 +904,30 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
||||||
<div className="titre1"> Utilisez les filtres !</div>
|
<div className="titre1"> Utilisez les filtres !</div>
|
||||||
<div className="div_row" style={{ "marginBottom": "5px" }}>
|
<div className="div_row" style={{ "marginBottom": "5px" }}>
|
||||||
<div className="div_row_gauche texte_area_filter" >
|
<div className="div_row_gauche texte_area_filter" >
|
||||||
<TextField
|
|
||||||
|
{New_Option_Filter && New_Option_Filter.length > 0 && <Autocomplete
|
||||||
|
disablePortal
|
||||||
name="filtre1"
|
name="filtre1"
|
||||||
label="Choisir un champ"
|
id="filtre1"
|
||||||
select
|
className="disabled_style"
|
||||||
sx={{ m: 1, width: '100%' }}
|
value={New_Option_Filter.filter((data) => (data).value === String(p_filtre1))[0].label}
|
||||||
value={p_filtre1}
|
options={New_Option_Filter}
|
||||||
onChange={(e) => {
|
onChange={(event, value) => {
|
||||||
setp_filtre1(e.target.value);
|
if (value && value.value) {
|
||||||
|
setp_filtre1(value.value);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}}
|
}}
|
||||||
>
|
|
||||||
<MenuItem value="config_name" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }} >Nom du point de configuration </MenuItem>
|
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
|
||||||
|
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
|
||||||
|
|
||||||
|
/>
|
||||||
|
}
|
||||||
|
/>}
|
||||||
|
|
||||||
|
|
||||||
</TextField>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -810,8 +976,8 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
||||||
<Tooltip className="tooltip_css" id="my-tooltip02" style={{ "fontSize": "12px" }} />
|
<Tooltip className="tooltip_css" id="my-tooltip02" style={{ "fontSize": "12px" }} />
|
||||||
<a data-tooltip-id="my-tooltip02" data-tooltip-html="Supprimer cette ligne de filtre">
|
<a data-tooltip-id="my-tooltip02" data-tooltip-html="Supprimer cette ligne de filtre">
|
||||||
<MdRemoveCircleOutline onClick={(e) => {
|
<MdRemoveCircleOutline onClick={(e) => {
|
||||||
setp_filtre1();
|
setp_filtre1("");
|
||||||
setp_filtre1_value();
|
setp_filtre1_value("");
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
</a>
|
</a>
|
||||||
|
@ -820,15 +986,184 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{p_filtre2 &&
|
||||||
|
<div className="div_row" style={{ "marginBottom": "5px" }}>
|
||||||
|
<div className="div_row_gauche texte_area_filter">
|
||||||
|
|
||||||
|
{New_Option_Filter && New_Option_Filter.length > 0 && <Autocomplete
|
||||||
|
disablePortal
|
||||||
|
name="filtre2"
|
||||||
|
id="filtre2"
|
||||||
|
className="disabled_style"
|
||||||
|
value={New_Option_Filter.filter((data) => (data).value === String(p_filtre2))[0].label}
|
||||||
|
options={New_Option_Filter}
|
||||||
|
onChange={(event, value) => {
|
||||||
|
if (value && value.value) {
|
||||||
|
setp_filtre2(value.value);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}}
|
||||||
|
|
||||||
|
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
|
||||||
|
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
|
||||||
|
|
||||||
|
/>
|
||||||
|
}
|
||||||
|
/>}
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div className="div_row_droite texte_area_filter_value" style={{ "marginTop": "0.5rem" }}>
|
||||||
|
{String(p_filtre2).length > 2 &&
|
||||||
|
<TextField
|
||||||
|
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||||
|
required
|
||||||
|
name="filtre2_value"
|
||||||
|
id="filtre2_value"
|
||||||
|
|
||||||
|
InputLabelProps={{
|
||||||
|
shrink: true,
|
||||||
|
}}
|
||||||
|
disabled={false}
|
||||||
|
className="disabled_style"
|
||||||
|
value={p_filtre2_value}
|
||||||
|
onChange={(e) => setp_filtre2_value(e.target.value)}
|
||||||
|
InputProps={{
|
||||||
|
endAdornment: (
|
||||||
|
<InputAdornment position="end">
|
||||||
|
<AiFillCloseCircle
|
||||||
|
style={{ 'cursor': "pointer", "color": "orangered" }}
|
||||||
|
onClick={(e) => {
|
||||||
|
setp_filtre2_value("");
|
||||||
|
}} />
|
||||||
|
</InputAdornment>
|
||||||
|
),
|
||||||
|
}}
|
||||||
|
|
||||||
|
/>}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{String(p_filtre2).length > 2 && <div className='filter_bton_add' >
|
||||||
|
<Tooltip className="tooltip_css" id="my-tooltip03" style={{ "fontSize": "12px" }} />
|
||||||
|
<a data-tooltip-id="my-tooltip03" data-tooltip-html="Ajouter une nouvelle ligne de filtre">
|
||||||
|
<MdAddCircleOutline
|
||||||
|
onClick={(e) => {
|
||||||
|
setp_filtre3("1");
|
||||||
|
setp_filtre3_value("");
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</a>
|
||||||
|
</div>}
|
||||||
|
|
||||||
|
{String(p_filtre2).length > 2 && <div className='filter_bton_add'>
|
||||||
|
<Tooltip className="tooltip_css" id="my-tooltip04" style={{ "fontSize": "12px" }} />
|
||||||
|
<a data-tooltip-id="my-tooltip04" data-tooltip-html="Supprimer cette ligne de filtre">
|
||||||
|
<MdRemoveCircleOutline
|
||||||
|
onClick={(e) => {
|
||||||
|
setp_filtre2("");
|
||||||
|
setp_filtre2_value("");
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</a>
|
||||||
|
</div>}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
{p_filtre3 &&
|
||||||
|
<div className="div_row" style={{ "marginBottom": "5px" }}>
|
||||||
|
<div className="div_row_gauche texte_area_filter">
|
||||||
|
|
||||||
|
{New_Option_Filter && New_Option_Filter.length > 0 && <Autocomplete
|
||||||
|
disablePortal
|
||||||
|
name="filtre3"
|
||||||
|
id="filtre3"
|
||||||
|
className="disabled_style"
|
||||||
|
value={New_Option_Filter.filter((data) => (data).value === String(p_filtre3))[0].label}
|
||||||
|
options={New_Option_Filter}
|
||||||
|
onChange={(event, value) => {
|
||||||
|
if (value && value.value) {
|
||||||
|
setp_filtre3(value.value);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}}
|
||||||
|
|
||||||
|
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
|
||||||
|
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
|
||||||
|
|
||||||
|
/>
|
||||||
|
}
|
||||||
|
/>}
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div className="div_row_droite texte_area_filter_value" style={{ "marginTop": "0.5rem" }}>
|
||||||
|
{String(p_filtre3).length > 2 &&
|
||||||
|
<TextField
|
||||||
|
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||||
|
required
|
||||||
|
name="filtre3_value"
|
||||||
|
id="filtre3_value"
|
||||||
|
|
||||||
|
InputLabelProps={{
|
||||||
|
shrink: true,
|
||||||
|
}}
|
||||||
|
disabled={false}
|
||||||
|
className="disabled_style"
|
||||||
|
value={p_filtre3_value}
|
||||||
|
onChange={(e) => setp_filtre3_value(e.target.value)}
|
||||||
|
InputProps={{
|
||||||
|
endAdornment: (
|
||||||
|
<InputAdornment position="end">
|
||||||
|
<AiFillCloseCircle
|
||||||
|
style={{ 'cursor': "pointer", "color": "orangered" }}
|
||||||
|
onClick={(e) => {
|
||||||
|
setp_filtre3_value("");
|
||||||
|
}} />
|
||||||
|
</InputAdornment>
|
||||||
|
),
|
||||||
|
}}
|
||||||
|
|
||||||
|
/>}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{String(p_filtre2).length > 2 && <div className='filter_bton_add' >
|
||||||
|
<Tooltip className="tooltip_css" id="my-tooltip03" style={{ "fontSize": "12px" }} />
|
||||||
|
<a data-tooltip-id="my-tooltip03" data-tooltip-html="Ajouter une nouvelle ligne de filtre">
|
||||||
|
<MdAddCircleOutline
|
||||||
|
onClick={(e) => {
|
||||||
|
setp_filtre4("1");
|
||||||
|
setp_filtre4_value("");
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</a>
|
||||||
|
</div>}
|
||||||
|
|
||||||
|
{String(p_filtre3).length > 2 && <div className='filter_bton_add'>
|
||||||
|
<Tooltip className="tooltip_css" id="my-tooltip05" style={{ "fontSize": "12px" }} />
|
||||||
|
<a data-tooltip-id="my-tooltip05" data-tooltip-html="Supprimer cette ligne de filtre">
|
||||||
|
<MdRemoveCircleOutline onClick={(e) => {
|
||||||
|
setp_filtre3("");
|
||||||
|
setp_filtre3_value("");
|
||||||
|
}} />
|
||||||
|
</a>
|
||||||
|
</div>}
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
<div className="div_row" ref={myRef_head} id="myRef_head" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
|
<div className="div_row" ref={myRef_head} id="myRef_head" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
|
||||||
|
|
||||||
<div className="div_row_gauche" style={{ "textAlign": 'left', 'marginLeft': '15px' }}>
|
<div className="div_row_gauche" style={{ "textAlign": 'left', 'marginLeft': '15px' }}>
|
||||||
<Button variant="contained" className="bton_enreg" onClick={"Getall_Parter_Invoice_With_Filter"}>Rechercher
|
<Button variant="contained" className="bton_enreg" onClick={Getall_Parter_Unite_Enseignement_with_Filter}>Rechercher
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="div_row_droite" style={{ "textAlign": 'right', 'marginRight': '15px' }}>
|
<div className="div_row_droite" style={{ "textAlign": 'right', 'marginRight': '15px' }}>
|
||||||
<Button variant="contained" className="bton_annule" onClick={"clean_all_filters"}>Annuler
|
<Button variant="contained" className="bton_annule" onClick={clean_all_filters}>Annuler
|
||||||
</Button>
|
</Button>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@ -839,6 +1174,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div className="div_row">
|
<div className="div_row">
|
||||||
<div className="session_data">
|
<div className="session_data">
|
||||||
<div style={{ "border": "None" }}>
|
<div style={{ "border": "None" }}>
|
||||||
|
@ -980,7 +1316,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
||||||
<div className="div_row_gauche div_row_gauche_etendu" style={{ "textAlign": "left", "paddingLeft": "5px" }}>
|
<div className="div_row_gauche div_row_gauche_etendu" style={{ "textAlign": "left", "paddingLeft": "5px" }}>
|
||||||
<Button variant="outlined" onClick={submenu_add_one_UE}
|
<Button variant="outlined" onClick={submenu_add_one_UE}
|
||||||
className="detail_class_submenu bton_add_session"
|
className="detail_class_submenu bton_add_session"
|
||||||
id='menu_import_participant' name='menu_import_participant'>Ajout une UE
|
id='menu_import_participant' name='menu_import_participant'>Ajout 1 UE
|
||||||
<IoAddCircleOutline style={{ "fontSize": "x-large", "color": "green" }} />
|
<IoAddCircleOutline style={{ "fontSize": "x-large", "color": "green" }} />
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1125,7 +1461,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
||||||
|
|
||||||
<div className="training_text">
|
<div className="training_text">
|
||||||
<div className="plus_produit_desabled">
|
<div className="plus_produit_desabled">
|
||||||
<div className="titre_training_text"> Pré-requis * (max 1000 caractères) </div>
|
<div className="titre_training_text"> Pré-requis (max 1000 caractères) </div>
|
||||||
<Editor
|
<Editor
|
||||||
name="prerequis"
|
name="prerequis"
|
||||||
id="prerequis"
|
id="prerequis"
|
||||||
|
@ -1164,7 +1500,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
||||||
|
|
||||||
<div className="training_text">
|
<div className="training_text">
|
||||||
<div className="plus_produit_desabled">
|
<div className="plus_produit_desabled">
|
||||||
<div className="titre_training_text"> Description * (max 1000 caractères) </div>
|
<div className="titre_training_text"> Description (max 1000 caractères) </div>
|
||||||
<Editor
|
<Editor
|
||||||
name="description"
|
name="description"
|
||||||
id="description"
|
id="description"
|
||||||
|
@ -1199,7 +1535,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
||||||
|
|
||||||
<div className="training_text" >
|
<div className="training_text" >
|
||||||
<div className="plus_produit_desabled">
|
<div className="plus_produit_desabled">
|
||||||
<div className="titre_training_text"> Objectif* (max 1000 caractères) </div>
|
<div className="titre_training_text"> Objectif (max 1000 caractères) </div>
|
||||||
<Editor
|
<Editor
|
||||||
onInit={(evt, editor) => editorRef_objectif.current = editor}
|
onInit={(evt, editor) => editorRef_objectif.current = editor}
|
||||||
initialValue={field_objectif}
|
initialValue={field_objectif}
|
||||||
|
@ -1338,13 +1674,13 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
{String(ue_data_edit_mode) !== "1" &&
|
{String(ue_data_edit_mode) !== "1" &&
|
||||||
<div className="div_row" style={{padding : "10px"}}>
|
<div className="div_row" style={{ padding: "10px" }}>
|
||||||
|
|
||||||
|
|
||||||
<div className="training_text">
|
<div className="training_text">
|
||||||
<div className="plus_produit_desabled">
|
<div className="plus_produit_desabled">
|
||||||
<div className="titre_training_text"> <b><u> Pré-requis :</u></b></div>
|
<div className="titre_training_text"> <b><u> Pré-requis :</u></b></div>
|
||||||
{parse(field_preprequis.replace(/(<([^>]+)>)/ig, '')) }
|
{parse(field_preprequis.replace(/(<([^>]+)>)/ig, ''))}
|
||||||
</div>
|
</div>
|
||||||
<br />
|
<br />
|
||||||
</div>
|
</div>
|
||||||
|
@ -1352,7 +1688,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
||||||
<div className="training_text">
|
<div className="training_text">
|
||||||
<div className="plus_produit_desabled">
|
<div className="plus_produit_desabled">
|
||||||
<div className="titre_training_text"> <b><u> Desscription :</u></b></div>
|
<div className="titre_training_text"> <b><u> Desscription :</u></b></div>
|
||||||
{parse(field_description.replace(/(<([^>]+)>)/ig, '')) }
|
{parse(field_description.replace(/(<([^>]+)>)/ig, ''))}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<br />
|
<br />
|
||||||
|
@ -1361,7 +1697,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
||||||
<div className="training_text">
|
<div className="training_text">
|
||||||
<div className="plus_produit_desabled">
|
<div className="plus_produit_desabled">
|
||||||
<div className="titre_training_text"> <b><u> Objectif : </u></b></div>
|
<div className="titre_training_text"> <b><u> Objectif : </u></b></div>
|
||||||
{parse(field_objectif.replace(/(<([^>]+)>)/ig, '')) }
|
{parse(field_objectif.replace(/(<([^>]+)>)/ig, ''))}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<br />
|
<br />
|
||||||
|
@ -1372,7 +1708,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
||||||
<div className="plus_produit_desabled">
|
<div className="plus_produit_desabled">
|
||||||
<div className="titre_training_text"> <b><u> Programme :</u></b></div>
|
<div className="titre_training_text"> <b><u> Programme :</u></b></div>
|
||||||
|
|
||||||
{parse(field_programme.replace(/(<([^>]+)>)/ig, '')) }
|
{parse(field_programme.replace(/(<([^>]+)>)/ig, ''))}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<br />
|
<br />
|
||||||
|
@ -1381,7 +1717,8 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
||||||
<div className="training_text">
|
<div className="training_text">
|
||||||
<div className="plus_produit_desabled">
|
<div className="plus_produit_desabled">
|
||||||
<div className="titre_training_text"> <b><u> Suivi & Evaluation :</u></b></div>
|
<div className="titre_training_text"> <b><u> Suivi & Evaluation :</u></b></div>
|
||||||
{parse(field_suivi_eval.replace(/(<([^>]+)>)/ig, '')) }
|
{parse(field_suivi_eval.replace(/(<([^>]+)>)/ig, ''))}
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<br />
|
<br />
|
||||||
|
@ -1392,7 +1729,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
||||||
<div className="plus_produit_desabled">
|
<div className="plus_produit_desabled">
|
||||||
<div className="titre_training_text"> <b><u> Méthode Pédagogique :</u></b></div>
|
<div className="titre_training_text"> <b><u> Méthode Pédagogique :</u></b></div>
|
||||||
|
|
||||||
{parse(field_methode_pedago.replace(/(<([^>]+)>)/ig, '')) }
|
{parse(field_methode_pedago.replace(/(<([^>]+)>)/ig, ''))}
|
||||||
</div>
|
</div>
|
||||||
<br />
|
<br />
|
||||||
</div>
|
</div>
|
||||||
|
@ -1531,7 +1868,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
||||||
|
|
||||||
<div className="training_text">
|
<div className="training_text">
|
||||||
<div className="plus_produit_desabled">
|
<div className="plus_produit_desabled">
|
||||||
<div className="titre_training_text"> Pré-requis * (max 1000 caractères) </div>
|
<div className="titre_training_text"> Pré-requis (max 1000 caractères) </div>
|
||||||
<Editor
|
<Editor
|
||||||
name="prerequis"
|
name="prerequis"
|
||||||
id="prerequis"
|
id="prerequis"
|
||||||
|
@ -1570,7 +1907,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
||||||
|
|
||||||
<div className="training_text">
|
<div className="training_text">
|
||||||
<div className="plus_produit_desabled">
|
<div className="plus_produit_desabled">
|
||||||
<div className="titre_training_text"> Description * (max 1000 caractères) </div>
|
<div className="titre_training_text"> Description (max 1000 caractères) </div>
|
||||||
<Editor
|
<Editor
|
||||||
name="description"
|
name="description"
|
||||||
id="description"
|
id="description"
|
||||||
|
@ -1605,7 +1942,7 @@ const DisplayPartnerUnite_Enseignement = (props) => {
|
||||||
|
|
||||||
<div className="training_text" >
|
<div className="training_text" >
|
||||||
<div className="plus_produit_desabled">
|
<div className="plus_produit_desabled">
|
||||||
<div className="titre_training_text"> Objectif* (max 1000 caractères) </div>
|
<div className="titre_training_text"> Objectif (max 1000 caractères) </div>
|
||||||
<Editor
|
<Editor
|
||||||
onInit={(evt, editor) => editorRef_objectif.current = editor}
|
onInit={(evt, editor) => editorRef_objectif.current = editor}
|
||||||
initialValue={field_objectif}
|
initialValue={field_objectif}
|
||||||
|
|
|
@ -54,6 +54,9 @@ import FullCalendar, { formatDate } from "@fullcalendar/react";
|
||||||
import dayGridPlugin from "@fullcalendar/daygrid";
|
import dayGridPlugin from "@fullcalendar/daygrid";
|
||||||
import timeGridPlugin from "@fullcalendar/timegrid";
|
import timeGridPlugin from "@fullcalendar/timegrid";
|
||||||
import interactionPlugin from "@fullcalendar/interaction";
|
import interactionPlugin from "@fullcalendar/interaction";
|
||||||
|
import resourceTimeGridPlugin from '@fullcalendar/resource-timegrid';
|
||||||
|
|
||||||
|
import resourceTimelinePlugin from '@fullcalendar/resource-timeline'
|
||||||
|
|
||||||
import {
|
import {
|
||||||
ListItem,
|
ListItem,
|
||||||
|
@ -1033,6 +1036,36 @@ const Module_Agenda = (props) => {
|
||||||
{ "id": "1", "label": "Materiel", "value": "ressource_materielle" },
|
{ "id": "1", "label": "Materiel", "value": "ressource_materielle" },
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
const events_test = [{
|
||||||
|
"id": 1,
|
||||||
|
"type": null,
|
||||||
|
"resourceIds": [21],
|
||||||
|
"title": "Meeting With John",
|
||||||
|
"start": "2024-05-04 09:00:00",
|
||||||
|
"end": "2024-05-04 11:20:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1,
|
||||||
|
"type": null,
|
||||||
|
"resourceIds": [22],
|
||||||
|
"title": "Meeting With ssss",
|
||||||
|
"start": "2024-05-04 09:30:00",
|
||||||
|
"end": "2024-05-04 14:20:00"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
const resources_test = [
|
||||||
|
{
|
||||||
|
id: 21,
|
||||||
|
title: "User A"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 22,
|
||||||
|
title: "User B"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="module_agenda">
|
<div className="module_agenda">
|
||||||
{isLoading && <div className="loader-container">
|
{isLoading && <div className="loader-container">
|
||||||
|
@ -1078,7 +1111,7 @@ const Module_Agenda = (props) => {
|
||||||
}}
|
}}
|
||||||
|
|
||||||
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
|
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
|
||||||
inputProps = {{...params.inputProps, style: { fontSize: 12, height:"1.4rem" }}}
|
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
|
||||||
|
|
||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
|
@ -1312,7 +1345,7 @@ const Module_Agenda = (props) => {
|
||||||
}}
|
}}
|
||||||
|
|
||||||
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
|
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
|
||||||
inputProps = {{...params.inputProps, style: { fontSize: 12, height:"1.4rem" }}}
|
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
|
||||||
|
|
||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
|
@ -1423,7 +1456,7 @@ const Module_Agenda = (props) => {
|
||||||
}}
|
}}
|
||||||
|
|
||||||
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
|
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
|
||||||
inputProps = {{...params.inputProps, style: { fontSize: 12, height:"1.4rem" }}}
|
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
|
||||||
|
|
||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
|
@ -1493,7 +1526,7 @@ const Module_Agenda = (props) => {
|
||||||
}}
|
}}
|
||||||
//eventContent={(info) => <EventItem info={info} />}
|
//eventContent={(info) => <EventItem info={info} />}
|
||||||
//plugins={[timeGridPlugin]}
|
//plugins={[timeGridPlugin]}
|
||||||
plugins={[timeGridPlugin, daygridPlugin, interactionPlugin]}
|
plugins={[timeGridPlugin, daygridPlugin, interactionPlugin, resourceTimeGridPlugin]}
|
||||||
views={["dayGridMonth", "dayGridWeek", "dayGridDay"]}
|
views={["dayGridMonth", "dayGridWeek", "dayGridDay"]}
|
||||||
slotMinTime={Partner_Debut_Journee}
|
slotMinTime={Partner_Debut_Journee}
|
||||||
slotMaxTime={Partner_Fin_Journee}
|
slotMaxTime={Partner_Fin_Journee}
|
||||||
|
@ -1506,10 +1539,10 @@ const Module_Agenda = (props) => {
|
||||||
|
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue