Compare commits

...

2 Commits

Author SHA1 Message Date
pierre renaudot
7d09299dcb test 2023-11-30 14:03:21 +01:00
pierre renaudot
6f165b76f2 ajout d'une intervention vFinal 2023-11-30 12:14:44 +01:00
6 changed files with 607 additions and 462 deletions

View File

@ -13,28 +13,7 @@ switch ($action) {
case 'voir': { case 'voir': {
include("vues/v_entete.php"); include("vues/v_entete.php");
if (!isset($_REQUEST['zSemaine'])) {
$_REQUEST['zSemaine'] = date('W');
}
$semaine = $_REQUEST['zSemaine'];
if (!isset($_REQUEST['zAnnee'])) {
$_REQUEST['zAnnee'] = date('Y');
}
$annee = $_REQUEST['zAnnee'];
$premierJour = strtotime("+$semaine weeks", mktime(0, 0, 0, 1, 1, $annee));
if (date('w', $premierJour) != 1) {
$premierJour = strtotime("last monday", $premierJour);
}
$lesTranches = $pdo->getParametre("tranche");
$lesTypesDispos = $pdo->getParametre("dispo");
$titre = "CIS"; //Centre d'incendie et de secours :";
//include("vues/v_choixCaserne.php");
//$lesPompiers = $pdo->getLesPompiers($choix);
//$lesInterventions = $pdo->getLesInterventions($choix);
//$intervention = 1;
//$lesParticipants = $pdo->getLesParticipants($choix, $intervention);
include("vues/v_Intervention.php"); include("vues/v_Intervention.php");
break; break;
} }
@ -42,7 +21,11 @@ switch ($action) {
include("vues/v_entete.php"); include("vues/v_entete.php");
$lesCasernes = $pdo->getLesCasernes($_SESSION["adr1"]); $lesCasernes = $pdo->getLesCasernes($_SESSION["adr1"]);
$lesMotifs = $pdo->motifIntervention(); $lesMotifs = $pdo->motifIntervention();
$lesPompiers = $pdo->getPompiersDispo('2023-09-23', 2, 2924);
$tranche = $pdo->getCurrentTranche();
$date = date('Y-m-d');
$lesPompiers = $pdo->getPompiersDispo($date, $tranche, 2904);
include("vues/v_nouvelleIntervention.php"); include("vues/v_nouvelleIntervention.php");
@ -53,10 +36,32 @@ switch ($action) {
$pdo = PdoBD::getPdoBD(); $pdo = PdoBD::getPdoBD();
$lesPompiers = $pdo->getPompiersDispo('2023-09-23', 2, $_GET['cis']); $tranche = $pdo->getCurrentTranche();
$date = date('Y-m-d');
$lesPompiers = $pdo->getPompiersDispo($date, $tranche, $_GET['cis']);
echo(json_encode($lesPompiers)); echo(json_encode($lesPompiers));
break;
case 'nouvelleInter':
require_once ("../include/class.pdo.php");
$pdo = PdoBD::getPdoBD();
//var_dump($_REQUEST);
$listePompier = $_POST['listePompier'];
$data = $_POST['dataForm'];
$pdo->newIntervention(
intval($data['motif']),
intval($data['caserne']),
$data['adresse'],
$data['commentaire'],
$listePompier
);
//var_dump($listePompier);
break; break;
//----------------------------------------- //-----------------------------------------
case 'majGarde': { case 'majGarde': {

View File

@ -581,7 +581,7 @@ class PdoBD
$cat = PdoBD::$monPdo->query($req); $cat = PdoBD::$monPdo->query($req);
$cat = $cat->fetchAll(); $cat = $cat->fetchAll();
//Valeur : nbUtil //Valeur : nbUtilisation
//Plancher : Time //Plancher : Time
//Plafond: nbPompier estimé //Plafond: nbPompier estimé
$reqType = "SELECT pIndice, pLibelle, pValeur, pPlancher, pPlafond $reqType = "SELECT pIndice, pLibelle, pValeur, pPlancher, pPlafond
@ -655,6 +655,109 @@ class PdoBD
return $result->fetchAll(); return $result->fetchAll();
} }
public function getCurrentTranche()
{
$req = "SELECT pIndice
FROM parametre
WHERE pType = 'tranche' AND :heure >= pPlancher AND :heure < pPlafond;";
$result = PdoBD::$monPdo->prepare($req);
$hour = date("H");
$result->bindParam(':heure', $hour);
$result->execute();
$result = $result->fetch();
return $result['pIndice'];
}
public function getLastIdIntervention(int $cis)
{
$req = "SELECT iId
FROM `intervention`
WHERE iCis = :cis;";
$result = PdoBD::$monPdo->prepare($req);
$result->bindParam(':cis', $cis);
$result->execute();
$result = $result->fetch();
$id = isset($result['iId']) ? $result['iId'] : 0;
return $id;
}
/**
* Crée une nouvelle intervention
*/
public function newIntervention(
int $motif,
int $caserne,
string $adresse,
string $description,
array $pompier
) {
/**
* Nouvelle intervention
*/
$req = " INSERT INTO intervention
VALUES(:caserne, :id, :adresse, :description,
NOW(), :tranche, NOW(), NULL, :motif, :nbPompier);";
$result = PdoBD::$monPdo->prepare($req);
$result->bindParam(':caserne', $caserne);
$result->bindParam(':adresse', $adresse);
$result->bindParam(':description', $description);
$result->bindParam(':motif', $motif);
$nbPompier = count($pompier);
$result->bindParam(':nbPompier', $nbPompier);
$tranche = $this->getCurrentTranche();
$result->bindParam(':tranche', $tranche);
$idIntervention = $this->getLastIdIntervention($caserne) + 1;
$result->bindParam(':id', $idIntervention);
$result->execute();
/**
* Nouvelle équipe
*/
foreach ($pompier as $value) {
var_dump($value);
foreach ($value as $key => $value) {
$req2 = "INSERT INTO equipe
VALUES (:caserne, :pompier, :intervention)";
$result2 = PdoBD::$monPdo->prepare($req2);
$result2->bindParam('caserne', $caserne);
$result2->bindParam('intervention', $idIntervention);
if ($value == 0) {
$result2->bindParam('pompier', $key);
$result2->execute();
} else {
$currentIntervention = "SELECT iId
FROM intervention
LEFT OUTER JOIN equipe on intervention.iId = equipe.eIntervention AND intervention.iCis = equipe.eCis
WHERE iHeureFin IS NULL AND equipe.ePompier = :pompier AND equipe.eCis = :caserne;";
$curentId = PdoBD::$monPdo->prepare($currentIntervention);
$curentId->bindParam('pompier', $key);
$curentId->bindParam('caserne', $caserne);
$curentId->execute();
$curentId = $curentId->fetch();
$reqSuprInter = "DELETE FROM equipe
WHERE eCis = :caserne AND ePompier = :pompier AND eIntervention = :intervention";
$suprInter = PdoBD::$monPdo->prepare($reqSuprInter);
$suprInter->bindParam('caserne', $caserne);
$suprInter->bindParam('pompier', $key);
$suprInter->bindParam('intervention', $currentId['iId']);
$suprInter->execute();
}
}
}
}
} }
/** /**

View File

@ -3,22 +3,14 @@ date = Date.now()
$(document).ready(function () { $(document).ready(function () {
// $.ajax({ $('#motifInter').change(function (e) {
// url: "/controleurs/c_interventions.php?action=infoFormulaire", let nbPompier = $(this).find(":selected").attr('data-effectif');
// method: "POST", // Méthode HTTP (GET, POST, etc.) $('#nbPompierCons').html("Nombre de pompiers conseillé: " + nbPompier);
// dataType: "json", // Type de données attendu });
// error: function(status, error) {
// // Gérer les erreurs de la requête AJAX
// console.error("Erreur lors de la requête AJAX :", status, error);
// },
// success: function(result) {
// }
// });
$('#caserneInter').change(function () { $('#caserneInter').change(function () {
console.log($(this).val()); caserne = $(this).val();
caserne = $(this).val()
//cis //cis
$.ajax({ $.ajax({
url: "./../controleurs/c_interventions.php?action=listePompier&cis=" + caserne, url: "./../controleurs/c_interventions.php?action=listePompier&cis=" + caserne,
@ -34,6 +26,7 @@ $(document).ready(function () {
var ligne = '<div id=' var ligne = '<div id='
+ element['pId'] + element['pId']
+ ' class="' + element['pLibelle'] + ' class="' + element['pLibelle']
+ '" data-intervention="' + element['enIntervention']
+ '" style = "background-color: ' + element['pValeur'] + ';" draggable = "true" ondragstart = "dragstartHandler(event)" >' + '" style = "background-color: ' + element['pValeur'] + ';" draggable = "true" ondragstart = "dragstartHandler(event)" >'
+ element['pPrenom'] + ' ' + element['pNom'] + element['pPrenom'] + ' ' + element['pNom']
+ ' (' + element['statut'] + ')' + ' (' + element['statut'] + ')'
@ -44,7 +37,6 @@ $(document).ready(function () {
}); });
} }
}); });
}); });
}); });
@ -71,3 +63,51 @@ function dropHandler(ev) {
} }
/**
* PREPARATION DE L'ENVOIE DU FORMULAIRE
*/
$(document).on('submit', '#formulaireInter', function(e){
e.preventDefault();
})
$(document).on('click', '#sendInter', function(e){
e.preventDefault();
//var data = $('#formulaireInter').serialize();
var data = {
motif: $('#formulaireInter select[name=motif]').val(),
adresse: $('#formulaireInter input[name=adresse]').val(),
caserne: $('#formulaireInter select[name=caserne]').val(),
commentaire: $('#formulaireInter textarea[name=commentaire]').val()
};
let listePompier = [];
$('.pompierIntervenant div').each(function(index){
num = $(this).attr('id');
dispo = $(this).attr('data-intervention');
var obj = {};
obj[num] = dispo
listePompier.push(obj)
})
var sendingData = {
"dataForm" : data,
"listePompier" : listePompier
};
$.ajax({
url: "./../controleurs/c_interventions.php?action=nouvelleInter",
method: "POST", // Méthode HTTP (GET, POST, etc.)
data: sendingData,
dataType: "json", // Type de données attendu
error: function (status, error) {
// Gérer les erreurs de la requête AJAX
console.error("Erreur lors de la requête AJAX :", status, error);
},
success: function (result) {
//COMPLETE
}
});
})

View File

@ -8,6 +8,7 @@
padding: 0em; padding: 0em;
color: rgb(0, 85, 227); color: rgb(0, 85, 227);
} }
#sommaire { #sommaire {
float: right; float: right;
margin-top: 20px; margin-top: 20px;
@ -15,20 +16,21 @@
padding: 0em; padding: 0em;
color: rgb(0, 85, 227); color: rgb(0, 85, 227);
} }
#sommaire ul { #sommaire ul {
padding: 0; padding: 0;
margin: 0; margin: 0;
list-style-type: none; list-style-type: none;
} }
#sommaire li
{ #sommaire li {
vertical-align: middle; vertical-align: middle;
margin-left: 2px; margin-left: 2px;
float:left; /*pour IE*/ float: left;
/*pour IE*/
} }
#sommaire ul li a #sommaire ul li a {
{
vertical-align: middle; vertical-align: middle;
display: block; display: block;
float: left; float: left;
@ -42,22 +44,27 @@
border-style:solid; border-style:solid;
border-color:#DCDCDC #696969 #696969 #DCDCDC; /*pour avoir un effet "outset" avec IE */ border-color:#DCDCDC #696969 #696969 #DCDCDC; /*pour avoir un effet "outset" avec IE */
} }
#sommaire ul li a:hover
{ #sommaire ul li a:hover {
color: #881600; /*rgb(0,85,227);*/ color: #881600;
/*rgb(0,85,227);*/
font-size: 16px; font-size: 16px;
/*background-color:#D3D3D3; /*background-color:#D3D3D3;
border-color: #696969 #DCDCDC #DCDCDC #696969; */ border-color: #696969 #DCDCDC #DCDCDC #696969; */
} }
#sommaire ul li ul { #sommaire ul li ul {
display: none; display: none;
} }
#sommaire ul li:hover ul { #sommaire ul li:hover ul {
display: block; display: block;
} }
#sommaire li:hover ul li { #sommaire li:hover ul li {
float: none; float: none;
} }
#sommaire li ul { #sommaire li ul {
position: absolute; position: absolute;
} }
@ -69,6 +76,7 @@
background-color: #ffff00; background-color: #ffff00;
font-size: 0.75em; font-size: 0.75em;
} }
body { body {
background-color: white; background-color: white;
/* //background-image: url(imgs/FONDGLOBAL.jpg); */ /* //background-image: url(imgs/FONDGLOBAL.jpg); */
@ -77,12 +85,14 @@ body{
font-family: "Trebuchet MS", Verdana, Geneva, Arial, Helvetica, sans-serif; font-family: "Trebuchet MS", Verdana, Geneva, Arial, Helvetica, sans-serif;
font-size: 0.8em; font-size: 0.8em;
} }
#page { #page {
background-color: white; background-color: white;
width: 95%; width: 95%;
margin: auto; margin: auto;
border: 1px solid black; border: 1px solid black;
} }
#entete { #entete {
background-color: #8B93A7; background-color: #8B93A7;
color: #881600; color: #881600;
@ -92,6 +102,7 @@ body{
height: 100px; height: 100px;
padding: 0 100px; padding: 0 100px;
} }
#pied { #pied {
clear: both; clear: both;
border: solid 0.2em #881600; border: solid 0.2em #881600;
@ -101,6 +112,7 @@ body{
padding: 0.2em; padding: 0.2em;
border-collapse: separate; border-collapse: separate;
} }
#menu { #menu {
position: relative; position: relative;
float: right; float: right;
@ -119,13 +131,16 @@ body{
background-color: white; background-color: white;
border-left: groove 0.8em #881600; border-left: groove 0.8em #881600;
margin-top: 1.1em; margin-top: 1.1em;
margin-left: 82px; /*162px; /*18%; */ margin-left: 82px;
/*162px; /*18%; */
/* permet de fixer une hauteur mini sur les navigateurs modernes */ /* permet de fixer une hauteur mini sur les navigateurs modernes */
min-height: 27em; min-height: 27em;
/* pour obtenir le même effet sur IE, sachant que si le contenu dépasse, il "poussera" la hauteur en ne respectant pas la norme. On se joue de ses lacunes */ /* pour obtenir le même effet sur IE, sachant que si le contenu dépasse, il "poussera" la hauteur en ne respectant pas la norme. On se joue de ses lacunes */
height: 27em; height: 27em;
} }
a, a:visited,
a,
a:visited,
a:hover { a:hover {
color: #881600; color: #881600;
} }
@ -159,6 +174,7 @@ ul#menuList a {
text-decoration: none; text-decoration: none;
width: 100%; width: 100%;
} }
ul#menuList a:hover { ul#menuList a:hover {
background: rgb(0, 85, 227); background: rgb(0, 85, 227);
color: white; color: white;
@ -181,6 +197,7 @@ ul#menuList a:hover {
width: 95%; width: 95%;
overflow: scroll; overflow: scroll;
} }
#contenu h2 { #contenu h2 {
font-size: large; font-size: large;
text-align: left; text-align: left;
@ -191,6 +208,7 @@ ul#menuList a:hover {
.logoValidW3c { .logoValidW3c {
display: inline; display: inline;
} }
#libValidW3c { #libValidW3c {
display: inline; display: inline;
vertical-align: middle; vertical-align: middle;
@ -203,6 +221,7 @@ ul#menuList a:hover {
margin-bottom: 0em; margin-bottom: 0em;
width: 95%; width: 95%;
} }
.piedForm { .piedForm {
border-bottom-width: 0.1em; border-bottom-width: 0.1em;
border-left-width: 0.1em; border-left-width: 0.1em;
@ -214,13 +233,16 @@ ul#menuList a:hover {
width: 95%; width: 95%;
margin-top: 0em; margin-top: 0em;
} }
form { form {
margin-bottom: 1em; margin-bottom: 1em;
} }
.corpsForm legend { .corpsForm legend {
font-weight: bold; font-weight: bold;
font-size: 1.2em; font-size: 1.2em;
} }
.corpsForm label { .corpsForm label {
float: left; float: left;
text-align: right; text-align: right;
@ -229,7 +251,11 @@ form {
padding: 0 .5em 0 0; padding: 0 .5em 0 0;
line-height: 1.8; line-height: 1.8;
} }
input, button, textarea, select{
input,
button,
textarea,
select {
font-family: "Trebuchet MS", sans-serif; font-family: "Trebuchet MS", sans-serif;
font-size: 1em; font-size: 1em;
} }
@ -237,22 +263,29 @@ input, button, textarea, select{
input:focus { input:focus {
background-color: #ECB2E4; background-color: #ECB2E4;
} }
button { button {
width: 60px; width: 60px;
height: 30px; height: 30px;
text-align: center; text-align: center;
vertical-align: middle; vertical-align: middle;
} }
input:hover, textarea:hover, select:hover{
input:hover,
textarea:hover,
select:hover {
background-color: #FAFAE6; background-color: #FAFAE6;
cursor: pointer; cursor: pointer;
} }
.controle { .controle {
width: 75px; width: 75px;
} }
.controleLong { .controleLong {
width: 195px; width: 195px;
} }
.stNb { .stNb {
width: 40px; width: 40px;
text-align: center; text-align: center;
@ -284,6 +317,7 @@ taille de caractères légèrement supérieure à la normale */
margin-left: 200px; margin-left: 200px;
width: 75%; width: 75%;
} }
.centre { .centre {
text-align: center; text-align: center;
} }
@ -299,6 +333,7 @@ taille de caractères légèrement supérieure à la normale */
border: solid 0.1em #000; border: solid 0.1em #000;
width: 100%; width: 100%;
} }
/* Style pour les liens de la page principale */ /* Style pour les liens de la page principale */
#contenu .corpsTexte { #contenu .corpsTexte {
width: 80%; width: 80%;
@ -311,6 +346,7 @@ taille de caractères légèrement supérieure à la normale */
color: gray; color: gray;
text-decoration: none; text-decoration: none;
} }
#contenu a:hover { #contenu a:hover {
text-decoration: underline; text-decoration: underline;
background-color: #D9BB7A; background-color: #D9BB7A;
@ -358,11 +394,13 @@ table{
width: 100%; width: 100%;
border-collapse: collapse; border-collapse: collapse;
} }
fieldset { fieldset {
border-radius: 12px; border-radius: 12px;
border: 2px solid; border: 2px solid;
border-color: purple; border-color: purple;
} }
legend { legend {
font-size: 20px; font-size: 20px;
} }
@ -396,7 +434,8 @@ table.stats td {
} }
/* Tableaux quadrillés utilisés pour l'affichage de listes avec contenu léger*/ /* Tableaux quadrillés utilisés pour l'affichage de listes avec contenu léger*/
table.listeLegere th, table.listeLegere td { table.listeLegere th,
table.listeLegere td {
border: dotted rgb(178, 207, 81) 0.1em; border: dotted rgb(178, 207, 81) 0.1em;
padding: 0.2em; padding: 0.2em;
vertical-align: top; vertical-align: top;
@ -407,6 +446,7 @@ table.listeLegere caption {
text-align: left; text-align: left;
margin-bottom: 0.2em; margin-bottom: 0.2em;
} }
table.listeLegere td { table.listeLegere td {
width: 100px; width: 100px;
vertical-align: top; vertical-align: top;
@ -435,14 +475,12 @@ table.listeLegere td {
height: 26px; height: 26px;
} }
.lesOnglets .lesOnglets {
{
margin: 0; margin: 0;
padding: 0 0 0 5px; padding: 0 0 0 5px;
} }
.unOnglet .unOnglet {
{
background-color: white; background-color: white;
margin-top: -1px; margin-top: -1px;
padding: 5px; padding: 5px;
@ -454,8 +492,8 @@ table.listeLegere td {
color: #555; color: #555;
cursor: text; cursor: text;
} }
.onglet
{ .onglet {
display: inline-block; display: inline-block;
margin: 5px 2px 0 2px; margin: 5px 2px 0 2px;
padding: 5px 10px; padding: 5px 10px;
@ -468,45 +506,50 @@ table.listeLegere td {
cursor: pointer; cursor: pointer;
font-weight: bold; font-weight: bold;
} }
.inactif
{ .inactif {
background: #EEE; background: #EEE;
} }
.inactif:hover
{ .inactif:hover {
background: #AAA; background: #AAA;
} }
.actif
{ .actif {
background: white; background: white;
border-bottom: 2px solid white; border-bottom: 2px solid white;
padding-bottom: 4px; padding-bottom: 4px;
cursor: text; cursor: text;
} }
.fdroite { .fdroite {
display: inline-block; display: inline-block;
border-bottom: 7px solid #FFFFFF; border-bottom: 7px solid #FFFFFF;
border-top: 7px solid #FFFFFF; border-top: 7px solid #FFFFFF;
border-left: 10px solid #9743CC; border-left: 10px solid #9743CC;
} }
.fbas { .fbas {
display: inline-block; display: inline-block;
border-left: 7px solid #FFFFFF; border-left: 7px solid #FFFFFF;
border-right: 7px solid #FFFFFF; border-right: 7px solid #FFFFFF;
border-top: 10px solid #AABBCC; border-top: 10px solid #AABBCC;
} }
.fgauche { .fgauche {
display: inline-block; display: inline-block;
border-bottom: 7px solid #FFFFFF; border-bottom: 7px solid #FFFFFF;
border-right: 10px solid #9743CC; border-right: 10px solid #9743CC;
border-top: 7px solid #FFFFFF; border-top: 7px solid #FFFFFF;
} }
.fhaut { .fhaut {
display: inline-block; display: inline-block;
border-bottom: 10px solid #AABBCC; border-bottom: 10px solid #AABBCC;
border-left: 7px solid #FFFFFF; border-left: 7px solid #FFFFFF;
border-right: 7px solid #FFFFFF; border-right: 7px solid #FFFFFF;
} }
.boite { .boite {
border: 1px solid #ddd; border: 1px solid #ddd;
-webkit-border-radius: 5px; -webkit-border-radius: 5px;
@ -552,6 +595,7 @@ table.listeLegere td {
background-color: #ffe9e5; background-color: #ffe9e5;
color: #000080; color: #000080;
} }
.tableau { .tableau {
background-color: #ebeff2; background-color: #ebeff2;
border-color: #3DA9C9; border-color: #3DA9C9;
@ -576,6 +620,7 @@ table.listeLegere td {
border-width: 1px; border-width: 1px;
border-color: gray; border-color: gray;
} }
.tableau th div { .tableau th div {
width: 25px; width: 25px;
} }
@ -617,6 +662,7 @@ table.listeLegere td {
background-color: #ffe9e5; background-color: #ffe9e5;
color: #000080; color: #000080;
} }
#pompiers { #pompiers {
background-color: #ebeff2; background-color: #ebeff2;
border-color: #3DA9C9; border-color: #3DA9C9;
@ -636,6 +682,7 @@ table.listeLegere td {
padding: 0px 0px 0px 0px; padding: 0px 0px 0px 0px;
vertical-align: middle; vertical-align: middle;
} }
.select-dispo { .select-dispo {
cursor: pointer; cursor: pointer;
} }
@ -649,20 +696,24 @@ PARTIE DES INTERVENTIONS
width: 100%; width: 100%;
} }
.formulaire { .formulaire {
width: 50%; width: 50%;
border-right: solid 1px black; border-right: solid 1px black;
float: left; float: left;
} }
.nouvelleInter .formulaire { .nouvelleInter .formulaire {
/* float: right; */ /* float: right; */
} }
.selectionPompier { .selectionPompier {
margin: 0 30px; margin: 0 30px;
overflow: auto; overflow: auto;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
} }
.pompierDispo { .pompierDispo {
background-color: #8B93A7; background-color: #8B93A7;
width: 40%; width: 40%;
@ -672,6 +723,7 @@ PARTIE DES INTERVENTIONS
text-align: center; text-align: center;
display: inline-block; display: inline-block;
} }
.pompierDispo div, .pompierDispo div,
.pompierIntervenant div { .pompierIntervenant div {
text-decoration: none; text-decoration: none;
@ -680,9 +732,7 @@ PARTIE DES INTERVENTIONS
margin: 5px; margin: 5px;
cursor: pointer; cursor: pointer;
} }
.pompierDispo .1{
}
.pompierIntervenant { .pompierIntervenant {
background-color: red; background-color: red;
width: 40%; width: 40%;
@ -692,8 +742,32 @@ PARTIE DES INTERVENTIONS
display: block; display: block;
text-align: center; text-align: center;
} }
#sendInter { #sendInter {
width: auto; width: auto;
text-align: center; text-align: center;
margin: 10px; margin: 10px;
} }
.infobulle {
position: relative;
/* les .infobulle deviennent référents */
cursor: help;
}
/* on génère un élément :after lors du survol et du focus :*/
.infobulle:hover::after,
.infobulle:focus::after {
content: attr(aria-label);
/* on affiche aria-label */
position: absolute;
top: -2.4em;
left: 50%;
transform: translateX(-50%);
/* on centre horizontalement */
z-index: 1;
/* pour s'afficher au dessus des éléments en position relative */
white-space: nowrap;
/* on interdit le retour à la ligne */
}

