code couleur ping

This commit is contained in:
Jérôme Bousquié 2018-12-04 11:50:22 +01:00
parent 042dca8a9c
commit 1db332b8e5
7 changed files with 53 additions and 12 deletions

View File

@ -363,16 +363,36 @@ function DateDiff($date1, $date2){
// Fonction FormateDelta(&delta) // 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 // 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) { function FormateDelta(&$delta) {
if ($delta['day'] != 0) { $days = $delta['day'];
return (string)$delta['day']." jours"; if ($days != 0) {
$unit = " jours";
if ($days == 1) {
$unit = " jour";
}
return (string)$days.$unit;
} }
if ($delta['hour'] != 0) { $hours = $delta['hour'];
return (string)$delta['hour']." heures"; if ($hours != 0) {
$unit = " heures";
if ($hours == 1) {
$unit = " heure";
}
return (string)$hours.$unit;
} }
if ($delta['minute'] != 0) { $mins = $delta['minute'];
return (string)$delta['minute']." minutes"; 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;
} }
?> ?>

View File

@ -186,3 +186,7 @@ a.anchor {
height: 230px; height: 230px;
z-index: 1; z-index: 1;
} }
.noping {
background-color: Gainsboro;
}

View File

@ -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 # 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 : while :
do 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") timestamp=$(date +"%Y-%m-%d %H:%M:%S")
>$fichierOUT >$fichierOUT
i=0 i=0

View File

@ -107,17 +107,21 @@ while ($mdc = current($machines_de_salle)) {
} }
$ping_info = ""; $ping_info = "";
$class_noping = " noping";
if ($mode_ping) { if ($mode_ping) {
$ping_delta = "indisponible"; $ping_delta = "indisponible";
if (array_key_exists($mac, $ping_timestamps)) { if (array_key_exists($mac, $ping_timestamps)) {
$ping_ts = strtotime($ping_timestamps[$mac]); $ping_ts = strtotime($ping_timestamps[$mac]);
$ping_delta = "il y a ".FormateDelta(DateDiff($ping_ts, $now)); $ping_delta = "il y a ".FormateDelta(DateDiff($ping_ts, $now));
if ($now - $ping_ts <= $seuil_couleur_ping) {
$class_noping = "";
}
} }
$ping_info = "ping : ".$ping_delta; $ping_info = "ping : ".$ping_delta;
} }
echo "<tr class=\"connexion\" id=\"".str_replace('.','-',$connexion_machine[$mac]["ip"])."\">"; echo "<tr class=\"connexion\" id=\"".str_replace('.','-',$connexion_machine[$mac]["ip"])."\">";
echo "<td><a href=\"machine.php?id=".$mac."\" target=\"blank\" title=\"$ping_info\">".$style.$mac.$fin_style."</a></td>"; echo "<td><a href=\"machine.php?id=".$mac."\" target=\"blank\" class=\"$class_noping\" title=\"$ping_info\">".$style.$mac.$fin_style."</a></td>";
echo "<td>".$style.date("H:i:s",$connexion_machine[$mac]["stamp"]).$fin_style."</td>"; echo "<td>".$style.date("H:i:s",$connexion_machine[$mac]["stamp"]).$fin_style."</td>";
echo "<td>".$style.$connexion_machine[$mac]["ip"].$fin_style."</td>"; echo "<td>".$style.$connexion_machine[$mac]["ip"].$fin_style."</td>";
echo "<td>".$div_trombi.$style.$username.$fin_style.$fin_div."</td>"; echo "<td>".$div_trombi.$style.$username.$fin_style.$fin_div."</td>";

View File

@ -51,6 +51,7 @@ $xy_portes = $porte_coord[$salle];
// Styles globaux // Styles globaux
$coul_libre = "#E0E0E0"; $coul_libre = "#E0E0E0";
$coul_occupe = "#b1d7e8"; $coul_occupe = "#b1d7e8";
$coul_ping = "#7ff0d4";
$coul_hs10 = "#f3e575"; $coul_hs10 = "#f3e575";
$coul_hs20 = "#e17b17"; $coul_hs20 = "#e17b17";
$coul_hs30 = "#d5382c"; $coul_hs30 = "#d5382c";
@ -62,6 +63,7 @@ echo ".j10 {background-color:".$coul_hs10."; }\n";
echo ".j20 {background-color:".$coul_hs20."; }\n"; echo ".j20 {background-color:".$coul_hs20."; }\n";
echo ".j30 {background-color:".$coul_hs30."; }\n"; echo ".j30 {background-color:".$coul_hs30."; }\n";
echo ".ip {font-size: 80%; }\n"; echo ".ip {font-size: 80%; }\n";
echo ".ping {background-color:".$coul_ping."; }\n";
// Calcul et placement des div // Calcul et placement des div

View File

