forked from vergnet/site-accueil-insa
affichage avancement ville
This commit is contained in:
parent
49679bdde7
commit
f7f3d93abe
3 changed files with 360 additions and 41 deletions
88
admin/com_ville.css
Normal file
88
admin/com_ville.css
Normal file
|
@ -0,0 +1,88 @@
|
|||
.cmv-progress {
|
||||
color: white;
|
||||
background-color: #333;
|
||||
border-bottom: 2px solid #ccc;
|
||||
}
|
||||
|
||||
h5.cmv-title {
|
||||
font-size: 1.1em;
|
||||
padding: 1em 1em 5px;
|
||||
}
|
||||
|
||||
.cmv-container {
|
||||
display:flex;
|
||||
position:relative;
|
||||
width:90%;
|
||||
margin:auto;
|
||||
height:100px;
|
||||
}
|
||||
|
||||
.cmv-step {
|
||||
position: relative;
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
background-color: #ccc;
|
||||
color: black;
|
||||
z-index: 5;
|
||||
border-radius: 50%;
|
||||
line-height: 36px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.cmv-step.fait, .cmv-step.active {
|
||||
background-color: #06a6b7;
|
||||
}
|
||||
|
||||
.cmv-step.active:before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
display: block;
|
||||
background-color: white;
|
||||
margin: 15%;
|
||||
width: 70%;
|
||||
height: 70%;
|
||||
border-radius: 50%;
|
||||
z-index: -15;
|
||||
}
|
||||
|
||||
.cmv-way {
|
||||
position: relative;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.cmv-way.fait:before {
|
||||
background-color: #06a6b7;
|
||||
}
|
||||
|
||||
.cmv-way:before {
|
||||
content: "";
|
||||
display: block;
|
||||
width: 120%; height: 1px;
|
||||
margin-left: -10%;
|
||||
margin-top: 17px;
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
.cmv-fixed:before {
|
||||
content: "";
|
||||
width:1px; height: 7px;
|
||||
background-color: white;
|
||||
position: absolute;
|
||||
top:42px;
|
||||
left: 18px;
|
||||
}
|
||||
|
||||
.cmv-fixed {
|
||||
color: white;
|
||||
width: 100%;
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
.cmv-relative {
|
||||
content: "52m";
|
||||
position: absolute;
|
||||
color: white;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
top: -10px;
|
||||
}
|
|
@ -170,5 +170,6 @@
|
|||
|
||||
</div>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
288
admin/ville.php
288
admin/ville.php
|
@ -1,6 +1,8 @@
|
|||
<?php
|
||||
include "script.php";
|
||||
|
||||
$refresh_rate = 15; //refresh rate en seconde (en gros on refresh la page toute les 15sec)
|
||||
|
||||
if($user['perm'] < 1) {
|
||||
header('Location: deco.php');
|
||||
}
|
||||
|
@ -47,6 +49,7 @@ if(isset($_POST['reset2'])) {
|
|||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Admin / Com'ville</title>
|
||||
<link rel="stylesheet" type="text/css" href="com_ville.css" />
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
|
@ -67,39 +70,150 @@ if(isset($_POST['reset2'])) {
|
|||
?>
|
||||
<font color="green">Session non demarré, </font>
|
||||
<form method="POST">
|
||||
<input type="submit" name="start1" value="Démarrer la session" class="submit_ville"></form>
|
||||
<input type="submit" name="start1" value="Démarrer la session" class="submit_inline"></form>
|
||||
</form>
|
||||
<?php
|
||||
} elseif($r[0]['state'] == 1) {
|
||||
} elseif($r[0]['state'] >= 1) {
|
||||
if($r[0]['state'] == 1) {
|
||||
?>
|
||||
<font color="orange">Session en cours, </font>
|
||||
<form method="POST">
|
||||
<input type="submit" name="stop1" value="Stopper la session" class="submit_ville"></form>
|
||||
<input type="submit" name="stop1" value="Stopper la session" class="submit_inline"></form>
|
||||
</form>
|
||||
|
||||
<META HTTP-EQUIV="Refresh" CONTENT="<?= $refresh_rate ?>">
|
||||
|
||||
<?php
|
||||
} elseif($r[0]['state'] == 2) {
|
||||
?>
|
||||
<font color="red">Session terminé, </font>
|
||||
<form method="POST">
|
||||
<input type="text" name="code" placeholder="anti-missclick" class="input_ville">
|
||||
<input type="submit" name="reset1" value="Reset la session" class="submit_ville"></form>
|
||||
<input type="text" name="code" placeholder="anti-missclick" class="input_inline">
|
||||
<input type="submit" name="reset1" value="Reset la session" class="submit_inline"></form>
|
||||
</form>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
echo "<br><br><br>";
|
||||
|
||||
$reqsession = $db->query("SELECT state, time_begin FROM ville WHERE session = 1");
|
||||
$rs = $reqsession -> fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
<?php
|
||||
$reqint = $db->query('SELECT id, nom FROM ville_equipe WHERE id < 17');
|
||||
while($equipe = $reqint->fetch()) {
|
||||
?>
|
||||
$reqe = $db->query('SELECT * FROM ville_equipe WHERE id < 17');
|
||||
while($e = $reqe->fetch()) {
|
||||
$temps_init = $e["temps"];
|
||||
$tab_time = NULL;
|
||||
$tab_time = explode(";", $temps_init);
|
||||
$temps_begin = date("H:i:s",$rs[0]['time_begin']);
|
||||
|
||||
<?php
|
||||
if($temps_init == NULL) {
|
||||
$avancement = (int) 0;
|
||||
$delta_time_0 = gmdate("H:i:s",time()-$rs[0]['time_begin']);
|
||||
} else {
|
||||
$avancement = count($tab_time);
|
||||
$def_time = $tab_time[$avancement-1] - $rs[0]['time_begin'];
|
||||
$delta_time_0 = gmdate("H:i:s",$tab_time['0']-$rs[0]['time_begin']);
|
||||
}
|
||||
|
||||
//node 0
|
||||
?>
|
||||
<div class="cmv-progress">
|
||||
<h5 id="cmv-title" class="cmv-title">Equipe <?= $e['nom'] ?></h5>
|
||||
<div class="cmv-container">
|
||||
<div class="cmv-step fait">0
|
||||
<div class="cmv-fixed"><?= $temps_begin ?></div> <!-- avec "--:--" = heure de départ -->
|
||||
</div>
|
||||
|
||||
<div class="cmv-way fait">
|
||||
<div class="cmv-relative"><?= $delta_time_0 ?></div>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
|
||||
/** Pour une équipe donnée */
|
||||
|
||||
/** $depart : Le point de départ de cette équipe */
|
||||
$depart = $e['begin'];
|
||||
|
||||
/** $etape : À quelle étape en est cette équipe, si on l'utilise il faut décommenter quelques ligne plus bas : "$current = $etape - $depart + 1;" et commenter "$current = $avancement+1;" */
|
||||
//$etape = 1;
|
||||
|
||||
/** $i va de 1 à 17 (inclus), 17 étant le nombre d'étapes */
|
||||
for ($i = 1; $i <= 17; $i++) {
|
||||
|
||||
/** $node : Le numéro dans la node à l'emplacement $i
|
||||
* exemple : si une équipe commence au point 7 alors la première node ($i = 1)
|
||||
* va contenir $node = 7 À UTILISER POUR LES TEMPS ! */
|
||||
$node = ($i + $depart - 2) % 17 + 1;
|
||||
|
||||
/** $current : À quel index est placé la node correspondante à l'$etape
|
||||
* exemple : une équipe qui commence au point 17 en est au point 3,
|
||||
* elle est donc affichée comme étant au niveau de la node d'index 4 ($i = 4)
|
||||
* puisque de gauche à droite les premières nodes sont 17 - 1 - 2 - 3 */
|
||||
|
||||
//$current = $etape - $depart + 1;
|
||||
|
||||
$current = $avancement+1;
|
||||
|
||||
if ($current < 0) {
|
||||
$current = $current + 17;
|
||||
}
|
||||
|
||||
/** Si le point $i a été fait (fait), est en train d'être fait (actuel), ou n'a pas encore été atteint */
|
||||
$state = '';
|
||||
if ($i < $current) {
|
||||
$state = ' fait';
|
||||
} elseif ($i === $current) {
|
||||
$state = ' active';
|
||||
}
|
||||
|
||||
|
||||
echo '<div class="cmv-step'.$state.'">';
|
||||
echo $node;
|
||||
|
||||
if ($i <= $current) {
|
||||
// --:-- doit être remplacé par l'heure à laquelle le point $node a été atteint
|
||||
if($i == $current) {
|
||||
echo '<div class="cmv-fixed">'.date("H:i:s",time()).'</div>';
|
||||
} else {
|
||||
echo '<div class="cmv-fixed">'.date("H:i:s",$tab_time[$i-1]).'</div>';
|
||||
}
|
||||
}
|
||||
echo '</div>';
|
||||
|
||||
if ($i < 17) {
|
||||
echo '<div class="cmv-way'.$state.'">';
|
||||
if ($i < $current) {
|
||||
if($i < $current-1) {
|
||||
echo '<div class="cmv-relative">'.gmdate("H:i:s",$tab_time[$i]-$tab_time[$i-1]).'</div>'; // --mn doit être remplacé par le deltaT entre les points $node et $node+1
|
||||
} else {
|
||||
echo '<div class="cmv-relative">'.gmdate("H:i:s",time()-$tab_time[$i-1]).'</div>';
|
||||
}
|
||||
|
||||
}
|
||||
echo '</div>';
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<?php
|
||||
} //fin du while e
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
} elseif($session == 2) {
|
||||
|
||||
|
||||
|
||||
|
||||
?>
|
||||
<a href="ville.php?session=1" class="href_session">Session matin</a>
|
||||
<a href="ville.php?session=2" class="href_session_selected">Session aprem</a>
|
||||
|
@ -112,43 +226,159 @@ if(isset($_POST['reset2'])) {
|
|||
?>
|
||||
<font color="green">Session non demarré, </font>
|
||||
<form method="POST">
|
||||
<input type="submit" name="start2" value="Démarrer la session" class="submit_ville"></form>
|
||||
<input type="submit" name="start2" value="Démarrer la session" class="submit_inline"></form>
|
||||
</form>
|
||||
<?php
|
||||
} elseif($r[0]['state'] == 1) {
|
||||
} elseif($r[0]['state'] >= 1) {
|
||||
if($r[0]['state'] == 1) {
|
||||
?>
|
||||
<font color="orange">Session en cours, </font>
|
||||
<form method="POST">
|
||||
<input type="submit" name="stop2" value="Stopper la session" class="submit_ville"></form>
|
||||
<input type="submit" name="stop2" value="Stopper la session" class="submit_inline"></form>
|
||||
</form>
|
||||
|
||||
<META HTTP-EQUIV="Refresh" CONTENT="<?= $refresh_rate ?>">
|
||||
|
||||
<?php
|
||||
} elseif($r[0]['state'] == 2) {
|
||||
?>
|
||||
<font color="red">Session terminé, </font>
|
||||
<form method="POST">
|
||||
<input type="text" name="code" placeholder="anti-missclick" class="input_ville">
|
||||
<input type="submit" name="reset2" value="Reset la session" class="submit_ville"></form>
|
||||
<input type="text" name="code" placeholder="anti-missclick" class="input_inline">
|
||||
<input type="submit" name="reset2" value="Reset la session" class="submit_inline"></form>
|
||||
</form>
|
||||
<?php
|
||||
}
|
||||
echo "<br><br><br>";
|
||||
|
||||
$reqsession = $db->query("SELECT state, time_begin FROM ville WHERE session = 2");
|
||||
$rs = $reqsession -> fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
$reqe = $db->query('SELECT * FROM ville_equipe WHERE id > 16');
|
||||
while($e = $reqe->fetch()) {
|
||||
$temps_init = $e["temps"];
|
||||
$tab_time = NULL;
|
||||
$tab_time = explode(";", $temps_init);
|
||||
$temps_begin = date("H:i:s",$rs[0]['time_begin']);
|
||||
|
||||
if($temps_init == NULL) {
|
||||
$avancement = (int) 0;
|
||||
$delta_time_0 = gmdate("H:i:s",time()-$rs[0]['time_begin']);
|
||||
} else {
|
||||
$avancement = count($tab_time);
|
||||
$def_time = $tab_time[$avancement-1] - $rs[0]['time_begin'];
|
||||
$delta_time_0 = gmdate("H:i:s",$tab_time['0']-$rs[0]['time_begin']);
|
||||
}
|
||||
|
||||
//node 0
|
||||
?>
|
||||
<div class="cmv-progress">
|
||||
<h5 id="cmv-title" class="cmv-title">Equipe <?= $e['nom'] ?></h5>
|
||||
<div class="cmv-container">
|
||||
<div class="cmv-step fait">0
|
||||
<div class="cmv-fixed"><?= $temps_begin ?></div> <!-- avec "--:--" = heure de départ -->
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="cmv-way fait">
|
||||
<div class="cmv-relative"><?= $delta_time_0 ?></div>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
|
||||
/** Pour une équipe donnée */
|
||||
|
||||
/** $depart : Le point de départ de cette équipe */
|
||||
$depart = $e['begin'];
|
||||
|
||||
/** $etape : À quelle étape en est cette équipe, si on l'utilise il faut décommenter quelques ligne plus bas : "$current = $etape - $depart + 1;" et commenter "$current = $avancement+1;" */
|
||||
//$etape = 1;
|
||||
|
||||
/** $i va de 1 à 17 (inclus), 17 étant le nombre d'étapes */
|
||||
for ($i = 1; $i <= 17; $i++) {
|
||||
|
||||
/** $node : Le numéro dans la node à l'emplacement $i
|
||||
* exemple : si une équipe commence au point 7 alors la première node ($i = 1)
|
||||
* va contenir $node = 7 À UTILISER POUR LES TEMPS ! */
|
||||
$node = ($i + $depart - 2) % 17 + 1;
|
||||
|
||||
/** $current : À quel index est placé la node correspondante à l'$etape
|
||||
* exemple : une équipe qui commence au point 17 en est au point 3,
|
||||
* elle est donc affichée comme étant au niveau de la node d'index 4 ($i = 4)
|
||||
* puisque de gauche à droite les premières nodes sont 17 - 1 - 2 - 3 */
|
||||
|
||||
//$current = $etape - $depart + 1;
|
||||
|
||||
$current = $avancement+1;
|
||||
|
||||
if ($current < 0) {
|
||||
$current = $current + 17;
|
||||
}
|
||||
|
||||
/** Si le point $i a été fait (fait), est en train d'être fait (actuel), ou n'a pas encore été atteint */
|
||||
$state = '';
|
||||
if ($i < $current) {
|
||||
$state = ' fait';
|
||||
} elseif ($i === $current) {
|
||||
$state = ' active';
|
||||
}
|
||||
|
||||
|
||||
echo '<div class="cmv-step'.$state.'">';
|
||||
echo $node;
|
||||
|
||||
if ($i <= $current) {
|
||||
// --:-- doit être remplacé par l'heure à laquelle le point $node a été atteint
|
||||
if($i == $current) {
|
||||
echo '<div class="cmv-fixed">'.date("H:i:s",time()).'</div>';
|
||||
} else {
|
||||
heade('Location: ../error.php');
|
||||
echo '<div class="cmv-fixed">'.date("H:i:s",$tab_time[$i-1]).'</div>';
|
||||
}
|
||||
}
|
||||
echo '</div>';
|
||||
|
||||
if ($i < 17) {
|
||||
echo '<div class="cmv-way'.$state.'">';
|
||||
if ($i < $current) {
|
||||
if($i < $current-1) {
|
||||
echo '<div class="cmv-relative">'.gmdate("H:i:s",$tab_time[$i]-$tab_time[$i-1]).'</div>'; // --mn doit être remplacé par le deltaT entre les points $node et $node+1
|
||||
} else {
|
||||
echo '<div class="cmv-relative">'.gmdate("H:i:s",time()-$tab_time[$i-1]).'</div>';
|
||||
}
|
||||
|
||||
}
|
||||
echo '</div>';
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<?php
|
||||
} //fin du while e
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
} else {
|
||||
header('Location: ../error.php');
|
||||
}
|
||||
} else {
|
||||
?>
|
||||
|
|
Loading…
Reference in a new issue