Class Reference
EnsPortal.Template.devPage
Server:appadmin-00044-deployment-6bf4cbc86d-9f4xc
Instance:IRIS
User:SuperUser
 
-
  [USER] >  [EnsPortal] >  [Template] >  [devPage]
Private  Storage

abstract class EnsPortal.Template.devPage extends EnsPortal.Template.standardPage, %CSP.Portal.SourceControl.Base, %ZEN.Component.dataView

Template for pages which need to be able to interact with Source Control hooks. This class extends the basic source control interactions implemented in %CSP.Portal.SourceControl.Base, which should be the primary reference for implementing pages that need to interact with source control hooks.

Inventory

Parameters Properties Methods Queries Indices ForeignKeys Triggers
2 18 24


Summary

This is a Zen Page class. It belongs to the application EnsPortal.Application.

Properties
%condition %controller %import %includeFiles
%page %resource HelpAddress ISREADONLY
LocatorHeader ParentURL StdTitle aboutPage
align aux backgroundTimerInterval canEdit
cellAlign cellSize cellStyle cellVAlign
children composite contactPage containerStyle
controller controllerId cssLevel currSortMode
currStep currViewMode currentNamespace currentProject
currentUser disabled dragAndDrop dragEnabled
dropEnabled enableAutoRefresh enclosingClass enclosingStyle
error groupClass groupStyle hasSCOutput
height hidden hint hintClass
hintStyle home homePage id
index keepAliveInterval label labelClass
labelDisabledClass labelPosition labelStyle layout
lblTitle limitPopups msgDocReadOnly msgNotPermitted
name needProject onafterdrag onbeforedrag
onclick ondrag ondrop onhide
onnotifyView onrefresh onshow onupdate
pageModified parent readOnly readOnlyReason
renamed searchKey showLabel slice
sourceControlEnabled sourceControlManagerDialog sourceControlNewlineFormat sourceControlOutputDialog
sourceControlVisible studioMode tipCSVWizard tipCompile
tipContractAll tipDelete tipExpandAll tipExport
tipGen tipImport tipImportLegacy tipNew
tipOpen tipSave tipSaveAs title
tuple useSVG useSoftModals valign
visible width window zenPersistentPopup

