mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
Configurable device display name (#13528)
* Configurable device display name You can just set the display name in device settings. It also accepts simple template format with the variables: hostname, sysName, sysName_fallback, ip Default controlled by device_display_default, (set from old force_hostname_to_sysname and force_ip_to_sysname settings * remove second argument to format_hostname() * Style fixes * Update schema * update phpstan baseline * Improved settings strings (and add for translation)
This commit is contained in:
+10
-18
@@ -652,28 +652,20 @@ function inet6_ntop($ip)
|
||||
* If hostname is an ip, use return sysName
|
||||
*
|
||||
* @param array $device (uses hostname and sysName fields)
|
||||
* @param string $hostname
|
||||
* @return string
|
||||
*/
|
||||
function format_hostname($device, $hostname = null)
|
||||
function format_hostname($device): string
|
||||
{
|
||||
if (empty($hostname)) {
|
||||
$hostname = $device['hostname'];
|
||||
}
|
||||
$hostname = $device['hostname'] ?? 'invalid hostname';
|
||||
$hostname_is_ip = IP::isValid($hostname);
|
||||
$sysName = empty($device['sysName']) ? $hostname : $device['sysName'];
|
||||
|
||||
if (Config::get('force_hostname_to_sysname') && ! empty($device['sysName'])) {
|
||||
if (\LibreNMS\Util\Validate::hostname($hostname) && ! IP::isValid($hostname)) {
|
||||
return $device['sysName'];
|
||||
}
|
||||
}
|
||||
|
||||
if (Config::get('force_ip_to_sysname') && ! empty($device['sysName'])) {
|
||||
if (IP::isValid($hostname)) {
|
||||
return $device['sysName'];
|
||||
}
|
||||
}
|
||||
|
||||
return $hostname;
|
||||
return \App\View\SimpleTemplate::parse(empty($device['display']) ? Config::get('device_display_default', '{{ $hostname }}') : $device['display'], [
|
||||
'hostname' => $hostname,
|
||||
'sysName' => $sysName,
|
||||
'sysName_fallback' => $hostname_is_ip ? $sysName : $hostname,
|
||||
'ip' => empty($device['overwrite_ip']) ? ($hostname_is_ip ? $device['hostname'] : $device['ip'] ?? '') : $device['overwrite_ip'],
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user