From 1db332b8e571cbe063a4f97cdd560431cc40a1be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Bousqui=C3=A9?= Date: Tue, 4 Dec 2018 11:50:22 +0100 Subject: [PATCH] code couleur ping --- admin/connexions.php | 34 +++++++++++++++++++++++------ admin/default.css | 4 ++++ admin/ping/winlog_ping.sh | 2 +- admin/reload_salles.php | 6 ++++- admin/salles/css.php | 2 ++ admin/salles/index.php | 15 ++++++++++--- admin/winlog_admin_conf.php.example | 2 ++ 7 files changed, 53 insertions(+), 12 deletions(-) diff --git a/admin/connexions.php b/admin/connexions.php index 31d1f3a..4f0f11d 100644 --- a/admin/connexions.php +++ b/admin/connexions.php @@ -363,16 +363,36 @@ function DateDiff($date1, $date2){ // Fonction FormateDelta(&delta) // Retourne une chaîne de caractère du delta entre deux dates arrondi à la seconde, à la minute, à l'heure ou au jour function FormateDelta(&$delta) { - if ($delta['day'] != 0) { - return (string)$delta['day']." jours"; + $days = $delta['day']; + if ($days != 0) { + $unit = " jours"; + if ($days == 1) { + $unit = " jour"; + } + return (string)$days.$unit; } - if ($delta['hour'] != 0) { - return (string)$delta['hour']." heures"; + $hours = $delta['hour']; + if ($hours != 0) { + $unit = " heures"; + if ($hours == 1) { + $unit = " heure"; + } + return (string)$hours.$unit; } - if ($delta['minute'] != 0) { - return (string)$delta['minute']." minutes"; + $mins = $delta['minute']; + if ($mins != 0) { + $unit = " minutes"; + if ($hours == 1) { + $unit = " minute"; + } + return (string)$mins.$unit; } - return (string)$delta['second']." secondes"; + $secs = $delta['second']; + $unit = " secondes"; + if ($secs == 1) { + $unit = " seconde"; + } + return (string)$secs.$unit; } ?> diff --git a/admin/default.css b/admin/default.css index 0f37aa7..6b2884e 100644 --- a/admin/default.css +++ b/admin/default.css @@ -186,3 +186,7 @@ a.anchor { height: 230px; z-index: 1; } + +.noping { + background-color: Gainsboro; +} \ No newline at end of file diff --git a/admin/ping/winlog_ping.sh b/admin/ping/winlog_ping.sh index c5699b9..c189ff2 100755 --- a/admin/ping/winlog_ping.sh +++ b/admin/ping/winlog_ping.sh @@ -31,7 +31,7 @@ fi; # Une fois le fichier rempli, on exécute admin/get_ping.php qui va récupérer le contenu du fichier dans la base Winlog while : do - actives=`fping -t$timeout -f$fichierIN | grep alive | cut -d ' ' -f1` + actives=`fping -a -t$timeout -f$fichierIN` timestamp=$(date +"%Y-%m-%d %H:%M:%S") >$fichierOUT i=0 diff --git a/admin/reload_salles.php b/admin/reload_salles.php index 5f738a1..b8c0eaf 100644 --- a/admin/reload_salles.php +++ b/admin/reload_salles.php @@ -107,17 +107,21 @@ while ($mdc = current($machines_de_salle)) { } $ping_info = ""; + $class_noping = " noping"; if ($mode_ping) { $ping_delta = "indisponible"; if (array_key_exists($mac, $ping_timestamps)) { $ping_ts = strtotime($ping_timestamps[$mac]); $ping_delta = "il y a ".FormateDelta(DateDiff($ping_ts, $now)); + if ($now - $ping_ts <= $seuil_couleur_ping) { + $class_noping = ""; + } } $ping_info = "ping : ".$ping_delta; } echo ""; - echo "".$style.$mac.$fin_style.""; + echo "".$style.$mac.$fin_style.""; echo "".$style.date("H:i:s",$connexion_machine[$mac]["stamp"]).$fin_style.""; echo "".$style.$connexion_machine[$mac]["ip"].$fin_style.""; echo "".$div_trombi.$style.$username.$fin_style.$fin_div.""; diff --git a/admin/salles/css.php b/admin/salles/css.php index 697d54a..677f7e6 100644 --- a/admin/salles/css.php +++ b/admin/salles/css.php @@ -51,6 +51,7 @@ $xy_portes = $porte_coord[$salle]; // Styles globaux $coul_libre = "#E0E0E0"; $coul_occupe = "#b1d7e8"; +$coul_ping = "#7ff0d4"; $coul_hs10 = "#f3e575"; $coul_hs20 = "#e17b17"; $coul_hs30 = "#d5382c"; @@ -62,6 +63,7 @@ echo ".j10 {background-color:".$coul_hs10."; }\n"; echo ".j20 {background-color:".$coul_hs20."; }\n"; echo ".j30 {background-color:".$coul_hs30."; }\n"; echo ".ip {font-size: 80%; }\n"; +echo ".ping {background-color:".$coul_ping."; }\n"; // Calcul et placement des div diff --git a/admin/salles/index.php b/admin/salles/index.php index de5ef0a..ba43719 100644 --- a/admin/salles/index.php +++ b/admin/salles/index.php @@ -53,6 +53,7 @@ function Affiche_plan_salle(&$machines_de_la_salle, &$portes) { global $trombino_defaut_url; global $trombino_extension_fichier; global $mode_ping; + global $seuil_couleur_ping; // Timestamps du ping if ($mode_ping) { @@ -82,25 +83,31 @@ function Affiche_plan_salle(&$machines_de_la_salle, &$portes) { $ping_info = ""; + $class_ping = ""; if ($mode_ping) { $ping_delta = "indisponible"; if (array_key_exists($machine, $ping_timestamps)) { $ping_ts = strtotime($ping_timestamps[$machine]); $ping_delta = "il y a ".FormateDelta(DateDiff($ping_ts, $date_now)); + if ($date_now - $ping_ts <= $seuil_couleur_ping) { + $class_ping = " ping"; + } } $ping_info = "ping : ".$ping_delta; } - $class_connexion=''; + $class_connexion = ''; $link = ''; $username = ''; $ip = IP_machine($machine); // s'il existe une connexion sur la machine if (array_key_exists($machine, $machines_connectees)) { $class_connexion = ' conn'; + $class_ping = ''; $username = $machines_connectees[$machine]["username"]; $ip = $machines_connectees[$machine]["ip"]; } + $cpt = Compte($username); // récupère les informations sur l'utilisateur courant $style = ""; $fin_style = ""; @@ -117,8 +124,10 @@ function Affiche_plan_salle(&$machines_de_la_salle, &$portes) { $url_photo = $trombino_url."/".$username.$trombino_extension_fichier; $img_trombi = ""; } + + //$user_affich = $username; - $div = "
".$link.$machine."
".$style.$username.$fin_style.$img_trombi."
".$ip."
"; + $div = "
".$link.$machine."
".$style.$username.$fin_style.$img_trombi."
".$ip."
"; echo $div; } @@ -166,7 +175,7 @@ if ($profil > 0) { $form = $form.''; echo $form; } - echo("

bleu : connecté  gris : inactif  jaune : inactif 10j  orange : inactif 20j  rouge : inactif 30j

"); + echo("

bleu : connecté  gris : inactif  jaune : inactif 10j  orange : inactif 20j  rouge : inactif 30j  vert : ping depuis moins de $seuil_couleur_ping s"); Affiche_plan_salle($machines_du_plan, $portes, $trombino); } else { diff --git a/admin/winlog_admin_conf.php.example b/admin/winlog_admin_conf.php.example index fa26c78..84af407 100644 --- a/admin/winlog_admin_conf.php.example +++ b/admin/winlog_admin_conf.php.example @@ -163,4 +163,6 @@ $winlog_ping_debug = false; $php_path = "/usr/bin/php5"; // chemin vers le script winlog de collecte des résultats du ping $winlog_get_ping = "/var/www/html/admin/get_ping.php"; +// seuil de temps en secondes avant changement de couleur du statut "pinguée" d'une machine +$seuil_couleur_ping = 120; ?>