Methods
%AddCSPShareHyperevents %AddChild %AddChildAfter %AddChildBefore
%AddComponent %AddEnsExceptionHandler %AddImportedComponents %AddLocatorLinks
%AddToSaveSet %ApplyURLParms %Attr %BindExport
%ClassIsLatestVersion %ClassName %ConstructClone %DispatchClassMethod
%DispatchGetModified %DispatchGetProperty %DispatchMethod %DispatchSetModified
%DispatchSetMultidimProperty %DispatchSetProperty %DrawAutoLogout %DrawClassDefinitions
%DrawComponentHTML %DrawHTML %DrawHTMLPage %DrawJSStrings
%DrawObjectDefinitions %DrawSourceControlCommands %DrawSourceControlHead %DrawSourceControlJS
%DrawSourceControlStyle %EnclosingDivId %EndBackgroundMethod %EndScript
%Eval %EvalC %Extends %ForceClientRender
%GetChildIndex %GetComponent %GetComponentById %GetComponentByName
%GetEventHandlers %GetHomePage %GetHomeParam %GetLinks
%GetLocatorLinks %GetPageName %GetParameter %GetProductName
%GetRootLink %GetValueById %GetValueByName %GetXMLName
%IsA %IsModified %Link %LinkCSS
%LinkScript %MakeId %New %NormalizeObject
%ObjectModified %OnAddToPageAfter %OnAddToPageBefore %OnAfterCreatePage
%OnBeforeCreatePage %OnCreateApplication %OnCreatePage %OnDetermineCSSLevel
%OnDrawEnclosingDiv %OnDrawHTMLBody %OnDrawHTMLHead %OnDrawHTMLMeta
%OnDrawObjectProperties %OnFinishBackgroundTask %OnGetPageName %OnGetProductName
%OnGetSmallMenu %OnGetTitle %OnMonitorBackgroundTask %OnMutateChildren
%OnObjectSynch %OnPreHTTP %OnSubmit %OnUseSoftModals
%OnZENDeserialize %OriginalNamespace %PackageName %QuoteValue
%QuoteValueL10N %Register %RemoveChild %RemoveChildren
%RemoveComponent %RemoveFromSaveSet %RunBackgroundMethod %Self
%SerializeObject %SetBackgroundMethodStatus %SetErrorById %SetErrorByName
%SetModified %SetValueById %SetValueByName %SetValuesByName
%StartScript %ValidateObject %ZENVersion AfterUserAction
AppendSourceControlOutput BuildMenu CheckAllBlanks CheckContextLinks
CheckEnterpriseManager ClearSourceControlOutput ConvertParameter CreateProject
CreateSourceControl Decrypt DoLogout DocumentLoad
DocumentSave DrawLocator DrawRibbon DrawTitle
Encrypt EscapeHTML EscapeURL EvalResult
GetCSPURL GetContextLinks GetCurrentProject GetDocURL
GetFullProjectName GetHomePage GetHyperEventResources GetInternalName
GetNewURL GetQuickLinks GetSourceControlClass GetSourceControlCommands
GetTimestamp HaveSourceControlOutput HyperEventCall HyperEventHead
Include InsertHiddenField InsertHiddenFields IsDocReadOnly
IsEnabled IsPrivate IsProjectRequired IsSourceControlReadOnly
JavaInstalled Link LoadProject OnDrawRibbon
OnGetRibbonInfo OnHTTPHeader OnPage OnPageError
OnPostHTTP OnPostHyperEvent OnPreHTTP OnPreHyperEvent
Page QuoteJS RegisterRecent RewriteURL
SetCurrentProject SetProjectRequired ShowError SimpleKeepAlive
StartTimer StopTimer ThrowError UnescapeHTML
UnescapeURL UpdateSCMenus UserAction XMLDTD
XMLExport XMLExportToStream XMLExportToString XMLNew
XMLSchema XMLSchemaNamespace XMLSchemaType addChild
addChildAfter addChildBefore addPopupSuffix appendServerOutput
arrowClick canUserModify cancelPopup changePassword
changeURLNamespace checkEdit checkStudioHyperEvents checkTextControls
childrenMutated chooseSCMenu chooseSCProject clearSCOutput
clientKeepAlive correctIELayering createComponent createComponentNS
createSCMenuItem createSCProject createSCSubMenu createTimeWarning
deleteComponent disableCommandButton displayCountDown dragFinishHandler
dragHandler dragNotifyHandler dragStartHandler dropHandler
dropStartHandler enableCommandButton endModal escapeCData
exposeComponent findElement fireOnResizeEvent fireOnUnloadEvent
fireOnUpdateEvent firePopupAction fixDocumentTitle getChildIndex
getClientModel getComponent getComponentById getController
getCurrentExtension getCurrentName getEnclosingDiv getHidden
getHintElement getIsReadOnly getLabelElement getOpener
getPageTitle getProperty getReadOnlyReason getSaveAction
getSettings getTitleAreaHeight getType goHome
goMenu gotoNamespace gotoPage grayOutButtons
hideCommandButton hideTimeoutWarning hideWarnContinue inResizeLoop
initPopupSuffix initializeSourceControl initializeTextMonitor invokeAfterUserAction
invokeSourceControl invokeSuper isOfType launchPopupWindow
loadDocument logout makeId manualKeepAlive
navigate onCreate onDelete onDisplayHandler
onDocumentLoad onDocumentLoadComplete onDocumentSave onDocumentSaveComplete
onEndModalHandler onPopupAction onRefreshContents onSerialize
onServerMethodCall onServerMethodError onServerMethodReturn onStartModalHandler
ondisabledHandler onhandleAutoLogoutWarn onkeydownHandler onkeyupHandler
onlayoutHandler onloadHandler onlogoutHandler onoverlayHandler
onresizeHandler onunloadHandler onupdateHandler popupActionHandler
raiseEvent refreshContents reloadDocument removeChild
removePopupSuffix render renderContents renderSVG
saveDocument searchBlur searchBoxHandler searchFocus
searchKeyDown searchKeyPress sendEventToController setComponentId
setConnectivityStatusMsg setControllerId setHidden setModified
setOverlayMode setPageTitle setProperty setPropertyAll
setReadOnly setResultsDiv setSCProject setSortMode
setSortModeHandler setTraceOption setViewMode setViewModeHandler
setWarnInnerHTML showAbout showCommandButton showContact
showDocumentation showHelp showSCMenu showSCOutput
showTimeoutWarning startKeepAlive startModal startProgressBar
stopKeepAlive stopProgressBar switchNamespace textControlKeyDown
textControlKeyUp toggleReadOnly toggleSVGElements updateDocumentState
updateJSONSCReadOnly updateSCIndicator warnclickListener

Subclasses
EnsPortal.BPLEditor EnsPortal.ComplexRecordMapper EnsPortal.DTLEditor
EnsPortal.EDI.devTemplate EnsPortal.LookupSettings EnsPortal.RecordMapper
EnsPortal.RuleEditor

Parameters

• parameter MANAGERDIALOG = "EnsPortal.Dialog.SourceControlManager.zen";
Page to use for managing popups requested by the source control framework.
• parameter OUTPUTDIALOG = "EnsPortal.Dialog.SourceControlOutput.zen";
Page to use for displaying output from the server.

Properties

