diff --git a/server_static/assets/css/gestion_entreprises.css b/server_static/assets/css/gestion_entreprises.css
index 1d3c71c..a639088 100644
--- a/server_static/assets/css/gestion_entreprises.css
+++ b/server_static/assets/css/gestion_entreprises.css
@@ -77,7 +77,8 @@ table td {
background-color: rgba(0,0,0,0.7);
}
-.title_modal
+.title_modal,
+.title_modal2
{
border-radius: 10px 10px 0 0;
padding: 10px;
diff --git a/server_static/assets/css/gestion_stages.css b/server_static/assets/css/gestion_stages.css
index e529418..7e816dd 100644
--- a/server_static/assets/css/gestion_stages.css
+++ b/server_static/assets/css/gestion_stages.css
@@ -3,8 +3,187 @@
.content_title
{
- text-align: center;
- margin: 10px;
- font-size:calc(30px + 1vw);
- font-weight: bold;
+ text-align: center;
+ margin: 10px;
+ font-size:calc(30px + 1vw);
+ font-weight: bold;
+}
+
+.info_message
+{
+ display: none;
+ width: 80%;
+ margin: 10px auto 20px auto;
+ padding: 10px;
+ border-radius: 10px;
+ text-align: center;
+}
+
+.logo_plus i,
+.actions i
+{
+ margin: 0 10px;
+ cursor: pointer;
+ color: black;
+}
+
+.logo_plus
+{
+ text-align: center;
+ font-size: 2em;
+}
+
+.table {
+ margin: 0 auto 0 auto;
+ padding: 10px;
+ text-align: center;
+ overflow: auto;
+ border-collapse: collapse;
+}
+
+.table tr:first-child td {
+ background-color: #a79c9c;
+ }
+
+
+table td {
+ min-width: 100px;
+ width: calc(100% / 8);
+ padding: 5px;
+ border: solid 1px black;
+}
+
+/*//////////////////////////////////////////////////////////////////
+[ Modal ] */
+
+.modal
+{
+ display: none;
+ position: fixed;
+ z-index: 1;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+ overflow: auto;
+ background-color: rgb(0,0,0);
+ background-color: rgba(0,0,0,0.7);
+}
+
+.title_modal
+{
+ border-radius: 10px 10px 0 0;
+ padding: 10px;
+ font-weight: bold;
+ font-size: 2em;
+ text-align: center;
+}
+
+.modal-content
+{
+ background-color: #ffffff;
+ margin: 15% auto;
+ width: 80%;
+ border-radius: 10px;
+ text-align: center;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.info_message
+{
+ display: none;
+ width: 80%;
+ margin: 10px auto 20px auto;
+ padding: 10px;
+ border-radius: 10px;
+}
+
+.form_add_edit .input
+{
+ width: 80%;
+ height: 25px;
+ margin-left: 10px;
+ font-size: 20px;
+}
+
+.form_add_edit button, .form_add_edit input[type="button"]
+{
+ margin: 10px;
+ width: 120px;
+ height: 40px;
+ font-size: 20px;
+}
+
+.close
+{
+ color: #aaa;
+ float: right;
+ font-size: 40px;
+ font-weight: bold;
+ right: -20px;
+ margin-right: 20px;
+}
+
+.close:hover, .close:focus
+{
+ color: black;
+ text-decoration: none;
+ cursor: pointer;
+}
+
+.table-container {
+ display: block;
+ width: 90%;
+ max-width: 900px;
+ margin-left: auto;
+ margin-right: auto;
+ }
+
+ .flex-table {
+ display: flex;
+ flex-flow: row wrap;
+ }
+
+ .flex-row {
+ width: calc(100% / 2);
+ text-align: center;
+ padding: 0.2em 0.2em;
+ }
+
+ .flex-table .name
+ {
+ text-align: left;
+ }
+
+ .flex-table .value
+ {
+ text-align: right;
+ }
+
+
+/*//////////////////////////////////////////////////////////////////
+[ Responsive ]*/
+
+@media screen and (max-width: 900px)
+{
+ .modal-content
+ {
+ width: 90%;
+ }
+}
+
+@media screen and (max-width: 500px) {
+ .flex-row {
+ width: 100%;
+ }
+ .flex-table .name
+ {
+ text-align: left;
+ font-weight: bold ;
+ }
+ .flex-table .value
+ {
+ text-align: center;
+ }
}
\ No newline at end of file
diff --git a/server_static/assets/js/gestion_stages.js b/server_static/assets/js/gestion_stages.js
index d866c56..fcc3e59 100644
--- a/server_static/assets/js/gestion_stages.js
+++ b/server_static/assets/js/gestion_stages.js
@@ -1,3 +1,72 @@
$(document).ready(function(){
$("#li_gestion_stages").delay(2000).addClass("hover");
+
+ $(".logo_add").click(function() {
+ $(".modal").show();
+ $(".title_modal").html("Ajout d'un stage");
+ $("input[type='hidden']").attr("value","edit");
+ $("input[name='name_internship']").attr("value",$(this).attr("name_internship"));
+ $("input[name='description_internship']").attr("value",$(this).attr("description_internship"));
+ $("input[name='duration_internship']").attr("value",$(this).attr("duration_internship"));
+ $("input[name='remuneration_internship']").attr("value",$(this).attr("remuneration_internship"));
+ $("input[name='offer_date_internship']").attr("value",$(this).attr("offer_date_internship"));
+ $("input[name='place_number_internship']").attr("value",$(this).attr("place_number_internship"));
+ $("input[name='competences_internship']").attr("value",$(this).attr("competences_internship"));
+ $("select[name='name_promotion'] option[value="+$(this).attr("name_promotion")+"]").prop('selected', true);
+ $("select[name='localisation'] option[value="+$(this).attr("localisation")+"]").prop('selected', true);
+ $("select[name='company'] option[value="+$(this).attr("company")+"]").prop('selected', true);
+ $(".info_message").css("display", "none");
+ });
+
+ $(".close:eq(0)").click(function() {
+ $(".modal").hide();
+ });
+
+ window.onclick = function(event) {
+ if (event.target == document.getElementById("modal_add_edit")) {
+ $(".modal").hide();
+ }
+ }
+
+ $('.form_add_edit').on('submit',(function(){
+ $(".form_add_edit").append(' ');
+ return true;
+ }));
+
+
+ $(".logo_edit").click(function() {
+ $("#modal_add_edit").show();
+ window.ID_internship = $(this).attr("ID_internship");
+ $(".title_modal").html("Modification d'un stage");
+ $("input[type='hidden']").attr("value","edit");
+ $("input[name='name_internship']").attr("value",$(this).attr("name_internship"));
+ $("input[name='description_internship']").attr("value",$(this).attr("description_internship"));
+ $("input[name='duration_internship']").attr("value",$(this).attr("duration_internship"));
+ $("input[name='remuneration_internship']").attr("value",$(this).attr("remuneration_internship"));
+ $("input[name='offer_date_internship']").attr("value",$(this).attr("offer_date_internship"));
+ $("input[name='place_number_internship']").attr("value",$(this).attr("place_number_internship"));
+ $("input[name='competences_internship']").attr("value",$(this).attr("competences_internship"));
+ $("select[name='name_promotion'] option[value="+$(this).attr("name_promotion")+"]").prop('selected', true);
+ $("select[name='localisation'] option[value="+$(this).attr("localisation")+"]").prop('selected', true);
+ $("select[name='company'] option[value="+$(this).attr("company")+"]").prop('selected', true);
+ $(".info_message").css("display", "none");
+ });
+
+ $(".logo_delete").click(function() {
+ console.log($(this).attr("ID_internship"));
+ $.post(
+ 'controller/Manage_internships.php',
+ {
+ ID_internship: $(this).attr("ID_internship"),
+ action: "delete"},
+ function(data, status, jqXHR) {
+ if (data.trim() == "false"){
+ $(".info_message").html("Ce stage ne peut pas être supprimé car il existe des candidatures en lien avec lui.");
+ $(".info_message").css("background-color", "#df8787");
+ $(".info_message").css("display", "block");
+ } else if (data.trim() == "true")
+ location.reload();
+ }
+ );
+ });
});
\ No newline at end of file
diff --git a/server_static/index.php b/server_static/index.php
deleted file mode 100644
index 83a977a..0000000
--- a/server_static/index.php
+++ /dev/null
@@ -1,49 +0,0 @@
-
-
-
-
- Static - CTS
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/website/.htaccess b/website/.htaccess
new file mode 100644
index 0000000..0167c04
--- /dev/null
+++ b/website/.htaccess
@@ -0,0 +1,8 @@
+Options +Indexes
+AuthType Basic
+AuthName "Page protégée"
+
+AuthBasicProvider file
+AuthUserFile "D:\OneDrive\OneDrive - Association Cesi Viacesi mail\01 Pro\Semestre 1\Projet_4 - Développement Web\Livrable 3\a2_projet_web\website\.users_auth
+
+Require valid-user
diff --git a/website/controller/Manage_internships.php b/website/controller/Manage_internships.php
new file mode 100644
index 0000000..55af19d
--- /dev/null
+++ b/website/controller/Manage_internships.php
@@ -0,0 +1,63 @@
+prepare('SELECT * FROM users NATURAL JOIN roles NATURAL JOIN roles_has_permissions NATURAL JOIN permissions WHERE code_permission="SFx1" AND username=:user AND password_user=:password_user;');
+ $query_check_cookie->execute(['user' => $_COOKIE['username'], 'password_user' => $_COOKIE['pass']]);
+ if ($query_check_cookie->rowCount() == 1){
+ if (isset($_POST["ID_internship"]) && isset($_POST["action"])){
+ $ID_internship = $_POST["ID_internship"];
+
+ if ($_POST["action"] == "delete"){
+ try {
+ $query_delete_internship = $bdd->prepare('SET @ID_internship=:ID_internship;
+ DELETE FROM internship_for_promo WHERE ID_internship=@ID_internship AND 0=(SELECT EXISTS (SELECT * FROM candidatures WHERE ID_internship=@ID_internship));
+ DELETE FROM wishlist WHERE ID_internship=@ID_internship AND 0=(SELECT EXISTS (SELECT * FROM candidatures WHERE ID_internship=@ID_internship));
+ DELETE FROM internships WHERE ID_internship=@ID_internship AND 0=(SELECT EXISTS (SELECT * FROM candidatures WHERE ID_internship=@ID_internship));');
+ $query_delete_internship->execute(['ID_internship' => $ID_internship]);
+ echo "true";
+ } catch (Exception $e) {
+ echo "false";
+ }
+ }
+ }
+ if (isset($_POST["action"]) && isset($_POST["name_internship"]) && isset($_POST["description_internship"]) && isset($_POST["duration_internship"]) && isset($_POST["remuneration_internship"]) && isset($_POST["offer_date_internship"]) && isset($_POST["place_number_internship"]) && isset($_POST["competences_internship"]) && isset($_POST["name_promotion"]) && isset($_POST["localisation"]) && isset($_POST["company"])) {
+ if ($_POST["action"] == "add"){
+ echo "bonjour";
+ try {
+ $query_add_internship = $bdd->prepare('INSERT INTO internships VALUES (NULL, :name_internship, :description_internship, :duration_internship, :remuneration_internship, :offer_date_internship, :place_number_internship, :competences_internship, :ID_company, :ID_localisation);');
+ $query_add_internship->execute(['name_internship' => $_POST["name_internship"], 'description_internship' => $_POST["description_internship"], 'duration_internship' => $_POST["duration_internship"], 'remuneration_internship' => $_POST["remuneration_internship"], 'offer_date_internship' => $_POST["offer_date_internship"], 'place_number_internship' => $_POST["place_number_internship"], 'competences_internship' => $_POST["competences_internship"], 'localisation' => $_POST["localisation"], 'company' => $_POST["company"]]);
+ $query_add_internship = $bdd->prepare('SELECT LAST_INSERT_ID() as "ID_internship";');
+ $query_add_internship->execute();
+ $ID_add_internship = $query_add_internship->fetchALL(PDO::FETCH_OBJ)[0]->ID_internship;
+ $query_add_internship = $bdd->prepare('INSERT INTO internship_for_promo VALUES (:ID_internship, (SELECT ID_promotion FROM promotions WHERE name_promotion = :name_promotion);');
+ $query_add_internship->execute(['ID_internship' => $ID_add_internship, 'name_promotion' => $_POST['name_promotion']]);
+
+ echo "";
+ } catch (Exception $e) {
+ echo "false";
+ }
+ }
+ }
+ if (isset($_POST["action"]) && isset($_POST["name_internship"]) && isset($_POST["description_internship"]) && isset($_POST["duration_internship"]) && isset($_POST["remuneration_internship"]) && isset($_POST["offer_date_internship"]) && isset($_POST["place_number_internship"]) && isset($_POST["competences_internship"]) && isset($_POST["name_promotion"]) && isset($_POST["localisation"]) && isset($_POST["company"])) {
+ if ($_POST["action"] == "edit"){
+ try {
+ $ID_internship = $_POST["ID_internship"];
+ $query_edit_internship = $bdd->prepare('UPDATE internship_for_promo SET ID_internship = :ID_internship WHERE ID_promotion = :name_promotion;');
+ $query_edit_internship->execute(['name_promotion' => $_POST['name_promotion'], 'ID_internship' => $ID_internship]);
+
+ $query_edit_internship = $bdd->prepare('UPDATE internships SET name_internship = :name_internship, description_internship = :description_internship, duration_internship = :duration_internship, remuneration_internship = :remuneration_internship, offer_date_internship = :offer_date_internship, place_number_internship = :place_number_internship, competences_internship = :competences_internship, name_promotion = :name_promotion, localisation = :localisation, company = :company WHERE ID_internship=:ID_internship;');
+ $query_edit_internship->execute(['name_internship' => $_POST["name_internship"], 'description_internship' => $_POST["description_internship"], 'duration_internship' => $_POST["duration_internship"], 'remuneration_internship' => $_POST["remuneration_internship"], 'offer_date_internship' => $_POST["offer_date_internship"], 'place_number_internship' => $_POST["place_number_internship"], 'competences_internship' => $_POST["competences_internship"], 'name_promotion' => $_POST["name_promotion"], 'localisation' => $_POST["localisation"], 'company' => $_POST["company"]]);
+
+ echo "";
+ } catch (Exception $e) {
+ echo $e;
+ }
+ } else {
+ echo "error";
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/website/gestion_entreprises.php b/website/gestion_entreprises.php
index 0557e8f..bbbf983 100644
--- a/website/gestion_entreprises.php
+++ b/website/gestion_entreprises.php
@@ -9,9 +9,31 @@ if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) {
if ($query_check_cookie->rowCount() == 1){
$sql = 'SELECT companies.ID_company, name_company, activity_sector_company, nb_intern_cesi_company, email_company, visibility_company, companies_located.ID_localisation, note FROM companies LEFT JOIN companies_located ON companies.ID_company=companies_located.ID_company LEFT JOIN localisations ON companies_located.ID_localisation=localisations.ID_localisation INNER JOIN evaluate ON companies.ID_company = evaluate.ID_company;';
- $query_perm = $bdd->prepare('SELECT username, code_permission FROM users NATURAL JOIN roles NATURAL JOIN roles_has_permissions NATURAL JOIN permissions WHERE code_permission=:perm AND username=:user;');
- $query_perm->execute(['user' => $_COOKIE["username"], 'perm' => "SFx2"]);
- if ($query_perm->rowCount() == 1) {
+ $query_perm_nav = $bdd->prepare('SELECT username, code_permission FROM users NATURAL JOIN roles NATURAL JOIN roles_has_permissions NATURAL JOIN permissions WHERE username = :user;');
+ $query_perm_nav->execute(['user' => $_COOKIE["username"]]);
+ $results_nav = $query_perm_nav->fetchALL(PDO::FETCH_OBJ);
+ if ($query_perm_nav->rowCount() >= 1) {
+ $gestion_Enterprises_create = false;
+ $gestion_Enterprises_edit = false;
+ $gestion_Enterprises_delete = false;
+ $gestion_Enterprises_stat = false;
+
+ foreach($results_nav as $result){
+ if ($result->code_permission == "SFx3"){
+ $gestion_Enterprises_create = true;
+ }
+ if ($result->code_permission == "SFx4"){
+ $gestion_Enterprises_edit = true;
+ }
+ if ($result->code_permission == "SFx6"){
+ $gestion_Enterprises_delete = true;
+ }
+ if ($result->code_permission == "SFx7"){
+ $gestion_Enterprises_stat = true;
+ }
+ }
+ }
+ if ($gestion_Enterprises_create || $gestion_Enterprises_edit || $gestion_Enterprises_delete || $gestion_Enterprises_stat) {
$query_companies = $bdd->prepare($sql);
$query_companies->execute();
$results_companies = $query_companies->fetchALL(PDO::FETCH_OBJ);
@@ -105,7 +127,7 @@ if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) {
×
-
Top des entreprises ayant le plus de stages
+
Top des entreprises ayant le plus de stages
@@ -123,7 +145,7 @@ if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) {
-
Top des entreprises ayant le plus d'étudiants CESI
+
Top des entreprises ayant le plus d'étudiants CESI
@@ -140,7 +162,7 @@ if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) {
-
Top des entreprises ayant les meilleures notes
+
Top des entreprises ayant les meilleures notes
@@ -171,7 +193,12 @@ if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) {
Gestion des entreprises
L'entreprise a été supprimé !
-
+
+ '; }
+ if ($gestion_Enterprises_stat) { echo ' '; }
+ ?>
+
@@ -181,7 +208,7 @@ if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) {
Nb stagiaires CESI
Email
Visibilité
- Actions
+ Actions';} ?>
@@ -191,12 +218,16 @@ if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) {
= $result->nb_intern_cesi_company ?>
= $result->email_company ?>
= $result->visibility_company ?>
+
-
-
+ ID_company' name='$result->name_company' activity_sector='$result->activity_sector_company' nb_intern='$result->nb_intern_cesi_company' email='$result->email_company' localisation='$result->ID_localisation' note='$result->note' visibility='$result->visibility_company' class='fas fa-pen logo_edit'>";}
+ if ($gestion_Enterprises_delete) { echo " ";}
+ ?>
+
diff --git a/website/gestion_stages.php b/website/gestion_stages.php
index 7f697c4..415ad7a 100644
--- a/website/gestion_stages.php
+++ b/website/gestion_stages.php
@@ -1,12 +1,35 @@
+
+
prepare('SELECT * FROM users NATURAL JOIN roles NATURAL JOIN roles_has_permissions NATURAL JOIN permissions WHERE code_permission="SFx1" AND username=:user AND password_user=:password_user;');
- $query_check_cookie->execute(['user' => $_COOKIE['username'], 'password_user' => $_COOKIE['pass']]);
- if ($query_check_cookie->rowCount() == 1){
+ require "controller/ConnexionBDD.php";
+ if (!$error) {
+ $query_check_cookie = $bdd->prepare('SELECT * FROM users NATURAL JOIN roles NATURAL JOIN roles_has_permissions NATURAL JOIN permissions WHERE code_permission="SFx1" AND username=:user AND password_user=:password_user;');
+ $query_check_cookie->execute(['user' => $_COOKIE['username'], 'password_user' => $_COOKIE['pass']]);
+ if ($query_check_cookie->rowCount() == 1){
+ $sql = 'SELECT internships.ID_internship, name_internship, duration_internship, remuneration_internship, offer_date_internship, place_number_internship, competences_internship, promotions.name_promotion FROM internships LEFT JOIN internship_for_promo ON internships.ID_internship = internship_for_promo.ID_internship LEFT JOIN promotions ON internship_for_promo.ID_promotion = promotions.ID_promotion;';
+
+ $query_perm = $bdd->prepare('SELECT username, code_permission FROM users NATURAL JOIN roles NATURAL JOIN roles_has_permissions NATURAL JOIN permissions WHERE code_permission=:perm AND username=:user;');
+ $query_perm->execute(['user' => $_COOKIE["username"], 'perm' => "SFx2"]);
+ if ($query_perm->rowCount() == 1) {
+ $query_internships = $bdd->prepare($sql);
+ $query_internships->execute();
+ $results_internships = $query_internships->fetchALL(PDO::FETCH_OBJ);
+
+ $query_promotions = $bdd->prepare('SELECT ID_promotion, name_promotion FROM promotions GROUP BY name_promotion ORDER BY name_promotion ASC;');
+ $query_promotions->execute();
+ $results_promotions = $query_promotions->fetchALL(PDO::FETCH_OBJ);
+
+ $query_localisations = $bdd->prepare('SELECT ID_localisation, city_localisation FROM localisations GROUP BY city_localisation ORDER BY city_localisation ASC;');
+ $query_localisations->execute();
+ $results_localisations = $query_localisations->fetchALL(PDO::FETCH_OBJ);
+
+ $query_company = $bdd->prepare('SELECT ID_company, name_company FROM companies GROUP BY name_company ORDER BY name_company ASC;');
+ $query_company->execute();
+ $results_company = $query_company->fetchALL(PDO::FETCH_OBJ);
+
?>
@@ -15,12 +38,122 @@ if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) {
+
+
+
×
+
Ajout d'un stage
+
+
+
+
-
+
Gestion des stages
+
Le stage a été supprimé !
+
+
+
+
+ ID
+ Nom
+ Durée du stage
+ Rémunération
+ Date de l'offre
+ Nombre de place
+ Compétences
+ Promotions
+ Actions
+
+
+
+ = $result->ID_internship ?>
+ = $result->name_internship ?>
+ = $result->duration_internship ?>
+ = $result->remuneration_internship ?>
+ = $result->offer_date_internship ?>
+ = $result->place_number_internship ?>
+ = $result->competences_internship ?>
+ = $result->name_promotion ?>
+
+
+
+
+
+
+
+
+
+
@@ -38,4 +171,4 @@ if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) {
} else {
echo "";
}
-?>
\ No newline at end of file
+}?>
\ No newline at end of file