From b39f4a2f04d714f97adc0ce6e4dba9d09c2382da Mon Sep 17 00:00:00 2001 From: Daniel Maya Date: Tue, 18 Apr 2023 15:14:40 +0200 Subject: [PATCH] #10910 Fix old image --- .../include/class/NetworkMap.class.php | 6 ++ pandora_console/include/functions_os.php | 94 +++++++++++++++++++ .../functions_pandora_networkmap.js | 3 +- 3 files changed, 102 insertions(+), 1 deletion(-) diff --git a/pandora_console/include/class/NetworkMap.class.php b/pandora_console/include/class/NetworkMap.class.php index b2599e7208..453d69f980 100644 --- a/pandora_console/include/class/NetworkMap.class.php +++ b/pandora_console/include/class/NetworkMap.class.php @@ -1723,6 +1723,12 @@ class NetworkMap $item['image_width'] = 0; $item['image_height'] = 0; if (empty($node['style']['image']) === false) { + if (strpos($node['style']['image'], '.svg') === false) { + $node['style']['image'] = os_transform_url_icon( + $node['style']['image'] + ); + } + $item['image_url'] = ui_get_full_url( $node['style']['image'], false, diff --git a/pandora_console/include/functions_os.php b/pandora_console/include/functions_os.php index 2b5b25c24d..64020cb6aa 100755 --- a/pandora_console/include/functions_os.php +++ b/pandora_console/include/functions_os.php @@ -232,3 +232,97 @@ function os_get_icon($id_os) { return db_get_value('icon_name', 'tconfig_os', 'id_os', (int) $id_os); } + + +/** + * Transform the old icon url. + * + * @param string $url_icon Icon url . + * + * @return string + */ +function os_transform_url_icon($url_icon) +{ + $return = substr($url_icon, 0, strpos($url_icon, basename($url_icon))); + switch (basename($url_icon)) { + case 'android.png': + $return .= 'android@os.svg'; + break; + + case 'so_mac.png': + $return .= 'apple@os.svg'; + break; + + case 'so_cisco.png': + $return .= 'cisco@os.svg'; + break; + + case 'so_aix.png': + $return .= 'aix@os.svg'; + break; + + case 'so_win.png': + $return .= 'windows@os.svg'; + break; + + case 'so_vmware.png': + $return .= 'vmware@os.svg'; + break; + + case 'so_solaris.png': + $return .= 'solaris@os.svg'; + break; + + case 'so_linux.png': + $return .= 'linux@os.svg'; + break; + + case 'so_bsd.png': + $return .= 'freebsd@os.svg'; + break; + + case 'so_cluster.png': + $return .= 'cluster@os.svg'; + break; + + case 'so_other.png': + $return .= 'other-OS@os.svg'; + break; + + case 'so_switch.png': + $return .= 'switch@os.svg'; + break; + + case 'so_mainframe.png': + $return .= 'mainframe@os.svg'; + break; + + case 'so_hpux.png': + case 'server_hpux.png': + $return .= 'HP@os.svg'; + break; + + case 'so_router.png': + case 'router.png': + $return .= 'routers@os.svg'; + break; + + case 'embedded.png': + $return .= 'embedded@os.svg'; + break; + + case 'network.png': + $return .= 'network-server@os.svg'; + break; + + case 'satellite.png': + $return .= 'satellite@os.svg'; + break; + + default: + $return = $url_icon; + break; + } + + return $return; +} diff --git a/pandora_console/include/javascript/functions_pandora_networkmap.js b/pandora_console/include/javascript/functions_pandora_networkmap.js index 5a2f75889e..c1c7a7d4f8 100644 --- a/pandora_console/include/javascript/functions_pandora_networkmap.js +++ b/pandora_console/include/javascript/functions_pandora_networkmap.js @@ -3887,7 +3887,8 @@ function draw_elements_graph() { return d.id + networkmap_id; }) .attr("style", function(d) { - return d.id === 0 ? "filter: invert(0%)" : ""; + const extension = d.image_url.split(".").pop(); + return extension !== "svg" || d.id === 0 ? "filter: invert(0%)" : ""; }) .attr("id", "image2995") .classed("dragable_node", true) //own dragable