Interface JavaScriptCatalog
You can copy-paste the signature of the members of this interface in your own JavaScript code.
- Since:
- 5.7.1
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interface
A JavaScript object that holds a list of messages with different severities.static interface
Represents an HTML button generated by EBX® using a JavaUIButtonSpec
object. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Pops a modal dialog box that displays a message and an OK button.void
ebx_buttonUtils_setButtonDisabled
(JavaScriptCatalog.EbxHtmlButtonElement aButton, boolean setDisabled) Disables the given button.void
ebx_buttonUtils_setButtonWaitingMode
(JavaScriptCatalog.EbxHtmlButtonElement aButton, boolean setWaitingMode) Turns the given button into the waiting mode.void
ebx_confirm
(Object argsObj) Displays a modal dialog box that displays a question, a positive and a negative answer.void
Hides the current modal dialog box displayed withebx_dialogBox_show(Object)
.void
ebx_dialogBox_show
(Object argsObj) Displays a modal dialog box that displays optionally a header, a body or a footer.ebx_form_getNodeMessage
(String aPrefixedPath) Returns the list of messages currently displayed for the specified form node.ebx_form_getValue
(String aPrefixedPath) Returns the current value of the specified node, as set in the form.boolean
ebx_form_isNodeDefined
(String aPrefixedPath) Returnstrue
if the node is defined in the form,false
otherwise.void
ebx_form_setMandatoryIndicator
(String aPrefixedPath, boolean isDisplayed) Adds or removes a mandatory indicator (*) next to the label of the specified node to simulate that it is mandatory.void
ebx_form_setNodeMessage
(String aPrefixedPath, JavaScriptCatalog.EBX_ValidationMessage aMessageContainer) Displays a list of messages on a node.void
ebx_form_setValue
(String aPrefixedPath, Object aValue) Sets the value of the specified node from a JavaScript variable.ebx_getContainerWindow
(Object window) Returns the web component window hosting a user service, UIForm, custom widget or UIBean.ebx_getContentWindow
(Object window) Returns the window directly hosting the content displayed in the workspace.Checks if the native form has changes, and returns a warning message if so.void
Gets the title of the current workspace in which the component is running.void
ebx_setWorkspaceTitle
(String workspaceTitle) Sets the title of the current workspace in which the component is running.
-
Method Details
-
ebx_buttonUtils_setButtonDisabled
void ebx_buttonUtils_setButtonDisabled(JavaScriptCatalog.EbxHtmlButtonElement aButton, boolean setDisabled) Disables the given button.When a button is disabled, it is slightly transparent, and if the user clicks on it or activates it with the keyboard, nothing happens.
- Parameters:
aButton
- the button to enable or disable the waiting mode.setDisabled
- a JavaScript boolean,true
to set the button to disabled,false
to set the button to enabled.- See Also:
-
ebx_buttonUtils_setButtonWaitingMode
void ebx_buttonUtils_setButtonWaitingMode(JavaScriptCatalog.EbxHtmlButtonElement aButton, boolean setWaitingMode) Turns the given button into the waiting mode.When a button is in waiting mode, its icon is replaced by the small waiting icon animation. If the button has no icon, the waiting mode cannot be visible.
- Parameters:
aButton
- the button to enable or disable the waiting mode.setWaitingMode
- a JavaScript boolean,true
to enable the waiting mode,false
to disable the waiting mode.
-
ebx_getFormLostChangesWarning
String ebx_getFormLostChangesWarning()Checks if the native form has changes, and returns a warning message if so. This warning message is used when the user goes to another page or closes the browser without submitting the form.If no changes have been performed on the native form, this function returns
undefined
."Native form" stands for the main standard form of the product, which is omnipotent, and concerns the form of all pages contained in the workspace area, whether it is a record form,
UIForm
, dataset form, UIServiceUIFormSpec
, dataspace form, DMA form, workflow model form, permission form, administration form etc. All except for full table view and hierarchy view (which have no main form) and specific UIServices forms that are not usingUIFormSpec
.Code examples:
1. test if the form has changes in the current page
var warningMessage = ebx_getFormLostChangesWarning(); if (warningMessage === undefined) { // the native form has no change } else { // the native form has changes, it is possible to use the warningMessage to display it to have the alert(warningMessage); }
2. check if the form has changes in an iFrame before changing the src or destroy the iframe
var iframeEl = document.getElementById("my_sweet_iFrame_id"); var warningMessage = undefined; try { warningMessage = iframeEl.contentWindow.ebx_getFormLostChangesWarning(); } catch (e) {} if (warningMessage !== undefined) { // content window as been reached and its native form has been changed, ask the question to user if (confirm(warningMessage + "\n" + "Are you sure you want to close this iFrame?") === false) { return; // abandon } } // destroy iFrame iframeEl.parentNode.removeChild(iframeEl); // or change its src iframeEl.src = "http://the_next_page.i_want.to/display";
Note: the mechanism to check if the form has changes is the standard mechanism of the product, that includes:
- Returns:
- String the warning message of changes have been made on the native form,
or
undefined
if no change has been made on the native form
-
ebx_form_isNodeDefined
Returnstrue
if the node is defined in the form,false
otherwise.- Parameters:
aPrefixedPath
- path of the node, it should be obtained using the methodUIFormWriter.getPrefixedPath(Path)
; for backward compatibility, paths that are not prefixed are supported only for custom forms extendingUIForm
.- Since:
- 5.8.0
-
ebx_form_getValue
Returns the current value of the specified node, as set in the form.- Parameters:
aPrefixedPath
- path of the node, it should be obtained using the methodUIFormWriter.getPrefixedPath(Path)
; for backward compatibility, paths that are not prefixed are supported only for custom forms extendingUIForm
.- See Also:
-
ebx_form_setValue
Sets the value of the specified node from a JavaScript variable.- Parameters:
aPrefixedPath
- path of the node, it should be obtained using the methodUIFormWriter.getPrefixedPath(Path)
; for backward compatibility, paths that are not prefixed are supported only for custom forms extendingUIForm
.aValue
- the value to be set.- See Also:
-
ebx_form_setMandatoryIndicator
Adds or removes a mandatory indicator (*) next to the label of the specified node to simulate that it is mandatory. It does not add or remove neither constraints nor validation rules applied to the node.- Parameters:
aPrefixedPath
- path of the node, it should be obtained using the methodUIFormWriter.getPrefixedPath(Path)
; for backward compatibility, paths that are not prefixed are supported only for custom forms extendingUIForm
.isDisplayed
- a JavaScript boolean,true
to add a mandatory indicator,false
to remove a mandatory indicator.- Since:
- 6.0.0
- See Also:
-
ebx_form_setNodeMessage
void ebx_form_setNodeMessage(String aPrefixedPath, JavaScriptCatalog.EBX_ValidationMessage aMessageContainer) Displays a list of messages on a node.Please note that it will erase all previously set messages.
aMessageContainer
is a JavaScript object, that can be created and filled as follows:var msgs = new EBX_ValidationMessage(); msgs.errors = ["An error message"]; msgs.warnings = ['A warning message', 'A second warning message'];
- Parameters:
aPrefixedPath
- path of the node, it should be obtained using the methodUIFormWriter.getPrefixedPath(Path)
; for backward compatibility, paths that are not prefixed are supported only for custom forms extendingUIForm
.aMessageContainer
- the JavaScript object containing the list of messages. Must not benull
.- Since:
- 5.8.0
-
ebx_form_getNodeMessage
Returns the list of messages currently displayed for the specified form node.If path is invalid or node is missing, will return
null
.If no message is displayed, will return an empty
EBX_ValidationMessage
.- Parameters:
aPrefixedPath
- path of the node, it should be obtained using the methodUIFormWriter.getPrefixedPath(Path)
; for backward compatibility, paths that are not prefixed are supported only for custom forms extendingUIForm
.- Since:
- 5.8.0
-
ebx_alert
Pops a modal dialog box that displays a message and an OK button.By a click on the back or a press on the escape key, the user closes the dialog.
If the first argument message has many lines, separated by the JavaScript standard line separator "\n", only the first line will be used for the message, placed in the header part of the dialog box. The remaining lines will be separated by
<br/>
, and added to the body of the dialog box, before the optional otherLines.Code examples:
Displays the message "The record has been saved"
ebx_alert("The record has been saved");
Displays the message "The record has been saved" and adds a precision (2 ways to do the same thing)
ebx_alert("The record has been saved\nValues have been refreshed."); ebx_alert("The record has been saved", "Values have been refreshed.");
- Parameters:
aMessage
- String with HTML-single-line and not too longotherLines
- [optional] String with HTML-free-style to put in the body of the dialog box
-
ebx_confirm
Displays a modal dialog box that displays a question, a positive and a negative answer.By clicking back or pressing the Escape key, the user produces the negative answer.
If the field question has many lines, separated by the JavaScript standard line separator "\n", only the first line will be used for the question, placed in the header part of the dialog box. The remaining lines will be separated by
<br/>
, and added to the body of the dialog box, before the optional message.Code examples:
Ask a question and call a JavaScript function called "sendAJAXUpdate" if the answer is "yes" (many ways to do the same thing)
ebx_confirm({ question: "Do you want to refresh the value?", jsCommandYes: sendAJAXUpdate });
ebx_confirm({ question: "Do you want to refresh the value?", jsCommandYes: "sendAJAXUpdate('string_12');" });
ebx_confirm({ question: "Do you want to refresh the value?", jsCommandYes: function(){sendAJAXUpdate(fieldId);} });
Ask a question, call a JavaScript function called "sendAJAXUpdate" if the answer is "yes", and customize button labels
ebx_confirm({ question: "Do you want to refresh the value?", jsCommandYes: sendAJAXUpdate, labelYes: "Yes, please :)", labelNo: "No, thanks :|" });
Ask a question, call a JavaScript function called "sendAJAXUpdate" if the answer is "yes", customize button labels and call a JavaScript function if answer is "no"
ebx_confirm({ question: "Do you want to refresh the value?", jsCommandYes: sendAJAXUpdate, labelYes: "Yes, please :)", labelNo: "No, thanks :|", jsCommandNo: resetFieldDecorations });
- Parameters:
argsObj
- JSON Object that can contain these keys and values:
- question
- {mandatory} String with HTML-single-line and not too long
- message
- [optional] String with HTML-free-style to put in the body of the dialog box
- jsCommandYes
- {mandatory} a JavaScript function reference or JavaScript instructions in a String, to call if answer is positive
- labelYes
- [optional] String to overwrite the default positive label
- jsCommandNo
- [optional] a JavaScript function reference or JavaScript instructions in a String, to call if answer is negative
- labelNo
- [optional] String to overwrite the default negative label
-
ebx_dialogBox_show
Displays a modal dialog box that displays optionally a header, a body or a footer.By clicking on back or pressing the Escape key, a JavaScript command can be called.
The dialog box is not self-closing. To close it,
ebx_dialogBox_hide()
must be called.When the dialog box appears, its height and width is automatic (it fits the content of the 3 zones), and is centered on the screen. If the content of the dialog box is modified after the display, the height and width are stretched, but the dialog box is not automatically centered (resizing the window refreshes the centered position, but it's a workaround).
Code examples:
Ask for a file name before a data export
ebx_dialogBox_show({ header: "<h2>Export</h2>", body: "<div class=\"ebx_ContainerWithTextPadding\"><label for=\"inputFileNameId\">File name:</label> <input type=\"text\" id=\"inputFileNameId\" /></div>", footer: "<div class=\"ebx_DialogBoxFooterToolbar\"><button type=\"button\" onclick=\"readFileNameAndCloseDialog();\">OK</button></div>", focusId: "inputFileNameId", jsCommandClose: ebx_dialogBox_hide });
Use the content of a prepared small form (that could be generated with standard form API:
formRows
etc.)ebx_dialogBox_show({ header: "<h2>Export</h2>", body: document.getElementById("myPreparedSmallForm").innerHTML, footer: document.getElementById("myPreparedFooterToolbar").innerHTML, focusId: "defaultButtonIdInMyFooter", jsCommandClose: ebx_dialogBox_hide });
- Parameters:
argsObj
- JSON Object that can contain these keys and values:
- header
-
[optional] String with HTML-free-style to put in the header of the dialog box.
Recommended HTML wrapper:<h2> header content here </h2>
- body
-
[optional] String with HTML-free-style to put in the body of the dialog box
Recommended HTML wrapper:<div class="
ebx_ContainerWithTextPadding
"> body content here </div> - footer
-
[optional] String with HTML-free-style to put in the footer of the dialog box
Recommended HTML wrapper:<div class="
ebx_DialogBoxFooterToolbar
"> footer content (usually buttons) here </div> - focusId
- [optional] String element id to focus on display (usually the default button or an input field)
- jsCommandClose
- [optional] a JavaScript function reference or JavaScript instructions in a String, to call if the user clicks on back or presses the escape key
- See Also:
-
ebx_dialogBox_hide
void ebx_dialogBox_hide()Hides the current modal dialog box displayed withebx_dialogBox_show(Object)
.The dialog box is used by
ebx_alert(String, String)
andebx_confirm(Object)
. So, if an alert dialog box or a confirmation dialog box is displayed, the dialog box will be hidden by calling this method.- See Also:
-
ebx_setWorkspaceTitle
Sets the title of the current workspace in which the component is running. Allows to change the workspace title dynamically according to the user actions. Please note that the workspace in which the component is running can be NewUI or legacy. This function works in both cases.- Parameters:
workspaceTitle
- the workspace title to be set.- Since:
- 5.9.0 fix B
-
ebx_getWorkspaceTitle
void ebx_getWorkspaceTitle()Gets the title of the current workspace in which the component is running. Please note that the workspace in which the component is running can be NewUI or legacy. This function works in both cases.- Since:
- 5.9.0 fix B
-
ebx_getContainerWindow
Returns the web component window hosting a user service, UIForm, custom widget or UIBean. This method should be used instead of
window
because EBX® may insert intermediary frames.If the host is on a different domain, it will return the top EBX® frame on the same domain. In that case some security restrictions apply when accessing the result window parent.
Code example
A user service wants to redirect the current user to another page. JavaScript code from a user service may be:
var ebxWindow = ebx_getContainerWindow(); var ebxWindow.location.href = "http://....";
- Parameters:
window
- the current window for the user service, UIForm, custom widget or UIBean. If not defined, thethis
window will be used.- Returns:
- the window. May be the top window. It is never
undefined
ornull
. - Since:
- 5.9.0
-
ebx_getContentWindow
Returns the window directly hosting the content displayed in the workspace.
Code example
A page X displays EBX®, as a Web Component, in an iframe whose id is "MyEBX" . Page X is currently displaying a user service that displays its own iframe whose id is "MyIFrame".
Page X needs to access the iframe "MyIframe". JavaScript code from page X that retrieves the iframe "MyIFrame" may be:
var ebxIFrame = document.getElementById("MyEBX"); // The iframe hosting EBX® as a Web Component. var ebxContentWindow = ebxIFrame.contentWindow.ebx_getContentWindow(); // The window directly hosting the user // service. var myIFrame = ebxContentWindow.document.getElementById("MyIFrame"); // The iframe created by the user service.
- Parameters:
window
- the EBX® Web Component window. If not defined, thethis
window will be used.- Returns:
- the content window. Is
null
if no content is displayed or ifwindow
is not an EBX® Web Component. - Since:
- 5.9.0
-