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 "
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; ?>