Home > Class Reference > ENSLIB namespace > EnsPortal.Template.devPage
Private  Storage   


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

Template for Ensemble 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.


Parameters Properties Methods Queries Indices ForeignKeys Triggers
2 16 21


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

%condition %import %includeFiles %page
%resource HelpAddress ISREADONLY LocatorHeader
ParentURL StdTitle aboutPage align
aux backgroundTimerInterval canEdit cellAlign
cellSize cellStyle cellVAlign children
composite containerStyle cssLevel currSortMode
currStep currViewMode currentNamespace currentProject
currentUser disabled dragAndDrop dragEnabled
dropEnabled 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 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

%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
%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 GetDocPage GetFullProjectName
GetHomePage GetHyperEventResources GetInternalName GetNewURL
GetQuickLinks GetSourceControlClass GetSourceControlCommands GetTimestamp
HaveSourceControlOutput HyperEventCall HyperEventHead Include
InsertHiddenField InsertHiddenFields IsDocReadOnly IsEnabled
IsPrivate IsProjectRequired IsSourceControlReadOnly 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 deleteComponent disableCommandButton dragFinishHandler
dragHandler dragNotifyHandler dragStartHandler dropHandler
dropStartHandler enableCommandButton endModal escapeCData
exposeComponent findElement fireOnResizeEvent fireOnUnloadEvent
fireOnUpdateEvent firePopupAction fixDocumentTitle getChildIndex
getClientModel getComponent getComponentById getCurrentExtension
getCurrentName getEnclosingDiv getHidden getHintElement
getIsReadOnly getLabelElement getOpener getProperty
getReadOnlyReason getSaveAction getSettings getTitleAreaHeight
getType goHome goMenu gotoNamespace
gotoPage grayOutButtons hideCommandButton inResizeLoop
initPopupSuffix initializeSourceControl initializeTextMonitor invokeAfterUserAction
invokeSourceControl invokeSuper isOfType launchPopupWindow
loadDocument logout makeId navigate
onCreate onDelete onDisplayHandler onDocumentLoad
onDocumentLoadComplete onDocumentSave onDocumentSaveComplete onEndModalHandler
onPopupAction onRefreshContents onSerialize onServerMethodCall
onServerMethodError onServerMethodReturn onStartModalHandler ondisabledHandler
onkeydownHandler onkeyupHandler onlayoutHandler onloadHandler
onlogoutHandler onoverlayHandler onresizeHandler onunloadHandler
onupdateHandler popupActionHandler raiseEvent refreshContents
reloadDocument removeChild removePopupSuffix render
renderContents renderSVG saveDocument searchBlur
searchBoxHandler searchFocus searchKeyDown searchKeyPress
setComponentId setConnectivityStatusMsg setHidden setModified
setOverlayMode setPageTitle setProperty setPropertyAll
setReadOnly setResultsDiv setSCProject setSortMode
setSortModeHandler setTraceOption setViewMode setViewModeHandler
showAbout showCommandButton showDocumentation showHelp
showSCMenu showSCOutput startKeepAlive startModal
startProgressBar stopKeepAlive stopProgressBar switchNamespace
textControlKeyDown textControlKeyUp toggleReadOnly toggleSVGElements
updateDocumentState updateSCIndicator

EnsPortal.BPLEditor EnsPortal.ComplexRecordMapper EnsPortal.DTLEditor
EnsPortal.LookupSettings EnsPortal.RecordMapper EnsPortal.RuleEditor


• 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.


• property msgDocReadOnly as %ZEN.Datatype.caption [ InitialExpression = $$$TextJS("This document is read only") ];
• 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") ];


• 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
Ensure that we force Internet Explorer to use its most recent rendering engine, except if we are in Studio, in which case we don't want IE10 and IE11 as we have issues with the way it present XML to Studio.
• 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 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.