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>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
288
admin/ville.php
288
admin/ville.php
|
@ -1,6 +1,8 @@
|
||||||
<?php
|
<?php
|
||||||
include "script.php";
|
include "script.php";
|
||||||
|
|
||||||
|
$refresh_rate = 15; //refresh rate en seconde (en gros on refresh la page toute les 15sec)
|
||||||
|
|
||||||
if($user['perm'] < 1) {
|
if($user['perm'] < 1) {
|
||||||
header('Location: deco.php');
|
header('Location: deco.php');
|
||||||
}
|
}
|
||||||
|
@ -47,6 +49,7 @@ if(isset($_POST['reset2'])) {
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<title>Admin / Com'ville</title>
|
<title>Admin / Com'ville</title>
|
||||||
|
<link rel="stylesheet" type="text/css" href="com_ville.css" />
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<main>
|
<main>
|
||||||
|
@ -67,39 +70,150 @@ if(isset($_POST['reset2'])) {
|
||||||
?>
|
?>
|
||||||
<font color="green">Session non demarré, </font>
|
<font color="green">Session non demarré, </font>
|
||||||
<form method="POST">
|
<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>
|
</form>
|
||||||
<?php
|
<?php
|
||||||
} elseif($r[0]['state'] == 1) {
|
} elseif($r[0]['state'] >= 1) {
|
||||||
|
if($r[0]['state'] == 1) {
|
||||||
?>
|
?>
|
||||||
<font color="orange">Session en cours, </font>
|
<font color="orange">Session en cours, </font>
|
||||||
<form method="POST">
|
<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>
|
</form>
|
||||||
|
|
||||||
|
<META HTTP-EQUIV="Refresh" CONTENT="<?= $refresh_rate ?>">
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
} elseif($r[0]['state'] == 2) {
|
} elseif($r[0]['state'] == 2) {
|
||||||
?>
|
?>
|
||||||
<font color="red">Session terminé, </font>
|
<font color="red">Session terminé, </font>
|
||||||
<form method="POST">
|
<form method="POST">
|
||||||
<input type="text" name="code" placeholder="anti-missclick" class="input_ville">
|
<input type="text" name="code" placeholder="anti-missclick" class="input_inline">
|
||||||
<input type="submit" name="reset1" value="Reset la session" class="submit_ville"></form>
|
<input type="submit" name="reset1" value="Reset la session" class="submit_inline"></form>
|
||||||
</form>
|
</form>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
?>
|
echo "<br><br><br>";
|
||||||
|
|
||||||
|
$reqsession = $db->query("SELECT state, time_begin FROM ville WHERE session = 1");
|
||||||
|
$rs = $reqsession -> fetchAll(PDO::FETCH_ASSOC);
|
||||||
|
|
||||||
<?php
|
$reqe = $db->query('SELECT * FROM ville_equipe WHERE id < 17');
|
||||||
$reqint = $db->query('SELECT id, nom FROM ville_equipe WHERE id < 17');
|
while($e = $reqe->fetch()) {
|
||||||
while($equipe = $reqint->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
|
<?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) {
|
} elseif($session == 2) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
?>
|
?>
|
||||||
<a href="ville.php?session=1" class="href_session">Session matin</a>
|
<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>
|
<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>
|
<font color="green">Session non demarré, </font>
|
||||||
<form method="POST">
|
<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>
|
</form>
|
||||||
<?php
|
<?php
|
||||||
} elseif($r[0]['state'] == 1) {
|
} elseif($r[0]['state'] >= 1) {
|
||||||
|
if($r[0]['state'] == 1) {
|
||||||
?>
|
?>
|
||||||
<font color="orange">Session en cours, </font>
|
<font color="orange">Session en cours, </font>
|
||||||
<form method="POST">
|
<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>
|
</form>
|
||||||
|
|
||||||
|
<META HTTP-EQUIV="Refresh" CONTENT="<?= $refresh_rate ?>">
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
} elseif($r[0]['state'] == 2) {
|
} elseif($r[0]['state'] == 2) {
|
||||||
?>
|
?>
|
||||||
<font color="red">Session terminé, </font>
|
<font color="red">Session terminé, </font>
|
||||||
<form method="POST">
|
<form method="POST">
|
||||||
<input type="text" name="code" placeholder="anti-missclick" class="input_ville">
|
<input type="text" name="code" placeholder="anti-missclick" class="input_inline">
|
||||||
<input type="submit" name="reset2" value="Reset la session" class="submit_ville"></form>
|
<input type="submit" name="reset2" value="Reset la session" class="submit_inline"></form>
|
||||||
</form>
|
</form>
|
||||||
<?php
|
<?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
|
<?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 {
|
} 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 {
|
} else {
|
||||||
?>
|
?>
|
||||||
|
|
Loading…
Reference in a new issue