View File

@ -1,106 +1,25 @@
<!-- affichage d'une intervention / Derniere modification le 23 mai 2019 par Pascal Blain --> <!-- affichage d'une intervention / Derniere modification le 23 mai 2019 par Pascal Blain -->
<?php
//$nbi = count($lesInterventions);
/*
$titre="Ajout";
echo ('
<div id="fiche">
<ul class="lesOnglets">
<li class="actif onglet" id="onglet1" onclick="javascript:Affiche(\'1\',3);">'.$titre.'</li>
<li class="inactif onglet" id="onglet2" onclick="javascript:Affiche(\'2\',3);">onglet 2</li>
<li class="inactif onglet" id="onglet3" onclick="javascript:Affiche(\'3\',3);">onglet 3</li>
</ul>');
/*================================================================================================== nouvelle intervention (1) */
/*
echo("
<div style='display: block;' class='unOnglet' id='contenuOnglet1'>
<fieldset><legend>Nouvelle intervention</legend>
<table>
<tr><th style='width:180px;'>Description</th><th>Date</th><th>Lieu</th><th>Horaires</th></th></tr>
<tr><td>".$infosIntervention['iDescription']."</td><td>".$infosIntervention['iDdate']."</td><td>".$infosIntervention['iLieu']."</td><td>de ".$infosIntervention['iHeureDebut']." &agrave; ".$infosIntervention['iHeureFin']."</td></tr>
<tr><td colspan='4'>".$infosIntervention['programme1']."</td></tr>
</table>
</fieldset>
<table style='border: 0px solid white;'>
<tr>
<td style='border :0px;'>
<fieldset><legend><a href='index.php?uc=intervention&amp;action=ajouterIntervenants&amp;atelier=20132115&amp;reunion=1' title='ajouter les participants'><img alt='ajouter des intervenants' src='images/group.png'>Intervenants</a></legend>
<table>");
$numPa = 0;
foreach ($lesParticipants as $unParticipant) {
if ( $unParticipant['rOrdre'] == 1 AND $numPa < 7) {
$numPa = $numPa+1;
$participant=$unParticipant['uNom'] . " " . $unParticipant['uPrenom'];
echo("<tr> <th style='width:180px;'>" . $participant . "</th> <td>x</td> </tr>");
}
}
echo(" </table>
</fieldset></td>
<td style='border :0px;'>
<fieldset><legend>(suite)</legend>
<table>");
$numP = 0;
foreach ($lesParticipants as $unParticipant) {
if ($unParticipant['rOrdre'] == 1 ) {
$numP = $numP+1;
if ($numP > 7) {
$participant = $unParticipant['uNom'] . " " . $unParticipant['uPrenom'];
echo("<tr> <th style='width:180px;'>".$participant."</th> <td>x</td> </tr>");
}
}
}
while ($numP<14) {
echo("<tr> <th>...</th>
<td>&nbsp;</td> </tr>");
$numP = $numP+1;
}
echo(" </table>
</fieldset>
</td>
</tr>
</table>
<fieldset><legend>Observations</legend>
<table style='border: 0px solid white;'>
<tr>
<td>".$infosIntervention['commentaire1']."</td>
</tr>
</table>
</fieldset>
</div>");
/*================================================================================================== Onglet (2) */
/*
echo ("
<div style='display: none;' class='unOnglet' id='contenuOnglet2'>
<fieldset><legend>XXXX</legend>
<table>
<tr><th style='width:130px;'>.....</th></tr>
<tr><td>xxxx</td></tr>
</table>
</fieldset>
</div>");
/*================================================================================================== Onglet 3 */
/*
echo ("
<div style='display: none;' class='unOnglet' id='contenuOnglet3'>
<fieldset><legend>XXXX</legend>
<table>
<tr><th style='width:130px;'>.....</th></tr>
<tr><td>xxxx</td></tr>
</table>
</fieldset>
</div>
</div>
</div>");
*/
?>
<div class="lesInterventions" style="height: 200px;"> <div class="lesInterventions" style="height: 200px;">
<!-- Liste des interventions --> <table>
</div> <th>
<td>Date</td>
<td>Caserne</td>
<td>Motif</td>
<td>Lieu</td>
<td>Heure de début</td>
<td>Heure de fin</td>
</th>
<?php
foreach ($variable as $key => $value) {
# code...
}
?>
</table>
<p>Lorem Elsass ipsum réchime amet non <span class="infobulle" aria-label="texte de l'infobulle">Choucroute</span>
Picon bière Coopé knack tchao bissame hopla</p>
</div>

