fin de stat gestion stages

This commit is contained in:
Louis DUMONT 2022-04-01 11:21:53 +02:00
parent e066a25143
commit e2f4cfe501
6 changed files with 196 additions and 105 deletions

View File

@ -2,7 +2,7 @@ $(document).ready(function(){
$("#li_gestion_stages").delay(2000).addClass("hover"); $("#li_gestion_stages").delay(2000).addClass("hover");
$(".logo_add").click(function() { $(".logo_add").click(function() {
$(".modal").show(); $("#modal_add_edit").show();
$(".title_modal").html("Ajout d'un stage"); $(".title_modal").html("Ajout d'un stage");
$("input[type='hidden']").attr("value","add"); $("input[type='hidden']").attr("value","add");
$("#button_add_edit").html("Ajouter"); $("#button_add_edit").html("Ajouter");
@ -22,13 +22,16 @@ $(document).ready(function(){
$(".info_message").css("display", "none"); $(".info_message").css("display", "none");
}); });
$(".close:eq(0)").click(function() { $("#close_add_edit").click(function() {
$(".modal").hide(); $(".modal").hide();
}); });
window.onclick = function(event) { window.onclick = function(event) {
if (event.target == document.getElementById("modal_add_edit")) { if (event.target == document.getElementById("modal_add_edit")) {
$(".modal").hide(); $("#modal_add_edit").hide();
}
if (event.target == document.getElementById("modal_stat")) {
$("#modal_stat").hide();
} }
} }
@ -75,4 +78,14 @@ $(document).ready(function(){
} }
); );
}); });
$(".logo_stat").click(function() {
console.log($(this).attr("ID_company"));
$("#modal_stat").show();
});
$("#close_stat").click(function() {
$("#modal_stat").hide();
});
}); });

View File

@ -83,26 +83,4 @@ if ('serviceWorker' in navigator) {
.then(registration => {console.log(`[SW] enregistré ! ${registration.scope}`);}) .then(registration => {console.log(`[SW] enregistré ! ${registration.scope}`);})
.catch(err => {console.log(`[SW] Echec de l'enregistrement: ${err}`);}); .catch(err => {console.log(`[SW] Echec de l'enregistrement: ${err}`);});
}); });
} }
/*
function getCookie(user) {
var cookieArr = document.cookie.split(";");
for (var i = 0; i < cookieArr.length; i++) {
var cookiePair = cookieArr[i].split("=");
if (user == cookiePair[0].trim()) {
return decodeURIComponent(cookiePair[1]);
}
}
return null;
}
function checkCookie() {
var username = getCookie("username");
var pass = getCookie("pass");
if (!(username != "" && username != null && pass != null && pass != null)) {
console.log("no cookie");
}
}
checkCookie();*/

View File

@ -179,10 +179,6 @@ if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) {
<?php } ?> <?php } ?>
</table> </table>
</div> </div>
</div> </div>
</div> </div>

View File

