Interaction
Interaction features of Universal Dashboard
Universal Dashboard enables the ability to create interactive websites with PowerShell. There are several cmdlets that have been implemented to provide feedback to the user, update components and read the state of components.
You can set string data into the user's clipboard with
Set-UDClipboard
.New-UDButton -Text 'Clipboard' -OnClick {
Set-UDClipboard -Data 'Hello, there!'
}
Set-UDClipboard
Name | Type | Description | Required |
Data | string | The content to set to the clipboard | true |
ToastOnSuccess | Switch | Shows a toast if the data was successfully set in the clipboard | false |
ToastOnError | Switch | Shows as toast if the data was unsuccessfully set in the clipboard | false |
You can invoke JavaScript from PowerShell by using the
Invoke-UDJavaScript
cmdlet. New-UDButton -Text 'Alert Me' -OnClick {
Invoke-UDJavaScript -JavaScript 'alert("Hello!")'
}
Invoke-UDJavaScript
Name | Type | Description | Required |
JavaScript | string | The JavaScript to invoke. | true |
You can use the
Show-UDToast
cmdlet to create a toast message that will appear on the end user's webpage. It happens over a websocket and will show the toast immediately as it is called.Show-UDToast -Message 'Hello, World!'
Hides a toast based on the specified ID.
Show-UDToast -Message 'Hello, World!' -Id 'Toast' -Duration 30000
New-UDButton -Text 'Click' -OnClick {
Hide-UDToast -Id 'Toast'
}
Show-UDToast
Name | Type | Description | Required |
Message | string | The message to display | true |
MessageColor | DashboardColor | The color of the message to display | false |
MessageSize | string | The size of the message to display | false |
Duration | int | The number of milliseconds to display the message. Defaults to 1000 | false |
Title | string | A title to display above the message. | false |
TitleColor | DashboardColor | The color of the title. | false |
TitleSize | string | The size of the title. | false |
Id | string | The ID of this toast. | false |
BackgroundColor | DashboardColor | The background color of the toast. | false |
Theme | string | Light or dark theme. | false |
Position | string | The position of the toast. | false |
HideCloseButton | Switch | Hide the close button to prevent the user from hiding the toast. | false |
CloseOnClick | Switch | Close the toast when it is clicked. | false |
CloseOnEscape | Switch | Close the toast when escape is pressed. | false |
ReplaceToast | Switch | Replace an existing toast if one is already shown. Otherwise, show both. | false |
Balloon | Switch | Balloon style toast. | false |
Overlay | Switch | Display an overlay behind the toast | false |
OverlayClose | Switch | Allow the user to close the overlay | false |
OverlayColor | DashboardColor | The color of the overlay. | false |
TransitionIn | string | The transition to use when the toast is appearing. | false |
TransitionOut | string | The transition to use when the toast is disappearing. | false |
Broadcast | Switch | Show the toast to all users. | false |
Hide-UDToast
Name | Type | Description | Required |
Id | string | The ID of the toast to hide. | true |
You can redirect users to different pages using the
Invoke-UDRedirect
cmdlet. It happens over a websocket and will redirect as soon as the cmdlet is called.Invoke-UDRedirect http://www.ironmansoftware.com
Invoke-UDRedirect
Name | Type | Description | Required |
Url | string | The URL to redirect the user to. | true |
OpenInNewWindow | Switch | Open the URL in a new window or tab. | false |
You can open a modal using the
Show-UDModal
cmdlet. It will open as soon as you call it. You can include whatever components you like within the modal.You can manage component state dynamically by using the UDElement commands.
You can receive the state of an element using
Get-UDElement
. The state will be returned as a hashtable. This is primarily useful for input components.$Value = (Get-UDElement -Id 'txtExample').value
Get-UDElement
Name | Type | Description | Required |
Id | string | The ID of the component to receive. | true |
Alternatively, you can set component state using
Set-UDElement
. You will need to specify an ID and a hashtable of properties to set on the component. All built in components support Set-UDElement.New-UDTextbox -Id 'textbox'
New-UDButton -Text 'Click' -OnClick {
Set-UDElement -Id 'textbox' -Properties @{
Value = 'My Value'
}
}
Set-UDElement
Name | Type | Description | Required |
Id | string | The ID of the component to set. | true |
Properties | Hashtable | Properties to set on the component | false |
Broadcast | Switch | Set the properties of a component for all users. | false |
Content | ScriptBlock | The content of the component to set. | false |
You can remove components from the page using
Remove-UDElement
. The component will no longer appear on the page.Remove-UDComponent -Id 'txtExample'
Remove-UDElement
Name | Type | Description | Required |
Id | string | The ID of the component to remove. | true |
Add a child component to an existing parent component.
New-UDElement -Id 'myDiv' -Tag div
New-UDButton -Text 'Click' -OnClick {
Add-UDElement -ParentId 'myDiv' -Content {
New-UDTypography -Text 'Hi'
}
}
Add-UDElement
Name | Type | Description | Required |
ParentId | string | The ID of the component to add a child to. | true |
Content | ScriptBlock | The child content to add. | true |
Broadcast | Switch | Whether to add the child component to all users. | false |
You can remove all the children components from an component by using
Clear-UDElement
.New-UDElement -Id 'myDiv' -Tag div
New-UDButton -Text 'Click' -OnClick {
Add-UDElement -ParentId 'myDiv' -Content {
New-UDTypography -Text 'Hi'
}
Add-UDElement -ParentId 'myDiv' -Content {
New-UDTypography -Text 'Hi'
}
Add-UDElement -ParentId 'myDiv' -Content {
New-UDTypography -Text 'Hi'
}
}
New-UDButton -Text 'Clear' -OnClick {
Clear-UDElement -Id 'myDiv'
}
Clear-UDElement
Name | Type | Description | Required |
Id | string | The ID of the component to clear. | true |
Some components support reloading. You can trigger a reload of a component using
Sync-UDElement
.New-UDDynamic -Id 'reloadMe' -Content {
Get-Date
}
New-UDButton -Text 'Reload' -OnClick {
Sync-UDElement -Id 'reloadMe'
}
Sync-UDElement
Name | Type | Description | Required |
Id | string | The ID of the component to reload. | true |
Broadcast | Switch | Whether to reload the component for all users. | false |
You can select a component with
Select-UDElement
. New-UDElement -Id 'txt' -Tag input -Properties @{ type = text }
New-UDButton -Text 'Select' -OnClick {
Select-UDElement -Id 'txt' -ScrollToElement
}
Select-UDElement
Name | Type | Description | Required |
Id | string | The ID of the element to select | true |
ScrollToElement | Switch | Whether to scroll the user's window to the element | false |
Last modified 2yr ago