Open a SPEAK dialog
A SPEAK dialog is a stand-alone SPEAK page that users open to perform a specific task. An example is the Select Media dialog. The user opens the dialog, performs the task, and closes the dialog again.
In a SPEAK application, users open the pages in the application from the menu or other navigational tools. Users typically open SPEAK dialogs from a button or a link. They can do this from a SPEAK page, but also from a page created in SheerUI.
This topic describes how to:
-
Open a SPEAK dialog from SheerUI
-
Replace an existing SheerUI dialog with a SPEAK dialog
-
Open a SPEAK dialog from SPEAK
Open a SPEAK dialog from SheerUI
You can open a SPEAK dialog from SheerUI with this function:
public static ClientCommand ShowModalDialog(ModalDialogOptions options)
To open a SPEAK page, you use this code:
SheerResponse.ShowModalDialog(new ModalDialogOptions(url)
{
Width = "100",
Height = "200",
Response = true,
ForceDialogSize = true
});
The relevant parameters are:
|
Option |
Description |
|---|---|
|
string url |
Specifies the Sitecore path of the SPEAK page, for example, |
|
string Width |
Sets the width of the SPEAK dialog, for example, |
|
string Height |
Sets the height of the SPEAK dialog, for example, |
|
bool Response |
If True, Sitecore returns the dialog result to the server when the dialog is closed |
|
bool ForceDialogSize |
Determines whether SPEAK uses the values of Width and Height. If True, SPEAK uses those values for the size of the dialog. |
Replacing an existing dialog with a SPEAK dialog
To replace an existing SheerUI dialog with a SPEAK dialog, you just need to configure Sitecore to use the SPEAK dialog. This instructs Sitecore to use the SPEAK dialog rather than the old dialog everywhere – you do not have to modify the links or buttons that open the old dialog.
You configure the replacement this way:
-
Open the
Sitecore.Speak.Applications.configfile in theWebsite\App_Config\Includefolder. -
The
<overrideXmlControls>and the<overrideDialogs>nodes contain lists of the old dialogs and the SPEAK page that replaces it, in this format:<override dialogUrl="<path to old dialog" with="path to SPEAK page" />For example:<override dialogUrl="/sitecore/shell/Applications/Item%20browser.aspx" with="/sitecore/client/applications/dialogs/InsertSitecoreItemViaTreeDialog" />Add the dialog you are replacing and the new page to this list.
Sitecore uses two processors in the HttpRequest pipeline for this: OverrideDialogs and OverrideXmlControl.
Sitecore uses this approach to replace a number of legacy dialogs. Sitecore uses XmlControls to create the legacy Select Media dialog and therefore uses the OverrideXmlControl processor – aspx dialogs use the OverrideDialogs processor.
Opening a SPEAK dialog from SPEAK
You create most dialogs natively in SPEAK using the DialogWindow component.
If you need to open a stand-alone page as a dialog within SPEAK, you can also use the DialogWindow component and then use a Frame component to show the actual dialog.
For example, to add JavaScript to the Click event of a Button control to open the DialogWindow dialog, you use this code:
javascript:app.DialogWindow1.show()