echo '<tr style="text-align: center" class="online-but-no-data">'; } else { echo '<tr style="text-align: center">'; } echo '<td>' . $i . '</td>'; echo '<td>' . $row['uid'] . '</td>'; echo '<td>' . $row['node'] . '</td>'; echo '<td>' . sec_human(time() - $row['time']) . '</td>'; echo '<td>' . $row['uptime'] . '</td>'; $mp = ($row['mused'] - $row['mbuffers']) / $row['mtotal'] * 100; $used = $row['mused'] - $row['mbuffers']; echo '<td class="5pad"><div class="progress-container"><div class="progress-container-percent" style="width:' . $mp . '%"><div class="bartext">' . $used . '/' . $row['mtotal'] . 'MB</div></div></div></td>'; echo '<td class="5pad">'; echo '<span class="loadavg" style="background-color: #' . gen_color($row['load1']) . '">' . sprintf('%.02f', $row['load1']) . '</span> '; echo '<span class="loadavg" style="background-color: #' . gen_color($row['load5']) . '">' . sprintf('%.02f', $row['load5']) . '</span> '; echo '<span class="loadavg" style="background-color: #' . gen_color($row['load15']) . '">' . sprintf('%.02f', $row['load15']) . '</span> '; echo '</td>'; echo '</tr>'; } /* Thanks to 'vld' over at irc.frantech.ca for providing me with the following two functions! */ function sec_human($sec) { if ($sec < 60) { return $sec . 's'; } $tstring = ''; $days = floor($sec / 86400); $hrs = floor(bcmod($sec, 86400) / 3600); $mins = round(bcmod(bcmod($sec, 86400), 3600) / 60); if ($days > 0) { $tstring = $days . 'd ';
function statusRow($row) { global $db, $i, $jsend, $lbjs, $provider; if ($row['provider'] != $provider) { echo '<tr><td colspan="7" style="text-align: left; vertical-align: middle; font-weight: bold; font-size: 10px; padding-left: 5px;">'. $row['provider'] .'</td></tr>'; $provider = $row['provider']; } if ($row['status'] == "0") { echo '<tr style="text-align: center" class="offline">'; } elseif ($row['uptime'] == "n/a") { echo '<tr style="text-align: center" class="online-but-no-data">'; } else { echo '<tr style="text-align: center">'; } $dbq = $db->prepare('SELECT COUNT(*) FROM processes WHERE uid = ?'); $dbr = $dbq->execute(array($row['uid'])); $servicecount = $dbq->fetch(); $numrows = 1; if ($row['note'] != "") { $numrows++; } if ($servicecount[0] > 0) { $numrows++; } echo '<td rowspan="'.$numrows.'"><a href="history.php?uid='. $row['uid'].'">'. $row['hostname'] .'</a></td>'; echo '<td><span id="time-'.$i.'"></span></td>'; $jsend .= '$(function () { $(\'#time-'.$i.'\').countdown({since: "-'.(time()-$row['time']).'S", compact: true}); });'; echo '<td>'. $row['uptime'] .'</td>'; echo '<td class="5pad">'; if(empty($row['mtotal'])) { echo "N/A"; } else { $mp = ($row['mused'])/$row['mtotal']*100; $used = $row['mused']; echo '<div class="progress-container"><div class="progress-container-percent" style="width:'. $mp .'%"><div class="bartext">'. $used .'/'. $row['mtotal'] .'MB</div></div></div>'; } echo '<br /><a href="grapher.php?uid='.$row['uid'].'&type=memory&interval=1h" rel="lightbox-'.$row['uid'].'-memory">1h</a> <a href="grapher.php?uid='.$row['uid'].'&type=memory&interval=3h" rel="lightbox-'.$row['uid'].'-memory">3h</a> <a href="grapher.php?uid='.$row['uid'].'&type=memory&interval=6h" rel="lightbox-'.$row['uid'].'-memory">6h</a> <a href="grapher.php?uid='.$row['uid'].'&type=memory&interval=12h" rel="lightbox-'.$row['uid'].'-memory">12h</a> <a href="grapher.php?uid='.$row['uid'].'&type=memory&interval=1d" rel="lightbox-'.$row['uid'].'-memory">1d</a></td>'; echo '<td class="5pad">'; if(isset($row['diskused'])) { $mp = ($row['diskused']/$row['disktotal'])*100; echo '<div class="progress-container"><div class="progress-container-percent" style="width:'. $mp .'%"><div class="bartext">'. format_kbytes($row['diskused']) .'/'. format_kbytes($row['disktotal']) .'GB</div></div></div>'; } else { echo 'N/A'; } echo '<br /><a href="grapher.php?uid='.$row['uid'].'&type=disk&interval=1h" rel="lightbox-'.$row['uid'].'-disk">1h</a> <a href="grapher.php?uid='.$row['uid'].'&type=disk&interval=3h" rel="lightbox-'.$row['uid'].'-disk">3h</a> <a href="grapher.php?uid='.$row['uid'].'&type=disk&interval=6h" rel="lightbox-'.$row['uid'].'-disk">6h</a> <a href="grapher.php?uid='.$row['uid'].'&type=disk&interval=12h" rel="lightbox-'.$row['uid'].'-disk">12h</a> <a href="grapher.php?uid='.$row['uid'].'&type=disk&interval=1d" rel="lightbox-'.$row['uid'].'-disk">1d</a></td>'; echo '<td class="5pad"><div style="display:block; margin: 3px; padding: 2px;">'; echo '<span class="loadavg" style="background-color: #'.gen_color($row['load1']).'">'. sprintf('%.02f', $row['load1']) .'</span> '; echo '<span class="loadavg" style="background-color: #'.gen_color($row['load5']).'">'. sprintf('%.02f', $row['load5']) .'</span> '; echo '<span class="loadavg" style="background-color: #'.gen_color($row['load15']).'">'. sprintf('%.02f', $row['load15']) .'</span> '; echo '</div><a href="grapher.php?uid='.$row['uid'].'&type=loadavg&interval=1h" rel="lightbox-'.$row['uid'].'-load">1h</a> <a href="grapher.php?uid='.$row['uid'].'&type=loadavg&interval=3h" rel="lightbox-'.$row['uid'].'-load">3h</a> <a href="grapher.php?uid='.$row['uid'].'&type=loadavg&interval=6h" rel="lightbox-'.$row['uid'].'-load">6h</a> <a href="grapher.php?uid='.$row['uid'].'&type=loadavg&interval=12h" rel="lightbox-'.$row['uid'].'-load">12h</a> <a href="grapher.php?uid='.$row['uid'].'&type=loadavg&interval=1d" rel="lightbox-'.$row['uid'].'-load">1d</a>'; echo '</td>'; echo '<td>Rx: '.format_bytes($row['rx']).'/s<br />Tx: '.format_bytes($row['tx']).'/s<br />'; echo '<a href="grapher.php?uid='.$row['uid'].'&type=transfer&interval=1h" rel="lightbox-'.$row['uid'].'-transfer">1h</a> <a href="grapher.php?uid='.$row['uid'].'&type=transfer&interval=3h" rel="lightbox-'.$row['uid'].'-transfer">3h</a> <a href="grapher.php?uid='.$row['uid'].'&type=transfer&interval=6h" rel="lightbox-'.$row['uid'].'-transfer">6h</a> <a href="grapher.php?uid='.$row['uid'].'&type=transfer&interval=12h" rel="lightbox-'.$row['uid'].'-transfer">12h</a> <a href="grapher.php?uid='.$row['uid'].'&type=transfer&interval=1d" rel="lightbox-'.$row['uid'].'-transfer">1d</a>'; echo '</td>'; // echo '<td>Rx: '.(round($row['rx']/1024, 2)).' KB/s<br />Tx: '.(round($row['tx']/1024, 2)).' KB/s</td>'; echo '</tr>'; if ($servicecount[0] > 0) { $dbq = $db->prepare('SELECT * FROM processes WHERE uid = ? ORDER BY name ASC'); $dbr = $dbq->execute(array($row['uid'])); echo '<tr>'; echo '<td colspan="6" style="text-align: left; line-height: 22px;"><strong>Services:</strong><ul class="services">'; while ($service = $dbq->fetch(PDO::FETCH_ASSOC)) { switch ($service['status']) { case 0: $class = "service-up"; break; case 1: $class = "service-warning"; break; case 2: $class = "service-critical"; break; case -1: $class = "service-unknown"; break; } echo '<li class="'.$class.'">'. $service['name'] .'</li>'; } echo '</ul>'; echo '</td>'; echo '</tr>'; } if ($row['note'] != "") { echo '<tr><td colspan="6" style="text-align:left;"><strong>Notes: </strong>'.$row['note'].'</td></tr>'; } $i++; $lbjs .= " $(function() { $('a[rel=lightbox-".$row['uid']."-load]').lightBox({fixedNavigation:true}); }); $(function() { $('a[rel=lightbox-".$row['uid']."-disk]').lightBox({fixedNavigation:true}); }); $(function() { $('a[rel=lightbox-".$row['uid']."-memory]').lightBox({fixedNavigation:true}); }); $(function() { $('a[rel=lightbox-".$row['uid']."-transfer]').lightBox({fixedNavigation:true}); }); "; }