Skip to content

Commit b836ff2

Browse files
authored
Ports sensor panels for Device overview to blade (librenms#19919)
* Ports sensor panels for Device overview to blade * Moved sensor blade file * Moved sensor php file * CI Fix * Updated based on PR feedback
1 parent 1273ac1 commit b836ff2

35 files changed

Lines changed: 122 additions & 306 deletions

includes/html/pages/device/overview.inc.php

Lines changed: 1 addition & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -35,37 +35,7 @@
3535
require 'overview/mempools.inc.php';
3636
require 'overview/storage.inc.php';
3737
require 'overview/toner.inc.php';
38-
require 'overview/sensors/charge.inc.php';
39-
require 'overview/sensors/temperature.inc.php';
40-
require 'overview/sensors/humidity.inc.php';
41-
require 'overview/sensors/fanspeed.inc.php';
42-
require 'overview/sensors/dbm.inc.php';
43-
require 'overview/sensors/voltage.inc.php';
44-
require 'overview/sensors/current.inc.php';
45-
require 'overview/sensors/runtime.inc.php';
46-
require 'overview/sensors/power.inc.php';
47-
require 'overview/sensors/power_consumed.inc.php';
48-
require 'overview/sensors/power_factor.inc.php';
49-
require 'overview/sensors/frequency.inc.php';
50-
require 'overview/sensors/load.inc.php';
51-
require 'overview/sensors/state.inc.php';
52-
require 'overview/sensors/count.inc.php';
53-
require 'overview/sensors/percent.inc.php';
54-
require 'overview/sensors/signal.inc.php';
55-
require 'overview/sensors/tv_signal.inc.php';
56-
require 'overview/sensors/bitrate.inc.php';
57-
require 'overview/sensors/airflow.inc.php';
58-
require 'overview/sensors/snr.inc.php';
59-
require 'overview/sensors/pressure.inc.php';
60-
require 'overview/sensors/cooling.inc.php';
61-
require 'overview/sensors/delay.inc.php';
62-
require 'overview/sensors/quality_factor.inc.php';
63-
require 'overview/sensors/chromatic_dispersion.inc.php';
64-
require 'overview/sensors/ber.inc.php';
65-
require 'overview/sensors/eer.inc.php';
66-
require 'overview/sensors/waterflow.inc.php';
67-
require 'overview/sensors/loss.inc.php';
68-
require 'overview/sensors/signal_loss.inc.php';
38+
require 'overview/sensor.inc.php';
6939
require 'overview/eventlog.inc.php';
7040
require 'overview/services.inc.php';
7141
require 'overview/syslog.inc.php';

includes/html/pages/device/overview/generic/sensor.inc.php

Lines changed: 0 additions & 75 deletions
This file was deleted.
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
<?php
2+
3+
use App\Facades\LibrenmsConfig;
4+
use LibreNMS\Enum\Sensor;
5+
use LibreNMS\Util\Rewrite;
6+
use LibreNMS\Util\Url;
7+
8+
// Sensor overview panels, rendered in this order. Each empty class is skipped below.
9+
$sensor_overview_order = [
10+
Sensor::Charge,
11+
Sensor::Temperature,
12+
Sensor::Humidity,
13+
Sensor::Fanspeed,
14+
Sensor::Dbm,
15+
Sensor::Voltage,
16+
Sensor::Current,
17+
Sensor::Runtime,
18+
Sensor::Power,
19+
Sensor::PowerConsumed,
20+
Sensor::PowerFactor,
21+
Sensor::Frequency,
22+
Sensor::Load,
23+
Sensor::State,
24+
Sensor::Count,
25+
Sensor::Percent,
26+
Sensor::Signal,
27+
Sensor::TvSignal,
28+
Sensor::Bitrate,
29+
Sensor::Airflow,
30+
Sensor::Snr,
31+
Sensor::Pressure,
32+
Sensor::Cooling,
33+
Sensor::Delay,
34+
Sensor::QualityFactor,
35+
Sensor::ChromaticDispersion,
36+
Sensor::Ber,
37+
Sensor::Eer,
38+
Sensor::Waterflow,
39+
Sensor::Loss,
40+
Sensor::SignalLoss,
41+
];
42+
43+
foreach ($sensor_overview_order as $sensor_class) {
44+
$sensors = DeviceCache::getPrimary()->sensors->where('sensor_class', $sensor_class->value)->where('group', '!=', 'transceiver')->sortBy([
45+
['group', 'asc'],
46+
['sensor_descr', 'asc'],
47+
]); // cache all sensors on device and exclude transceivers
48+
49+
if ($sensors->isNotEmpty()) {
50+
// prepare each sensor for display: normalise the description (ipmi sensors get a
51+
// friendly name, all are truncated) and build the link through to the graphs page
52+
$sensors->each(function ($sensor) use ($device, $sensor_class): void {
53+
$descr = $sensor->poller_type == 'ipmi'
54+
? ipmiSensorName($device['hardware'], $sensor->sensor_descr)
55+
: $sensor->sensor_descr;
56+
57+
$sensor->sensor_descr = Rewrite::shortenIfName(substr((string) $descr, 0, 48));
58+
$sensor->graph_link = Url::generate([
59+
'page' => 'graphs',
60+
'id' => $sensor->sensor_id,
61+
'type' => 'sensor_' . $sensor_class->value,
62+
'from' => LibrenmsConfig::get('time.day'),
63+
'to' => LibrenmsConfig::get('time.now'),
64+
]);
65+
});
66+
67+
echo view('device.overview.sensor', [
68+
'sensor_class' => $sensor_class,
69+
'sensor_link' => route('device', ['device' => DeviceCache::getPrimary()->device_id, 'tab' => 'health', 'vars' => 'metric=' . $sensor_class->value]),
70+
'groupedSensors' => $sensors->groupBy('group'),
71+
]);
72+
}
73+
}

includes/html/pages/device/overview/sensors/airflow.inc.php

Lines changed: 0 additions & 28 deletions
This file was deleted.

includes/html/pages/device/overview/sensors/ber.inc.php

Lines changed: 0 additions & 5 deletions
This file was deleted.

includes/html/pages/device/overview/sensors/bitrate.inc.php

Lines changed: 0 additions & 28 deletions
This file was deleted.

includes/html/pages/device/overview/sensors/charge.inc.php

Lines changed: 0 additions & 5 deletions
This file was deleted.

includes/html/pages/device/overview/sensors/chromatic_dispersion.inc.php

Lines changed: 0 additions & 5 deletions
This file was deleted.

includes/html/pages/device/overview/sensors/cooling.inc.php

Lines changed: 0 additions & 5 deletions
This file was deleted.

includes/html/pages/device/overview/sensors/count.inc.php

Lines changed: 0 additions & 5 deletions
This file was deleted.

0 commit comments

Comments
 (0)