Skip to main content


deprecated abstract class %ZEN.Portal.standardPage extends, %ZEN.Portal.abstractRefreshable

This base class provides a standard template for portal pages implemented using Zen.

Property Inventory

Method Inventory


parameter APPLICATION = %ZEN.Portal.Application;
Set this to the appropriate application class.
parameter AUTONS = 1;
If true, auto-switch namespace to whatever $NAMESPACE is passed in.
parameter DEFAULTSORTMODE = name;
If this page has sort options, this is its initial sort mode.
parameter DEFAULTVIEWMODE = columns;
If this page has multiple views, this is its initial display mode.
parameter DOMAIN = %Utility;
Set this to the correct domain.
SMP favorite icon.
parameter HOMEPAGE = /csp/sys/%25CSP.Portal.Home.zen;
URL of home page (used in links by many pages via homePage.)
parameter IFRAMEALLOWED = 0;
Allow pages to have iframes by not setting x-frame-options: same origin. Set default for Management Portal as iframes are not allowed.
parameter JSINCLUDES = zenMenusSMP.js;
Inherited description: Comma-separated list of additional JS include files for the page.
parameter PAGENAME = Standard Portal Page;
Name of this page.
parameter RECENT = 1;
If true, register visits to this page in the recent list.
parameter SHOWNAMESPACE = 1;
If true, show the Namespace dropdown.


