commit c59acd709ec880c4a8e0edcb6c0e91073169852a avoid duplicate parent nodes for inputs in the cablerun tree view and change naming to "$ObjectName ($PortName)" diff --git a/src/classes/cmdb/ui/global/isys_cmdb_ui_category_g_virtual_cabling.class.php b/src/classes/cmdb/ui/global/isys_cmdb_ui_category_g_virtual_cabling.class.php index 1716a73..9306128 100755 --- a/src/classes/cmdb/ui/global/isys_cmdb_ui_category_g_virtual_cabling.class.php +++ b/src/classes/cmdb/ui/global/isys_cmdb_ui_category_g_virtual_cabling.class.php @@ -128,6 +128,9 @@ class isys_cmdb_ui_category_g_virtual_cabling extends isys_cmdb_ui_category_g_vi $l_connections = array(); $i=0; + + /* lookup table for dTree parent IDs to avoid duplicate input parents */ + $l_parents = array(); /* resolve cable run for outputs */ while($l_row = $l_catdata->get_row()) { @@ -169,17 +172,25 @@ class isys_cmdb_ui_category_g_virtual_cabling extends isys_cmdb_ui_category_g_vi $l_icon = "images/dtree/special/power_f_socket.gif"; if ($l_row["cable_left"]) { - - $l_parent = $this->m_tree->add_node( - $i++, - $l_parent, - $l_row["cable_left"], - "", - "_new", - $l_icon - ); + if (isset($l_parents[$l_row["cable_left"]])) { + /* reuse already existing cable_left node */ + $l_parent = $l_parents[$l_row["cable_left"]]; + } else { + /* create a new cable_left node */ + $l_parent = $this->m_tree->add_node( + $i++, + $l_parent, + $l_row["cable_left"], + "", + "_new", + $l_icon + ); + + /* store node for reuse */ + $l_parents[$l_row["cable_left"]] = $l_parent; + } $l_icon = "images/dtree/special/power_m_plug.gif"; - //$l_icon = ""; + //$l_icon = ""; } $this->build_tree($l_cable_run[C__DIRECTION__RIGHT], $l_parent, $l_icon); @@ -207,7 +218,7 @@ class isys_cmdb_ui_category_g_virtual_cabling extends isys_cmdb_ui_category_g_vi $l_node = $this->m_tree->add_node( $p_data["CONNECTOR_ID"], $p_parent, - $p_data["CONNECTOR_TITLE"] . " (" . $p_data["OBJECT_TITLE"] . ") ", + $p_data["OBJECT_TITLE"] . " (" . $p_data["CONNECTOR_TITLE"] . ") ", $p_data["LINK"], "_new", $p_icon