• property msgDocReadOnly as %ZEN.Datatype.caption [ InitialExpression = $$$TextJS("This document is read only") ];
• property onnotifyView as %ZEN.Datatype.eventHandler [ InitialExpression = "zenPage.onDocumentReload(reason)" ];
onnotifyView event handler: This event is fired when a dataController connected to this dataView raises an event.
• property studioMode as %ZEN.Datatype.boolean(ZENURL="STUDIO");
• property tipCSVWizard as %ZEN.Datatype.caption [ InitialExpression = $$$Text("Create a new document from a sample") ];
• property tipCompile as %ZEN.Datatype.caption [ InitialExpression = $$$Text("Compile this document into executable code") ];
• property tipContractAll as %ZEN.Datatype.caption [ InitialExpression = $$$Text("Contract the diagram") ];
• property tipDelete as %ZEN.Datatype.caption [ InitialExpression = $$$Text("Delete the current document") ];
• property tipExpandAll as %ZEN.Datatype.caption [ InitialExpression = $$$Text("Expand the diagram") ];
• property tipExport as %ZEN.Datatype.caption [ InitialExpression = $$$Text("Export the current document to a file") ];
• property tipGen as %ZEN.Datatype.caption [ InitialExpression = $$$Text("Save this document and generate classes") ];
• property tipImport as %ZEN.Datatype.caption [ InitialExpression = $$$Text("Import a document from a file") ];
• property tipImportLegacy as %ZEN.Datatype.caption [ InitialExpression = $$$Text("Import a document from a file that was exported in legacy format") ];
• property tipNew as %ZEN.Datatype.caption [ InitialExpression = $$$Text("Create a new document") ];
• property tipOpen as %ZEN.Datatype.caption [ InitialExpression = $$$Text("Load an existing document") ];
• property tipSave as %ZEN.Datatype.caption [ InitialExpression = $$$Text("Save this document") ];
• property tipSaveAs as %ZEN.Datatype.caption [ InitialExpression = $$$Text("Save this document with a new name") ];

Methods

• method %OnAfterCreatePage() as %Status
Determine whether source control is enabled and ensure we don't write out the session cookie if we are running in Studio mode.
• method %OnDrawHTMLHead() as %Status
Add the EnsException error handling on the client.
• method %OnDrawHTMLMeta() as %Status
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).
• classmethod GetHyperEventResources(pMethod As %String = "") as %String
Callback to return a list of resources required for a specific HyperEvent. The user must have sufficient privileges on one of the resource/permission pairs to be permitted to execute the hyperevent. An empty string implies the user already has sufficient privileges for the ZenMethod specified in pMethod.
• method IsDocReadOnly() as %Boolean [ ZenMethod ]
• method OnDrawRibbon() as %Status
Use %DrawSourceControlCommands() to render the extra source control options in the tool ribbon.
• classmethod OnPreHyperEvent(class As %String, method As %String) as %Status
Avoid writing out the session cookie if we are in a Studio session.
• method canUserModify(saveAs) [ Language = javascript ]
Test if the user has write privilege.
• method checkStudioHyperEvents() [ Language = javascript ]
• method escapeCData(text) [ Language = javascript ]
• method fixDocumentTitle() [ Language = javascript ]
• method getIsReadOnly() as %Boolean [ Language = javascript ]
• method getPageTitle() as %String [ Language = javascript ]
Get the title string to add to the locator row. This should be implemented in a subclass.
• method grayOutButtons() [ Language = javascript ]
Gray out ribbon buttons 'Save', 'Save As', 'Compile', and 'Delete'. Invoked in case of read-only mode.
• method onloadHandler() [ Language = javascript ]
Add check to ensure that we correctly load documents on the client when source control hooks are in use. Also set up a timer to ensure we don't hit timeouts while editing documents in Studio, as well as When in Studio mode, also detect whether we are running IE10, as we need to save documents differently if that is the case.
• method raiseEvent(type, value) [ Language = javascript ]
Note that special handling is required for the LOADCOMPLETE event. We need to ensure that Studio gets the LOADCOMPLETE event, as well as updating the document title later to ensure the correct reload behaviour. The timeout is extra-long for IE9 and up because the main page's onload() sequence may be triggered before the SVG is fully loaded, so we need to build in enough time to let the SVG load before we update the title.
• method setModified(flag) [ Language = javascript ]
Set the modified flag for the page.
• method setReadOnly(readOnly) [ Language = javascript ]
Set readOnly to the value of readOnly. Subclasses MUST implement this method to update the controls on the page so that the page's behaviour actually matches the value of the readOnly flag.
• method setResultsDiv(type, value, usingDOMElement) [ Language = javascript ]
Set data into the results element for Studio. Note that usingDOMElement should only be true under IE10.
• method toggleReadOnly() [ Language = javascript ]
• method toggleSVGElements(show) [ Language = javascript ]
Helper method to hide or show SVG elements when opening a popup. This is primarily to ensure that we don't run into issues with IE and the Adobe plugin when the popup window also uses SVG.
• method updateJSONSCReadOnly(jsonObject) [ Language = javascript ]


Copyright (c) 2025 by InterSystems Corporation. Cambridge, Massachusetts, U.S.A. All rights reserved. Confidential property of InterSystems Corporation.