What is the replacement for New-UDCollapsibleItem

Product: PowerShell Universal
Version: 2.4.1

What is the replacement for New-UDCollapsibleItem it was very nice to use it in the old versions.

I tried the component but it’s very poor comparing to the old one.
when I try it with grouping to get a cascading Childs it got all the Childs in a tree way
what’s happening is they are created in horizontal manner

Can you share the script you’ve created with this that is causing the problem?

I am using the below code with the below data.
please put the below data into CSV file in C:\temp or change the import path

$Navigation = @(
	
	New-UDListItem -Label "Home" -OnClick { Invoke-UDRedirect '/Tables' }
	
)
$Pages = @()

$Pages += New-UDPage -Name 'GroupedSystems' -Url '/GroupedSystems' -Content {
	$Columns = @(
		New-UDTableColumn -Property Asset_ID -Title "Asset_ID" -ShowSort -DefaultSortColumn -IncludeInExport -IncludeInSearch -ShowFilter -FilterType text
		New-UDTableColumn -Property Name -Title "Name" -ShowSort -IncludeInExport -IncludeInSearch -ShowFilter -FilterType text
		New-UDTableColumn -Property IPAddress -Title "IPAddress" -ShowSort -IncludeInExport -IncludeInSearch -ShowFilter -FilterType text
		New-UDTableColumn -Property OperatingSystem -Title "OperatingSystem" -ShowSort -IncludeInExport -IncludeInSearch -ShowFilter -FilterType text
		New-UDTableColumn -Property Owner -Title "Owner" -ShowSort -IncludeInExport -IncludeInSearch -ShowFilter -FilterType select
		New-UDTableColumn -Property Model -Title "Model" -ShowSort -IncludeInExport -IncludeInSearch -ShowFilter -FilterType select
		New-UDTableColumn -Property Rack -Title "Rack" -ShowSort -IncludeInExport -IncludeInSearch -ShowFilter -FilterType text
		New-UDTableColumn -Property Serial -Title "Serial" -ShowSort -IncludeInExport -IncludeInSearch -ShowFilter -FilterType text
		New-UDTableColumn -Property Sector -Title "Sector" -ShowSort -IncludeInExport -IncludeInSearch -ShowFilter -FilterType text
	)
	
	$Servers = Import-Csv -Encoding UTF8 -Path C:\temp\Data.csv
	$GroupedServersBySector = $Servers | Group-Object Sector
	
	ForEach ($SectorGroup in $GroupedServersBySector)
	{
		New-UDExpansionPanelGroup -Children {
			New-UDExpansionPanel -Title "Level-1" -Children {
				$ServersGroupedBySystem = $SectorGroup.group | Group-Object ProjectOrSystem
				foreach ($SystemGroup in $ServersGroupedBySystem)
				{
					New-UDExpansionPanelGroup -Children {
						New-UDExpansionPanel -Title $("System : " + $SystemGroup.name) -Children {
							$Data = $SystemGroup.group | ForEach-Object {
								@{
									Asset_ID = $_.Asset_ID
									Name	 = $_.Name
									IPAddress = $_.IPAddress
									OperatingSystem = $_.OperatingSystem
									Owner    = $_.Owner
									Model    = $_.Model
									Rack	 = $_.Rack
									Serial   = $_.Serial
									ServerRole = $_.ServerRole
								}
							}
							New-UDTable -Id 'servers_table' -Data $Data -Columns $Columns -Title 'Servers Data' -ShowSearch -ShowPagination -PageSize 50 -ShowSelection -Dense -OnRowSelection {
								$Item = $EventData
								Show-UDToast -Message "$($Item | out-string)"
							}
							
						}
					}
				}
			}
		}
	}

} -NavigationLayout permanent -Navigation $Navigation

New-UDDashboard -Title "Hello, World!" -Pages $Pages

The CSV file:

Asset_ID,Name,IPAddress,Rack,Operating System,Owner,Model,Serial,ProjectOrSystem,ServerRole,Sector
SRV-001,Server1,1.1.1.1,1,Windows Server 2016,User1,Hyper-V,Cgexrwsf,Project1,Web Server,Sector1
SRV-002,Server2,1.1.1.2,1,Windows Server 2016,User2,Hyper-V,Cgexrwsf,Project2,Database Server,Sector2
SRV-003,Server3,1.1.1.3,1,Windows Server 2016,User3,Hyper-V,Cgexrwsf,Project3,Test Server,Sector3
SRV-004,Server4,1.1.1.4,1,Windows Server 2016,User4,Hyper-V,Cgexrwsf,Project1,Web Server,Sector1
SRV-005,Server5,1.1.1.5,1,Windows Server 2016,User5,Hyper-V,Cgexrwsf,Project2,Database Server,Sector2
SRV-006,Server6,1.1.1.6,2,Windows Server 2016,User6,Hyper-V,Cgexrwsf,Project3,Test Server,Sector3
SRV-007,Server7,1.1.1.7,2,Windows Server 2016,User7,Hyper-V,Cgexrwsf,Project1,Web Server,Sector1
SRV-008,Server8,1.1.1.8,2,Windows Server 2016,User8,Hyper-V,Cgexrwsf,Project2,Database Server,Sector2
SRV-009,Server9,1.1.1.9,2,Windows Server 2016,User9,Hyper-V,Cgexrwsf,Project3,Test Server,Sector3
SRV-010,Server10,1.1.1.10,2,Windows Server 2016,User10,Hyper-V,Cgexrwsf,Project1,Web Server,Sector1
SRV-011,Server11,1.1.1.11,2,Windows Server 2016,User11,Hyper-V,Cgexrwsf,Project2,Database Server,Sector2
SRV-012,Server12,1.1.1.12,2,Windows Server 2016,User12,Hyper-V,Cgexrwsf,Project3,Test Server,Sector3
SRV-013,Server13,1.1.1.13,2,Windows Server 2016,User13,Hyper-V,Cgexrwsf,Project4,Web Server,Sector4
SRV-014,Server14,1.1.1.14,2,Windows Server 2016,User14,Hyper-V,Cgexrwsf,Project5,Database Server,Sector4
SRV-015,Server15,1.1.1.15,2,Windows Server 2016,User15,Hyper-V,Cgexrwsf,Project6,Test Server,Sector4
SRV-016,Server16,1.1.1.16,3,Windows Server 2016,User16,Hyper-V,Cgexrwsf,Project7,Web Server,Shared
SRV-017,Server17,1.1.1.17,3,Windows Server 2016,User17,Hyper-V,Cgexrwsf,Project8,Database Server,Shared
SRV-018,Server18,1.1.1.18,3,Windows Server 2016,User18,Hyper-V,Cgexrwsf,Project9,Test Server,Shared
SRV-019,Server19,1.1.1.19,3,Windows Server 2016,User19,Hyper-V,Cgexrwsf,Project10,Web Server,Shared
SRV-020,Server20,1.1.1.20,3,Windows Server 2016,User20,Hyper-V,Cgexrwsf,Project11,Database Server,Sector1
SRV-021,Server21,1.1.1.21,3,Windows Server 2016,User21,Hyper-V,Cgexrwsf,Project12,Test Server,Sector2
SRV-022,Server22,1.1.1.22,3,Windows Server 2016,User22,Hyper-V,Cgexrwsf,Project13,Web Server,Sector3
SRV-023,Server23,1.1.1.23,3,Windows Server 2016,User23,Physical Server,Cgexrwsf,Project11,Database Server,Sector1
SRV-024,Server24,1.1.1.24,3,Windows Server 2016,User24,Vmware,Cgexrwsf,Project12,Test Server,Sector2
SRV-025,Server25,1.1.1.25,4,Windows Server 2016,User25,Vmware,Cgexrwsf,Project13,Web Server,Sector3
SRV-026,Server26,1.1.1.26,4,Windows Server 2016,User26,Vmware,Cgexrwsf,Project11,Database Server,Sector1
SRV-027,Server27,1.1.1.27,4,Windows Server 2016,User27,Vmware,Cgexrwsf,Project12,Test Server,Sector2
SRV-028,Server28,1.1.1.28,4,Windows Server 2016,User28,Vmware,Cgexrwsf,Project13,Web Server,Sector3
SRV-029,Server29,1.1.1.29,4,Windows Server 2016,User29,Vmware,Cgexrwsf,Project11,Database Server,Sector1
SRV-030,Server30,1.1.1.30,4,Windows Server 2016,User30,Vmware,Cgexrwsf,Project12,Test Server,Sector2
SRV-031,Server31,1.1.1.31,5,Windows Server 2016,User31,Vmware,Cgexrwsf,Project13,Web Server,Sector3
SRV-032,Server32,1.1.1.32,5,Windows Server 2016,User32,Vmware,Cgexrwsf,Project14,Database Server,Shared
SRV-033,Server33,1.1.1.33,5,Windows Server 2016,User33,Vmware,Cgexrwsf,Project15,Test Server,Shared
SRV-034,Server34,1.1.1.34,5,Windows Server 2016,User34,Vmware,Cgexrwsf,Project16,Web Server,Shared
SRV-035,Server35,1.1.1.35,5,Windows Server 2016,User35,Vmware,Cgexrwsf,Project17,Database Server,Shared