@ -53,6 +53,7 @@ function Affiche_plan_salle(&$machines_de_la_salle, &$portes) {
global $trombino_defaut_url; global $trombino_defaut_url;
global $trombino_extension_fichier; global $trombino_extension_fichier;
global $mode_ping; global $mode_ping;
global $seuil_couleur_ping;
// Timestamps du ping // Timestamps du ping
if ($mode_ping) { if ($mode_ping) {
@ -82,25 +83,31 @@ function Affiche_plan_salle(&$machines_de_la_salle, &$portes) {
$ping_info = ""; $ping_info = "";
$class_ping = "";
if ($mode_ping) { if ($mode_ping) {
$ping_delta = "indisponible"; $ping_delta = "indisponible";
if (array_key_exists($machine, $ping_timestamps)) { if (array_key_exists($machine, $ping_timestamps)) {
$ping_ts = strtotime($ping_timestamps[$machine]); $ping_ts = strtotime($ping_timestamps[$machine]);
$ping_delta = "il y a ".FormateDelta(DateDiff($ping_ts, $date_now)); $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; $ping_info = "ping : ".$ping_delta;
} }
$class_connexion=''; $class_connexion = '';
$link = '<a href=../machine.php?id='.$machine.' target="blank" title="'.$ping_info.'">'; $link = '<a href=../machine.php?id='.$machine.' target="blank" title="'.$ping_info.'">';
$username = ''; $username = '';
$ip = IP_machine($machine); $ip = IP_machine($machine);
// s'il existe une connexion sur la machine // s'il existe une connexion sur la machine
if (array_key_exists($machine, $machines_connectees)) { if (array_key_exists($machine, $machines_connectees)) {
$class_connexion = ' conn'; $class_connexion = ' conn';
$class_ping = '';
$username = $machines_connectees[$machine]["username"]; $username = $machines_connectees[$machine]["username"];
$ip = $machines_connectees[$machine]["ip"]; $ip = $machines_connectees[$machine]["ip"];
} }
$cpt = Compte($username); // récupère les informations sur l'utilisateur courant $cpt = Compte($username); // récupère les informations sur l'utilisateur courant
$style = ""; $style = "";
$fin_style = ""; $fin_style = "";
@ -117,8 +124,10 @@ function Affiche_plan_salle(&$machines_de_la_salle, &$portes) {
$url_photo = $trombino_url."/".$username.$trombino_extension_fichier; $url_photo = $trombino_url."/".$username.$trombino_extension_fichier;
$img_trombi = "<img src='".$url_photo."' onerror=\"this.error=null;this.src='".$trombino_defaut_url."';\">"; $img_trombi = "<img src='".$url_photo."' onerror=\"this.error=null;this.src='".$trombino_defaut_url."';\">";
} }
//$user_affich = $username; //$user_affich = $username;
$div = "<div id='".$machine."' class='pc".$class_connexion.$class_jour.$class_trombi."'>".$link.$machine."</a><br/>".$style.$username.$fin_style.$img_trombi."<br/><span class='ip'>".$ip."</span></div>"; $div = "<div id='".$machine."' class='pc".$class_ping.$class_connexion.$class_jour.$class_trombi."'>".$link.$machine."</a><br/>".$style.$username.$fin_style.$img_trombi."<br/><span class='ip'>".$ip."</span></div>";
echo $div; echo $div;
} }
@ -166,7 +175,7 @@ if ($profil > 0) {
$form = $form.'</form>'; $form = $form.'</form>';
echo $form; echo $form;
} }
echo("<p><span class='conn'>bleu</span> : connecté &nbsp;<span class='pc'>gris</span> : inactif &nbsp;<span class='j10'>jaune</span> : inactif 10j &nbsp;<span class='j20'>orange</span> : inactif 20j &nbsp;<span class='j30'>rouge</span> : inactif 30j</p>"); echo("<p><span class='conn'>bleu</span> : connecté &nbsp;<span class='pc'>gris</span> : inactif &nbsp;<span class='j10'>jaune</span> : inactif 10j &nbsp;<span class='j20'>orange</span> : inactif 20j &nbsp;<span class='j30'>rouge</span> : inactif 30j &nbsp;<span class='ping'>vert</span> : ping depuis moins de $seuil_couleur_ping s");
Affiche_plan_salle($machines_du_plan, $portes, $trombino); Affiche_plan_salle($machines_du_plan, $portes, $trombino);
} }
else { else {

View File

@ -163,4 +163,6 @@ $winlog_ping_debug = false;
$php_path = "/usr/bin/php5"; $php_path = "/usr/bin/php5";
// chemin vers le script winlog de collecte des résultats du ping // chemin vers le script winlog de collecte des résultats du ping
$winlog_get_ping = "/var/www/html/admin/get_ping.php"; $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;
?> ?>