View File

@ -4,7 +4,7 @@
<div class="nouvelleInter"> <div class="nouvelleInter">
<h1>Nouvelle intervention</h1> <h1>Nouvelle intervention</h1>
<div class="formulaire" > <div class="formulaire" >
<form action=""> <form action="" id="formulaireInter">
<label for="motif">Motif de l'intervention : </label> <label for="motif">Motif de l'intervention : </label>
<select name="motif" id="motifInter"> <select name="motif" id="motifInter">
@ -12,7 +12,10 @@
foreach ($lesMotifs as $key => $type) { foreach ($lesMotifs as $key => $type) {
echo '<optgroup label="' . $key . '">'; echo '<optgroup label="' . $key . '">';
foreach ($type as $motif) { foreach ($type as $motif) {
echo ' <option value="' . $motif['pIndice'] . '">' . $motif['pLibelle'] . '</option>'; echo ' <option value="' . $motif['pIndice']
. '" data-time="' . $motif['pPlancher']
. '" data-effectif="' . $motif['pPlafond'] .'" >'
. $motif['pLibelle'] . '</option>';
} }
} }
?> ?>
@ -50,17 +53,18 @@
?> ?>
<div id="<?= $pompier['pId'] ?>" class="<?= $pompier['pLibelle'] ?>" <div id="<?= $pompier['pId'] ?>" class="<?= $pompier['pLibelle'] ?>"
style="background-color: <?= $pompier['pValeur'] ?>" draggable="true" style="background-color: <?= $pompier['pValeur'] ?>" draggable="true"
ondragstart="dragstartHandler(event)"> data-intervention="<?= $pompier['enIntervention'] ?>" ondragstart="dragstartHandler(event)">
<?= $pompier['pPrenom'] ?> <?= $pompier['pPrenom'] ?>
<?= $pompier['pNom'] ?> <?= $pompier['pNom'] ?>
(<?= $pompier['statut'] ?>) (
<?= $pompier['statut'] ?>)
</div> </div>
<?php endforeach ?> <?php endforeach ?>
</div> </div>
<div id="target" ondrop="dropHandler(event)" ondragover="dragoverHandler(event)" <div id="target" ondrop="dropHandler(event)" ondragover="dragoverHandler(event)"
ondragstart="dragstartHandler(event)" class="pompierIntervenant"> ondragstart="dragstartHandler(event)" class="pompierIntervenant">
<p>Nombre de pompiers conseillé: 4</p> <p id="nbPompierCons">Nombre de pompiers conseillé: 4</p>
</div> </div>
</div> </div>