You can use UDStyle to fix this.

$Navigation = @(
	
    New-UDListItem -Label "Home" -OnClick { Invoke-UDRedirect '/Tables' }
	
)
$Pages = @()

$Pages += New-UDPage -Name 'GroupedSystems' -Url '/GroupedSystems' -Content {
    $Columns = @(
        New-UDTableColumn -Property Asset_ID -Title "Asset_ID" -ShowSort -DefaultSortColumn -IncludeInExport -IncludeInSearch -ShowFilter -FilterType text
        New-UDTableColumn -Property Name -Title "Name" -ShowSort -IncludeInExport -IncludeInSearch -ShowFilter -FilterType text
        New-UDTableColumn -Property IPAddress -Title "IPAddress" -ShowSort -IncludeInExport -IncludeInSearch -ShowFilter -FilterType text
        New-UDTableColumn -Property OperatingSystem -Title "OperatingSystem" -ShowSort -IncludeInExport -IncludeInSearch -ShowFilter -FilterType text
        New-UDTableColumn -Property Owner -Title "Owner" -ShowSort -IncludeInExport -IncludeInSearch -ShowFilter -FilterType select
        New-UDTableColumn -Property Model -Title "Model" -ShowSort -IncludeInExport -IncludeInSearch -ShowFilter -FilterType select
        New-UDTableColumn -Property Rack -Title "Rack" -ShowSort -IncludeInExport -IncludeInSearch -ShowFilter -FilterType text
        New-UDTableColumn -Property Serial -Title "Serial" -ShowSort -IncludeInExport -IncludeInSearch -ShowFilter -FilterType text
        New-UDTableColumn -Property Sector -Title "Sector" -ShowSort -IncludeInExport -IncludeInSearch -ShowFilter -FilterType text
    )
	
    $Servers = Import-Csv -Encoding UTF8 -Path C:\Users\Adamr\Desktop\test.csv
    $GroupedServersBySector = $Servers | Group-Object Sector
	
    ForEach ($SectorGroup in $GroupedServersBySector) {
        New-UDStyle -Style ".MuiExpansionPanelDetails-root { display: block !important }" -Content {
            New-UDExpansionPanelGroup -Children {
                New-UDExpansionPanel -Title "Level-1" -Children {
                    $ServersGroupedBySystem = $SectorGroup.group | Group-Object ProjectOrSystem
                    foreach ($SystemGroup in $ServersGroupedBySystem) {


                        New-UDExpansionPanelGroup -Children {
                            New-UDExpansionPanel -Title $("System : " + $SystemGroup.name) -Children {
                                $Data = $SystemGroup.group | ForEach-Object {
                                    @{
                                        Asset_ID        = $_.Asset_ID
                                        Name            = $_.Name
                                        IPAddress       = $_.IPAddress
                                        OperatingSystem = $_.OperatingSystem
                                        Owner           = $_.Owner
                                        Model           = $_.Model
                                        Rack            = $_.Rack
                                        Serial          = $_.Serial
                                        ServerRole      = $_.ServerRole
                                    }
                                }
                                New-UDTable -Id 'servers_table' -Data $Data -Columns $Columns -Title 'Servers Data' -ShowSearch -ShowPagination -PageSize 50 -ShowSelection -Dense -OnRowSelection {
                                    $Item = $EventData
                                    Show-UDToast -Message "$($Item | Out-String)"
                                }
							
                            }
                        }
                    }
                }
            }
        }
    }

} -NavigationLayout permanent -Navigation $Navigation

New-UDDashboard -Title "Hello, World!" -Pages $Pages

I’ve opened an issue here: UDExpansionPanel does not honor new lines. · Issue #629 · ironmansoftware/issues · GitHub

Dear Adam,

tried it with no luck,

You need to add the component to you dashboard. Sorry, I didn’t mention that. Click the Components button near the top of the page and select the UDStyle component and click Add.

Thank you so much ,got it working , sorry didn’t get used for the new interface.
But , tell now as a fan of UD , the old components are far better than the new ones :wink:

Always looking to improve. Feel free to file issues you find or improvements to suggest: GitHub - ironmansoftware/issues: Public Issue tracker for Ironman Software