Scripts/New-UDGantt.ps1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
<# .SYNOPSIS Sample control for UniversalDashboard. .DESCRIPTION Sample control function for UniversalDashboard. This function must have an ID and return a hash table. .PARAMETER Id An id for the component default value will be generated by new-guid. .EXAMPLE PS C:\> <example usage> Explanation of what the example does .INPUTS Inputs (if any) .OUTPUTS Output (if any) .NOTES General notes #> function New-UDGantt { param( [Parameter()] [string]$Id = (New-Guid).ToString(), [Parameter()] [scriptblock]$Data, [Parameter()] [string]$Width, [Parameter()] [string]$Height, [Parameter()] [bool]$CriticalPathEnabled, # = $false, [Parameter()] [string]$CriticalStrokeColor, # = '#e64a19', [Parameter()] [int]$CriticalStrokeWidth, # = 5, [Parameter()] [string]$GridStrokeColor, # = '#ffe0b2', [Parameter()] [int]$GridStrokeWidth, # = 2, [Parameter()] [string]$InnerGrid, # = '#fff3e0', [Parameter()] [string]$InnerGridDark # = '#ffcc80' ) End { [System.Collections.ArrayList]$MainData = @() foreach ($Item in [array]$Data.Invoke()) { [System.Collections.ArrayList]$ItemData = @( $Item.TaskID $Item.TaskName $Item.Resource #https://developers.google.com/chart/interactive/docs/datesandtimes#dates-and-times-using-the-date-string-representation #Important: When using this Date String Representation, as when using the new Date() constructor, months are indexed starting at zero (January is month 0, December is month 11). $Item.Start $Item.End $Item.Duration $Item.PercentComplete $Item.Dependencies ) $MainData.Add($ItemData) | Out-Null } @{ # The AssetID of the main JS File assetId = $AssetId # Tell UD this is a plugin isPlugin = $true # This ID must be the same as the one used in the JavaScript to register the control with UD type = "UD-Gantt" # An ID is mandatory id = $Id # This is where you can put any other properties. They are passed to the React control's props # The keys are case-sensitive in JS. rows = $MainData width = $Width height = $Height criticalPathEnabled = $CriticalPathEnabled criticalStroke = $CriticalStrokeColor criticalStrokeWidth = $CriticalStrokeWidth gridStroke = $GridStrokeColor innerGrid = $InnerGrid innerGridDark = $InnerGridDark gridStrokeWidth = $GridStrokeWidth } } } |