1<?php 2 3use LibreNMS\Device\WirelessSensor; 4use LibreNMS\Util\Number; 5 6// this determines the order of the tabs 7$types = WirelessSensor::getTypes(); 8 9$sensors = dbFetchColumn( 10 'SELECT `sensor_class` FROM `wireless_sensors` WHERE `device_id` = ? GROUP BY `sensor_class`', 11 [$device['device_id']] 12); 13$datas = array_intersect(array_keys($types), $sensors); 14 15$wireless_link_array = [ 16 'page' => 'device', 17 'device' => $device['device_id'], 18 'tab' => 'wireless', 19]; 20 21print_optionbar_start(); 22 23echo "<span style='font-weight: bold;'>Wireless</span> » "; 24 25if (! $vars['metric']) { 26 $vars['metric'] = 'overview'; 27} 28 29$sep = ''; 30echo '<span' . ($vars['metric'] == 'overview' ? ' class="pagemenu-selected"' : '') . '>'; 31echo generate_link('Overview', $wireless_link_array, ['metric' => 'overview']); 32echo '</span>'; 33 34foreach ($datas as $type) { 35 echo ' | <span'; 36 if ($vars['metric'] == $type) { 37 echo ' class="pagemenu-selected"'; 38 } 39 echo '>'; 40 41 echo generate_link(__("wireless.$type.short"), $wireless_link_array, ['metric' => $type]); 42 43 echo '</span>'; 44} 45 46print_optionbar_end(); 47 48if ($vars['metric'] == 'overview') { 49 foreach ($datas as $type) { 50 $text = __("wireless.$type.long"); 51 $unit = __("wireless.$type.unit"); 52 if (! empty($unit)) { 53 $text .= " ($unit)"; 54 } 55 56 $graph_title = generate_link($text, $wireless_link_array, ['metric' => $type]); 57 $graph_array['type'] = 'device_wireless_' . $type; 58 59 include \LibreNMS\Config::get('install_dir') . '/includes/html/print-device-graph.php'; 60 } 61} elseif (isset($types[$vars['metric']])) { 62 $unit = __('wireless.' . $vars['metric'] . '.unit'); 63 $factor = 1; 64 if ($unit == 'MHz') { 65 $unit = 'Hz'; 66 $factor = 1000000; 67 } 68 $row = 0; 69 70 $sensors = dbFetchRows( 71 'SELECT * FROM `wireless_sensors` WHERE `sensor_class` = ? AND `device_id` = ? ORDER BY `sensor_descr`', 72 [$vars['metric'], $device['device_id']] 73 ); 74 foreach ($sensors as $sensor) { 75 if (! is_integer($row++ / 2)) { 76 $row_colour = \LibreNMS\Config::get('list_colour.even'); 77 } else { 78 $row_colour = \LibreNMS\Config::get('list_colour.odd'); 79 } 80 81 $sensor_descr = $sensor['sensor_descr']; 82 83 if (empty($unit)) { 84 $sensor_current = ((int) $sensor['sensor_current']) . $unit; 85 $sensor_limit = ((int) $sensor['sensor_limit']) . $unit; 86 $sensor_limit_low = ((int) $sensor['sensor_limit_low']) . $unit; 87 } else { 88 $sensor_current = Number::formatSi($sensor['sensor_current'] * $factor, 3, 3, $unit); 89 $sensor_limit = Number::formatSi($sensor['sensor_limit'] * $factor, 3, 3, $unit); 90 $sensor_limit_low = Number::formatSi($sensor['sensor_limit_low'] * $factor, 3, 3, $unit); 91 } 92 93 echo "<div class='panel panel-default'> 94 <div class='panel-heading'> 95 <h3 class='panel-title'> 96 $sensor_descr 97 <div class='pull-right'>$sensor_current | $sensor_limit_low <> $sensor_limit</div> 98 </h3> 99 </div>"; 100 echo "<div class='panel-body'>"; 101 102 $graph_array['id'] = $sensor['sensor_id']; 103 $graph_array['type'] = 'wireless_' . $vars['metric']; 104 105 include \LibreNMS\Config::get('install_dir') . '/includes/html/print-graphrow.inc.php'; 106 107 echo '</div></div>'; 108 } 109} 110 111$pagetitle[] = 'Wireless'; 112