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");
$(".logo_add").click(function() {
$(".modal").show();
$("#modal_add_edit").show();
$(".title_modal").html("Ajout d'un stage");
$("input[type='hidden']").attr("value","add");
$("#button_add_edit").html("Ajouter");
@ -22,13 +22,16 @@ $(document).ready(function(){
$(".info_message").css("display", "none");
});
$(".close:eq(0)").click(function() {
$("#close_add_edit").click(function() {
$(".modal").hide();
});
window.onclick = function(event) {
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}`);})
.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 } ?>
</table>
</div>
</div>
</div>

View File

@ -11,9 +11,32 @@ if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) {
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;';
$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_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->execute();
$results_internships = $query_internships->fetchALL(PDO::FETCH_OBJ);
@ -30,6 +53,18 @@ if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) {
$query_company->execute();
$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">
<head>
@ -39,79 +74,140 @@ if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) {
</head>
<body>
<div id="modal_add_edit" class="modal">
<div class="modal-content">
<span class="close">&times;</span>
<div class="title_modal">Ajout d'un stage</div>
<form class="form_add_edit" method="POST" action="/controller/Manage_internships.php">
<input type="hidden" name="action" value="add">
<div class="table-container">
<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="modal-content">
<span id="close_add_edit" class="close">&times;</span>
<div class="title_modal">Ajout d'un stage</div>
<form class="form_add_edit" method="POST" action="/controller/Manage_internships.php">
<input type="hidden" name="action" value="add">
<div class="table-container">
<div class="info_message"></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 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">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">
<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>
<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>
</select>
</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>
<button id="button_add_edit" type="submit">Ajouter</button>
</form>
</div>
<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 class="container">
<?php require "controller/Nav_bar.php" ?>
@ -120,19 +216,24 @@ if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) {
<div class="content">
<div class="content_title">Gestion des stages</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">
<table class="table">
<tr>
<td>ID</td>
<td>Nom</td>
<td>Durée du stage</td>
<td>Rémunération</td>
<td>Durée du stage (j)</td>
<td>Rémunération (/h)</td>
<td>Date de l'offre</td>
<td>Nombre de place</td>
<td>Compétences</td>
<td>Promotions</td>
<td>Actions</td>
<?php if ($gestion_Stages_edit || $gestion_Stages_delete) { echo '<td>Actions</td>';} ?>
</tr>
<?php foreach ($results_internships as $result) { ?>
<tr>
@ -144,12 +245,16 @@ if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) {
<td><?= $result->place_number_internship ?></td>
<td><?= $result->competences_internship ?></td>
<td><?= $result->name_promotion ?></td>
<?php if ($gestion_Stages_edit || $gestion_Stages_delete) { ?>
<td>
<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>
<i ID_internship="<?= $result->ID_internship ?>" class="fas fa-trash-alt logo_delete"></i>
<?php
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>
</td>
<?php } ?>
</tr>
<?php } ?>
</table>

View File

@ -171,8 +171,7 @@ if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) {
</div>
<?= $result->city_localisation; ?> <?= $result->postal_code_localisation; ?>
<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.
</div>
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 class="divRight">
<table>

View File

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