mirror of
https://github.com/librenms/librenms.git
synced 2024-09-21 10:28:13 +00:00
Fix ports display (#14183)
* Fix ports with deleted device breaking all ports display * Only filter callable based filters when required
This commit is contained in:
parent
36e7a7793d
commit
e9211d93c0
@ -139,7 +139,7 @@ class Url
|
||||
$text = $label;
|
||||
}
|
||||
|
||||
$content = '<div class=list-large>' . addslashes(htmlentities($port->device->displayName() . ' - ' . $label)) . '</div>';
|
||||
$content = '<div class=list-large>' . addslashes(htmlentities(optional($port->device)->displayName() . ' - ' . $label)) . '</div>';
|
||||
if ($description = $port->getDescription()) {
|
||||
$content .= addslashes(htmlentities($description)) . '<br />';
|
||||
}
|
||||
@ -230,7 +230,7 @@ class Url
|
||||
*/
|
||||
public static function deviceUrl($device, $vars = [])
|
||||
{
|
||||
$routeParams = [is_numeric($device) ? $device : $device->device_id];
|
||||
$routeParams = [($device instanceof Device) ? $device->device_id : (int) $device];
|
||||
if (isset($vars['tab'])) {
|
||||
$routeParams[] = $vars['tab'];
|
||||
unset($vars['tab']);
|
||||
|
@ -146,9 +146,18 @@ abstract class PaginatedAjaxController extends Controller
|
||||
protected function filter($request, $query, $fields)
|
||||
{
|
||||
foreach ($fields as $target => $field) {
|
||||
if (is_callable($field)) {
|
||||
$field($query, $request->get($target));
|
||||
} elseif (($value = $request->get($field)) !== null) {
|
||||
$callable = is_callable($field);
|
||||
$value = $request->get($callable ? $target : $field);
|
||||
|
||||
// unfiltered field
|
||||
if ($value === null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// apply the filter
|
||||
if ($callable) {
|
||||
$field($query, $value);
|
||||
} else {
|
||||
$value = $this->adjustFilterValue($field, $value);
|
||||
if (is_string($target)) {
|
||||
$query->where($target, $value);
|
||||
|
@ -155,7 +155,7 @@ class PortsController extends TableController
|
||||
'status' => $status,
|
||||
'device' => Url::deviceLink($port->device),
|
||||
'port' => Url::portLink($port),
|
||||
'secondsIfLastChange' => ceil($port->device->uptime - ($port->ifLastChange / 100)),
|
||||
'secondsIfLastChange' => ceil(optional($port->device)->uptime - ($port->ifLastChange / 100)),
|
||||
'ifConnectorPresent' => ($port->ifConnectorPresent == 'true') ? 'yes' : 'no',
|
||||
'ifSpeed' => $port->ifSpeed,
|
||||
'ifMtu' => $port->ifMtu,
|
||||
|
@ -61,7 +61,7 @@ class Port extends DeviceRelatedModel
|
||||
*/
|
||||
public function getLabel()
|
||||
{
|
||||
$os = $this->device->os;
|
||||
$os = optional($this->device)->os;
|
||||
|
||||
if (\LibreNMS\Config::getOsSetting($os, 'ifname')) {
|
||||
$label = $this->ifName;
|
||||
|
Loading…
Reference in New Issue
Block a user