property StdTitle as %ZEN.Datatype.string [ InitialExpression = $P($ZU(86),"*",2) _" - "_..#PAGENAME ];
Define the title that will be displayed within subclasses
Property methods: StdTitleDisplayToLogical(), StdTitleGet(), StdTitleIsValid(), StdTitleLogicalToDisplay(), StdTitleLogicalToOdbc(), StdTitleNormalize(), StdTitleSet()
property aboutPage as %ZEN.Datatype.string [ InitialExpression = ..Link("_CSP.UI.Portal.About.zen") ];
About page URL
Property methods: aboutPageDisplayToLogical(), aboutPageGet(), aboutPageIsValid(), aboutPageLogicalToDisplay(), aboutPageLogicalToOdbc(), aboutPageNormalize(), aboutPageSet()
property contactPage as %ZEN.Datatype.string [ InitialExpression = ..Link("/csp/sys/%25CSP.UI.Portal.Contact.cls") ];
Property methods: contactPageDisplayToLogical(), contactPageGet(), contactPageIsValid(), contactPageLogicalToDisplay(), contactPageLogicalToOdbc(), contactPageNormalize(), contactPageSet()
property currSortMode as %ZEN.Datatype.string [ InitialExpression = ..#DEFAULTSORTMODE ];
Current sort mode for this page (if applicable).
Property methods: currSortModeDisplayToLogical(), currSortModeGet(), currSortModeIsValid(), currSortModeLogicalToDisplay(), currSortModeLogicalToOdbc(), currSortModeNormalize(), currSortModeSet()
property currStep as %ZEN.Datatype.integer [ InitialExpression = 1 ];
For pages with steps, this is the current step (1-based).
Property methods: currStepDisplayToLogical(), currStepGet(), currStepIsValid(), currStepLogicalToDisplay(), currStepLogicalToOdbc(), currStepNormalize(), currStepSet()
property currViewMode as %ZEN.Datatype.string [ InitialExpression = ..#DEFAULTVIEWMODE ];
If this page has "views", this is the current view type.
Property methods: currViewModeDisplayToLogical(), currViewModeGet(), currViewModeIsValid(), currViewModeLogicalToDisplay(), currViewModeLogicalToOdbc(), currViewModeNormalize(), currViewModeSet()
property homePage as %ZEN.Datatype.string [ InitialExpression = ..Link(..#HOMEPAGE,,1)_$select('$data(%response.Context("$NAMESPACE")): "$NAMESPACE="_$zcvt($namespace,"O","URL"), 1: "") ];
Product home page URL. Note that multiple portal pages rely on this being a fully formed link.
Property methods: homePageDisplayToLogical(), homePageGet(), homePageIsValid(), homePageLogicalToDisplay(), homePageLogicalToOdbc(), homePageNormalize(), homePageSet()
property limitPopups as %ZEN.Datatype.boolean [ InitialExpression = ##class(%CSP.Portal.Utils).%IsConnectivityPopupDisabled() ];
Set to true to suppress hyperevent error pop-ups in the event of a connectitivity failure.
Property methods: limitPopupsDisplayToLogical(), limitPopupsGet(), limitPopupsIsValid(), limitPopupsLogicalToDisplay(), limitPopupsLogicalToOdbc(), limitPopupsLogicalToXSD(), limitPopupsNormalize(), limitPopupsSet(), limitPopupsXSDToLogical()
property pageModified as %ZEN.Datatype.boolean [ InitialExpression = 0 ];
True if the contents of this page need to be saved.
Property methods: pageModifiedDisplayToLogical(), pageModifiedGet(), pageModifiedIsValid(), pageModifiedLogicalToDisplay(), pageModifiedLogicalToOdbc(), pageModifiedLogicalToXSD(), pageModifiedNormalize(), pageModifiedSet(), pageModifiedXSDToLogical()
property searchKey as %ZEN.Datatype.string;
Current search key value (if applicable).
Property methods: searchKeyDisplayToLogical(), searchKeyGet(), searchKeyIsValid(), searchKeyLogicalToDisplay(), searchKeyLogicalToOdbc(), searchKeyNormalize(), searchKeySet()


Return the array of links to show in the locator bar.
pLink(n)=$LB(caption,link) Sub-class can override to include extra levels.
method %OnAfterCreatePage() as %Status
Decorate the page.
method %OnDrawHTMLMeta() as %Status
Inherited description: This callback is called at the start of the HTML HEAD section of the page (just after the title).
It allows a page to write out meta tags, if desired. The default implementation writes out an IE-specific meta tag to ensure that IE 9 and 10 don't fall back into Compatibility Mode when we are returning an HTML5 page (i.e. cssLevel is set to 3).
method %OnGetPageName() as %String
Get the (localized) name of the page. This should be implemented in a subclass.
method %OnGetProductName() as %String
Get the product name for the page.
method %OnGetSmallMenu(Output pMenu)
Get the contents of the small menu in the title area.
method %OnGetTitle() as %String
Get the (localized) title string for the page. This should be implemented in a subclass.
classmethod %OnUseSoftModals() as %Boolean
Use soft modals for the portal.
method %Register() as %Status
Register this visit to the recent items list.
method BuildMenu() as %Status
This method rebuilds context menu on the top left corner.
Helper method to ensure that the user has sufficient privileges to access the links returned in GetContextLinks()(). This is especially important for cases where system administrators have specified custom resources for pages in the portal, as we need to check the custom resources before adding the option to the context menu.
method CheckEnterpriseManager() as %Status
classmethod DoLogout() as %String [ ZenMethod ]
method DrawLocator(pSeed As %String) as %Status
Draw additional content in the locator bar.
method DrawRibbon(pSeed As %String) as %Status
Draw the contents of the tool ribbon. This is displayed if a subclass implements the OnGetRibbonInfo() callback.
final method DrawTitle(pSeed As %String) as %Status
Draw the contents of the title area. Dispatch to application class.
classmethod GetCSPURL(link As %String) as %String [ ZenMethod ]
Tranforms the link specified by link into a URL and returns it as a string
Define any context links for the page. Sub-class to override. Note that the subclass should call CheckContextLinks()() to ensure that the user is actually permitted to access all of the links - the pages may have custom resources defined that would prevent the user from seeing the page.
classmethod GetDocURL(pHelpAddress As %String) as %String [ ZenMethod ]
Given a HelpAddress, this method finds the DocBook Link and constructs the proper URL for the Doc page and return to the client to be displayed.
classmethod GetNewURL(pNS As %String, pPage As %String = "%25CSP.Portal.Home.zen") as %String [ ZenMethod ]
Given new namespace, return new URL with new $NAMESPACE. When changing namespace, always go back to Home page
because you don't know if the new namespace has or allows your current page.
Define any quick links for the page
method OnDrawRibbon() as %Status
This is called in the middle of rendering the tool ribbon. Subclasses can inject their own content into the ribbon by writing it out in this method. This content is best wrapped within a single td element. It can also consist of multiple td elements.

To achieve a fixed position for elements within the ribbon, for a fixed width page you can use a single enclosing td that contains a table and a single tr, with td elements inside that single tr that contain your content for the ribbon.

To achieve a fixed position for elements within the ribbon, for a page whose width varies depending on its contents (thereby stretching the ribbon) you can use multiple td elements to contain your content and then a final td element that is empty and has width 40% (or so) to push your contents towards the left and keep them in their proper locations.

method OnGetRibbonInfo(Output pDisplay As %Boolean, Output pViewIcons As %List, Output pSortOptions As %List, Output pSearchBox As %Boolean, Output pRibbonTitle As %String, Output pCommands As %List) as %Status
This callback, if implemented returns information used to display the standard ribbon bar.
pDisplay is true if the ribbon should be displayed.
pViewIcons is an array describing "view" buttons to display: pViewIcons(n) = $LB(id,help,icon)
pSortOptions is an array describing "sort" options to display: pSortOptions(n) = $LB(id,caption,help)
pSearch is true if a search box is displayed.
pRibbonTitle is a title to display.
pCommands is an array of command buttons to display: pCommands(n) = $LB(id,caption,help,onclick)
clientmethod changePassword() as %String [ Language = javascript ]
Show dialog to change password
clientmethod getPageTitle() as %String [ Language = javascript ]
Get the title string to add to the locator row. This should be implemented in a subclass.
clientmethod getTitleAreaHeight() [ Language = javascript ]
Return the height of the title area (titleBar plus locator).
clientmethod goHome() [ Language = javascript ]
Go to the home page.
clientmethod goMenu(link) [ Language = javascript ]
Go to the menu link.
clientmethod gotoNamespace(url) [ Language = javascript ]
Navigate to a new namespace in the portal.
clientmethod logout() [ Language = javascript ]
End the current session. If user has unsaved changes, prompt to save before process logout.
Navigate to a new page in the portal.
clientmethod onPopupAction(popupName, action, value) [ Language = javascript ]
Subclass need to include the case "switchNamespace" if it is enabling "Switch" next to namespace.
clientmethod onServerMethodError(err, errObject) [ Language = javascript ]
Custom handler for hyperEvent handlers to be (optionally) less intrusive if the cause of the error was an auto-refresh timer losing commectivity with the host.
clientmethod onloadHandler() [ Language = javascript ]
This client event, if present, is fired when the page is loaded.
clientmethod onlogoutHandler() [ Language = javascript ]
This client method, if defined and the AUTOLOGOUT parameter for this page is true, is invoked when the logout timer for this page fires.
If this method return true then the normal page logout behavior will fire. That is, the page will be reloaded causing a login page to appear if the current session has ended.
clientmethod onunloadHandler() [ Language = javascript ]
Inherited description: This client event, if present, is fired when the page is unloaded. If this method returns a string value, then that is used as the return value of the HTML page's onbeforeunload handler (if more than one component returns a string, the first one encountered is used).
clientmethod searchBlur(evt) [ Language = javascript ]
Blur event in search box.
clientmethod searchBoxHandler(searchKey) [ Language = javascript ]
Change in search box value. Can be overridden by subclasses.
clientmethod searchFocus(evt) [ Language = javascript ]
Blur event in search box.
clientmethod searchKeyDown(evt) [ Language = javascript ]
Key down in search box.
clientmethod searchKeyPress(evt) [ Language = javascript ]
Key press in search box.
clientmethod setConnectivityStatusMsg(msg) [ Language = javascript ]
clientmethod setModified(flag) [ Language = javascript ]
Set the modified flag for the page.
clientmethod setPageTitle(name) [ Language = javascript ]
Set the document name for the page.
clientmethod setSortMode(mode) [ Language = javascript ]
Change the current sort mode for the page.
clientmethod setSortModeHandler(mode) [ Language = javascript ]
Do the actual work of updating the view to match the current sort mode.
clientmethod setViewMode(mode) [ Language = javascript ]
Change the current display mode for this page. This is called by the icon buttons on the ribbon. This will call the setViewModeHandler() within a subclass.
clientmethod setViewModeHandler(mode, oldmode) [ Language = javascript ]
Do the actual work of updating the view to match the current view mode.
clientmethod showAbout() [ Language = javascript ]
Go to the about page.
clientmethod showContact() [ Language = javascript ]
Go to the about page.
clientmethod showHelp() [ Language = javascript ]
Show documentation.
clientmethod switchNamespace() as %String [ Language = javascript ]
Show dialog to switch namespace

Inherited Members

Inherited Properties

Inherited Methods


FeedbackOpens in a new tab