@ -11,9 +11,32 @@ if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) {
if ($query_check_cookie->rowCount() == 1){ if ($query_check_cookie->rowCount() == 1){
$sql = 'SELECT internships.ID_internship, name_internship, description_internship, duration_internship, remuneration_internship, offer_date_internship, place_number_internship, competences_internship, GROUP_CONCAT(promotions.name_promotion SEPARATOR ", ") AS "name_promotion", ID_company, name_company, ID_localisation, promotions.ID_promotion FROM internships NATURAL JOIN companies NATURAL JOIN localisations 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 GROUP BY internships.ID_internship;'; $sql = 'SELECT internships.ID_internship, name_internship, description_internship, duration_internship, remuneration_internship, offer_date_internship, place_number_internship, competences_internship, GROUP_CONCAT(promotions.name_promotion SEPARATOR ", ") AS "name_promotion", ID_company, name_company, ID_localisation, promotions.ID_promotion FROM internships NATURAL JOIN companies NATURAL JOIN localisations 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 GROUP BY internships.ID_internship;';
$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_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->execute(['user' => $_COOKIE["username"], 'perm' => "SFx2"]); $query_perm_nav->execute(['user' => $_COOKIE["username"]]);
if ($query_perm->rowCount() == 1) { $results_nav = $query_perm_nav->fetchALL(PDO::FETCH_OBJ);
if ($query_perm_nav->rowCount() >= 1) {
$gestion_Stages_create = false;
$gestion_Stages_edit = false;
$gestion_Stages_delete = false;
$gestion_Stages_stat = false;
foreach($results_nav as $result){
if ($result->code_permission == "SFx3"){
$gestion_Stages_create = true;
}
if ($result->code_permission == "SFx4"){
$gestion_Stages_edit = true;
}
if ($result->code_permission == "SFx6"){
$gestion_Stages_delete = true;
}
if ($result->code_permission == "SFx7"){
$gestion_Stages_stat = true;
}
}
}
if ($gestion_Stages_create || $gestion_Stages_edit || $gestion_Stages_delete || $gestion_Stages_stat) {
$query_internships = $bdd->prepare($sql); $query_internships = $bdd->prepare($sql);
$query_internships->execute(); $query_internships->execute();
$results_internships = $query_internships->fetchALL(PDO::FETCH_OBJ); $results_internships = $query_internships->fetchALL(PDO::FETCH_OBJ);
@ -30,6 +53,18 @@ if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) {
$query_company->execute(); $query_company->execute();
$results_company = $query_company->fetchALL(PDO::FETCH_OBJ); $results_company = $query_company->fetchALL(PDO::FETCH_OBJ);
$query_internships_top_remuneration = $bdd->prepare('SELECT * FROM internships ORDER BY remuneration_internship DESC LIMIT 5;');
$query_internships_top_remuneration->execute();
$results_internships_top_remuneration = $query_internships_top_remuneration->fetchALL(PDO::FETCH_OBJ);
$query_internships_longest = $bdd->prepare('SELECT * FROM internships ORDER BY duration_internship DESC LIMIT 5;');
$query_internships_longest->execute();
$results_companies_longest = $query_internships_longest->fetchALL(PDO::FETCH_OBJ);
$query_internships_shortest = $bdd->prepare('SELECT * FROM internships ORDER BY duration_internship ASC LIMIT 5;');
$query_internships_shortest->execute();
$results_internships_shortest = $query_internships_shortest->fetchALL(PDO::FETCH_OBJ);
?> ?>
<html lang="fr"> <html lang="fr">
<head> <head>
@ -39,79 +74,140 @@ if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) {
</head> </head>
<body> <body>
<div id="modal_add_edit" class="modal"> <div id="modal_add_edit" class="modal">
<div class="modal-content"> <div class="modal-content">
<span class="close">&times;</span> <span id="close_add_edit" class="close">&times;</span>
<div class="title_modal">Ajout d'un stage</div> <div class="title_modal">Ajout d'un stage</div>
<form class="form_add_edit" method="POST" action="/controller/Manage_internships.php"> <form class="form_add_edit" method="POST" action="/controller/Manage_internships.php">
<input type="hidden" name="action" value="add"> <input type="hidden" name="action" value="add">
<div class="table-container"> <div class="table-container">
<div class="info_message"></div> <div class="info_message"></div>
<div class="flex-table">
<div class="flex-row name">Nom :</div>
<div class="flex-row value"><input class="input" type="text" name="name_internship" required></div>
</div>
<div class="flex-table">
<div class="flex-row name">Description du stage :</div>
<div class="flex-row value"><input class="input" type="text" name="description_internship" required></div>
</div>
<div class="flex-table">
<div class="flex-row name">Durée du stage :</div>
<div class="flex-row value"><input class="input" type="text" name="duration_internship" required></div>
</div>
<div class="flex-table">
<div class="flex-row name">Rémunération :</div>
<div class="flex-row value"><input class="input" type="text" name="remuneration_internship" required></div>
</div>
<div class="flex-table">
<div class="flex-row name">Date de l'offre :</div>
<div class="flex-row value"><input class="input" type="date" name="offer_date_internship" required></div>
</div>
<div class="flex-table">
<div class="flex-row name">Nombre de place :</div>
<div class="flex-row value"><input class="input" type="text" name="place_number_internship" required></div>
</div>
<div class="flex-table">
<div class="flex-row name">Compétences :</div>
<div class="flex-row value"><input class="input" type="text" name="competences_internship" required></div>
</div>
<div class="flex-table">
<div class="flex-row name">Promotion :</div>
<div class="flex-row value">
<select class="input" name="promotion" id="select_name_promotion" required>
<option value="" selected>--Choisir une promotion--</option>
<?php foreach ($results_promotions as $result) { ?>
<option value="<?= $result->ID_promotion ?>"><?= $result->name_promotion ?></option>
<?php } ?>
</select>
</div>
</div>
<div class="flex-table"> <div class="flex-table">
<div class="flex-row name">Localisation :</div> <div class="flex-row name">Nom :</div>
<div class="flex-row value"> <div class="flex-row value"><input class="input" type="text" name="name_internship" required></div>
<select class="input" name="localisation" id="select_localisation" required>
<option value="">--Choisir une ville--</option>
<?php foreach ($results_localisations as $result) { ?>
<option value="<?= $result->ID_localisation ?>"><?= $result->city_localisation ?></option>
<?php } ?>
</select>
</div>
</div> </div>
<div class="flex-table"> <div class="flex-table">
<div class="flex-row name">Entreprise :</div> <div class="flex-row name">Description du stage :</div>
<div class="flex-row value"><input class="input" type="text" name="description_internship" required></div>
</div>
<div class="flex-table">
<div class="flex-row name">Durée du stage (j) :</div>
<div class="flex-row value"><input class="input" type="text" name="duration_internship" required></div>
</div>
<div class="flex-table">
<div class="flex-row name">Rémunération (/h) :</div>
<div class="flex-row value"><input class="input" type="text" name="remuneration_internship" required></div>
</div>
<div class="flex-table">
<div class="flex-row name">Date de l'offre :</div>
<div class="flex-row value"><input class="input" type="date" name="offer_date_internship" required></div>
</div>
<div class="flex-table">
<div class="flex-row name">Nombre de place :</div>
<div class="flex-row value"><input class="input" type="text" name="place_number_internship" required></div>
</div>
<div class="flex-table">
<div class="flex-row name">Compétences :</div>
<div class="flex-row value"><input class="input" type="text" name="competences_internship" required></div>
</div>
<div class="flex-table">
<div class="flex-row name">Promotion :</div>
<div class="flex-row value"> <div class="flex-row value">
<select class="input" name="company" id="select_company" required> <select class="input" name="promotion" id="select_name_promotion" required>
<option value="">--Choisir une entreprise--</option> <option value="" selected>--Choisir une promotion--</option>
<?php foreach ($results_company as $result) { ?> <?php foreach ($results_promotions as $result) { ?>
<option value="<?= $result->ID_company ?>"><?= $result->name_company ?></option> <option value="<?= $result->ID_promotion ?>"><?= $result->name_promotion ?></option>
<?php } ?> <?php } ?>
</select> </select>
</div> </div>
</div> </div>
<div class="flex-table">
<div class="flex-row name">Localisation :</div>
<div class="flex-row value">
<select class="input" name="localisation" id="select_localisation" required>
<option value="">--Choisir une ville--</option>
<?php foreach ($results_localisations as $result) { ?>
<option value="<?= $result->ID_localisation ?>"><?= $result->city_localisation ?></option>
<?php } ?>
</select>
</div> </div>
<button id="button_add_edit" type="submit">Ajouter</button> </div>
</form> <div class="flex-table">
<div class="flex-row name">Entreprise :</div>
<div class="flex-row value">
<select class="input" name="company" id="select_company" required>
<option value="">--Choisir une entreprise--</option>
<?php foreach ($results_company as $result) { ?>
<option value="<?= $result->ID_company ?>"><?= $result->name_company ?></option>
<?php } ?>
</select>
</div>
</div>
</div>
<button id="button_add_edit" type="submit">Ajouter</button>
</form>
</div>
</div>
<div id="modal_stat" class="modal">
<div class="modal-content">
<span class="close" id="close_stat">&times;</span>
<div class="title_modal2">Top 5 des stages ayant la meilleure rémuneration</div>
<div class="modal_stat_table">
<table class="table">
<tr>
<td>ID</td>
<td>Nom</td>
<td>Rémuneration (/h)</td>
</tr>
<?php foreach ($results_internships_top_remuneration as $result) { ?>
<tr>
<td><?= $result->ID_internship ?></td>
<td><?= $result->name_internship ?></td>
<td><?= $result->remuneration_internship ?></td>
</tr>
<?php } ?>
</table>
</div>
<div class="title_modal2">Top 5 des stages les plus longs</div>
<div class="modal_stat_table">
<table class="table">
<tr>
<td>ID</td>
<td>Nom</td>
<td>Durée du stage (j)</td>
</tr>
<?php foreach ($results_companies_longest as $result) { ?>
<tr>
<td><?= $result->ID_internship ?></td>
<td><?= $result->name_internship ?></td>
<td><?= $result->duration_internship ?></td>
</tr>
<?php } ?>
</table>
</div>
<div class="title_modal2">Top 5 des stages les plus courts</div>
<div class="modal_stat_table">
<table class="table">
<tr>
<td>ID</td>
<td>Nom</td>
<td>Note</td>
</tr>
<?php foreach ($results_internships_shortest as $result) { ?>
<tr>
<td><?= $result->ID_internship ?></td>
<td><?= $result->name_internship ?></td>
<td><?= $result->duration_internship ?></td>
</tr>
<?php } ?>
</table>
</div> </div>
</div> </div>
</div>
<div class="container"> <div class="container">
<?php require "controller/Nav_bar.php" ?> <?php require "controller/Nav_bar.php" ?>
@ -120,19 +216,24 @@ if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) {
<div class="content"> <div class="content">
<div class="content_title">Gestion des stages</div> <div class="content_title">Gestion des stages</div>
<div class="info_message">Le stage a été supprimé !</div> <div class="info_message">Le stage a été supprimé !</div>
<div class="logo_plus"><i class="fas fa-plus-square logo_add"></i> <i class="fas fa-chart-bar logo_stat"></i></div> <div class="logo_plus">
<?php
if ($gestion_Stages_create) { echo '<i class="fas fa-plus-square logo_add"></i>'; }
if ($gestion_Stages_stat) { echo '<i class="fas fa-chart-bar logo_stat"></i>'; }
?>
</div>
<div class="table"> <div class="table">
<table class="table"> <table class="table">
<tr> <tr>
<td>ID</td> <td>ID</td>
<td>Nom</td> <td>Nom</td>
<td>Durée du stage</td> <td>Durée du stage (j)</td>
<td>Rémunération</td> <td>Rémunération (/h)</td>
<td>Date de l'offre</td> <td>Date de l'offre</td>
<td>Nombre de place</td> <td>Nombre de place</td>
<td>Compétences</td> <td>Compétences</td>
<td>Promotions</td> <td>Promotions</td>
<td>Actions</td> <?php if ($gestion_Stages_edit || $gestion_Stages_delete) { echo '<td>Actions</td>';} ?>
</tr> </tr>
<?php foreach ($results_internships as $result) { ?> <?php foreach ($results_internships as $result) { ?>
<tr> <tr>
@ -144,12 +245,16 @@ if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) {
<td><?= $result->place_number_internship ?></td> <td><?= $result->place_number_internship ?></td>
<td><?= $result->competences_internship ?></td> <td><?= $result->competences_internship ?></td>
<td><?= $result->name_promotion ?></td> <td><?= $result->name_promotion ?></td>
<?php if ($gestion_Stages_edit || $gestion_Stages_delete) { ?>
<td> <td>
<div class="actions"> <div class="actions">
<i ID_internship="<?= $result->ID_internship ?>" name="<?= $result->name_internship ?>" description="<?= $result->description_internship ?>" duration="<?= $result->duration_internship ?>" remuneration="<?= $result->remuneration_internship ?>" offer_date="<?= $result->offer_date_internship ?>" place_number="<?= $result->place_number_internship ?>" competences="<?= $result->competences_internship ?>" id_promotion="<?= $result->ID_promotion ?>" id_localisation="<?= $result->ID_localisation ?>" id_company="<?= $result->ID_company ?>" class="fas fa-pen logo_edit"></i> <?php
<i ID_internship="<?= $result->ID_internship ?>" class="fas fa-trash-alt logo_delete"></i> if ($gestion_Stages_edit) { echo "<i ID_internship='$result->ID_internship' name='$result->name_internship' description='$result->description_internship' duration='$result->duration_internship' remuneration='$result->remuneration_internship' offer_date='$result->offer_date_internship' place_number='$result->place_number_internship' competences='$result->competences_internship' id_promotion='$result->ID_promotion' id_localisation='$result->ID_localisation' id_company='$result->ID_company' class='fas fa-pen logo_edit'></i>";}
if ($gestion_Stages_delete) { echo "<i ID_internship='$result->ID_internship' class='fas fa-trash-alt logo_delete'></i>";}
?>
</div> </div>
</td> </td>
<?php } ?>
</tr> </tr>
<?php } ?> <?php } ?>
</table> </table>

View File

@ -171,8 +171,7 @@ if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) {
</div> </div>
<?= $result->city_localisation; ?> <?= $result->postal_code_localisation; ?> <?= $result->city_localisation; ?> <?= $result->postal_code_localisation; ?>
<div class="description"> <div class="description">
Lorem ipsum dolor sit amet consectetur adipisicing elit. Expedita maiores nostrum eum asperiores hic repellat perferendis soluta necessitatibus possimus sit! Eaque iste tenetur harum repellendus. Quam culpa dolores modi autem. Si vous êtes intéressé par cette entreprise, veuillez consulter leur(s) offre(s) de stage directement dans la rubrique offre de stage en filtrant avec le nom de l'entreprise. </div>
</div>
</div> </div>
<div class="divRight"> <div class="divRight">
<table> <table>

View File

@ -53,7 +53,7 @@ self.addEventListener('fetch', evt => {
return cacheRes; return cacheRes;
}) })
}).catch(() => { }).catch(() => {
console.log("BLAAAAA", evt.request.url) console.log(evt.request.url)
return cacheRes; return cacheRes;
}); });
} else { } else {