Methods
-
Form.addPreviewDDSData(serviceName, dataOrHandler)
-
Add stub to handle DynamicData calls within preview
Parameters:
Name Type Description serviceNamestring Service name to mock up for DynamicData.call() or Transact function call type dataOrHandlerObject | function Result object or handler function that allows conditional results based on parameters - Since:
-
- Maestro 20.11.0
Examples
When you pass in a data object it is returned when you invoke DynamicData.call("serviceName").
Form.addPreviewDDSData("myService", { 'prop1': 'myValue' } ); DynamicData.call("myService").then(function(result) { // when this is called result will be { 'prop1': 'myValue' } }When you pass in a function, it gets the params passed in so you can do conditional logic to test different paths.
Form.addPreviewDDSData("myService", function(params) { if (params.myProp == "someValue") { return { operationResult: "success" } } else { return { operationResult: "failure" } } } ); DynamicData.call("myService", { myProp: "someValue" }).then(function(result) { // result.operationResult == "success" } -
Form.addRepeatInstance(item, repeatData [, transferFocus])
-
Adds an instance to a repeatable item. You can optionally cause focus to be transferred to the first focusable field of the new instance.
Parameters:
Name Type Argument Description itemstring | Object The repeat item, can be a data path, item id or the item object. repeatDataArray The data context array of the repeat data. E.g. data.repeat transferFocusboolean <optional>
If `true`, focus will be transferred to the next instance. Returns:
Returns the repeat data instance object. -
Form.availableRoutes()
-
Gets a form's available job routes.
Returns:
Returns an array of the available job routes in the form.- Type
- Array
-
Form.backgroundSave()
-
Performs a background save of the form data to Transact Manager.
Returns:
Returns a promise of the result.- Type
- Promise
Example
Form.backgroundSave();
-
Form.cacheData(itemOrId [, data])
-
Gets a cache of data from the specified item in the specified data context.
Parameters:
Name Type Argument Default Description itemOrIdstring | Object dataObject <optional>
Form.data Returns:
Returns the cache of data for the specified item.- Type
- Object
-
Form.clearValidationErrors(itemOrId [, data])
-
Clears validation on the provided field (and its children) and broadcasts the validation display event.
Parameters:
Name Type Argument Default Description itemOrIdstring | Object An id or item reference to the block/field to clear the validation on. dataobject <optional>
Form.data The data reference to the block/field to clear the validation on. -
Form.convertToFieldDataMap(fieldRefMap, data)
-
Takes in the fieldRefMap property array and converts to an object which can be used for dynamic data calls
Parameters:
Name Type Description fieldRefMapA property reference to the fieldRefMap. dataObject The data source. Returns:
Returns an object that can be used in a dynamic data call.- Type
- Object
-
Form.copyData(fromItem, fromData, toItem, toData)
-
Copies the values of component fields from one item (and its data context) to another. Item component types must match and have been published with pubIds. Ignores any fields not in the component definition.
Parameters:
Name Type Description fromItemstring | Object An id or item reference to the source item. fromDataA reference to the source data. toItemstring | Object An id or item reference to the target item. toDataA reference to the target data. -
Form.emailOperation(operationName [, opItemId], emailAddressId, senderNameId, emailBodyId)
-
Notifies Transact Manager that the form an email to be sent.
Parameters:
Name Type Argument Description operationNamestring emailShareForm, emailSavedForm or emailReceipt. opItemIdstring <optional>
If set the response will set a $responseStatus and $responseMessage on the data item specified. emailAddressIdstring The email addresses to send to, these will get validated (Must be in an email field). senderNameIdstring The senders name. emailBodyIdstring The email body. Returns:
Returns a promise of the result.- Type
- Promise
-
Form.fireRule(ruleType, itemOrItemId [, data] [, responseData])
-
Manually fires a form rule. The list of general rule types for fields/blocks are below, widgets can define their own type ruleType values.
Rule Type Rule Name click Click focus Focus blur Blur change Change sh Visibility us Editability ok Validation chok Validation After Change eq Calculation md Mandatory md Mandatory dc Dynamic Class Parameters:
Name Type Argument Default Description ruleTypestring The rule type to fire. itemOrItemIdstring | Object The item or item id that has the rule. dataObject <optional>
Form.data The data of the item (can leave as data in most cases). responseDataObject <optional>
Used to push in data from a data call to an on success or on failure handler.
Form.focusOnFirstHeading( [element] [, failHandler])
Transfers focus to the first heading on the page. Uses the `tabindex` attribute to determine what heading is first. If a heading isn't found, this method will call the `failHandler` method (if it exists).Parameters:
Name Type Argument Description elementstring <optional>
The element to search for headings. If `undefined`, the method will search globally. failHandlerfunction <optional>
The handler to call if no headings are found. Example
Form.focusOnFirstHeading();
Form.getBlockData(item [, data])
Gets a data object of a block's child values. Useful for dynamic data call parameters. Only handles simple values of a block's immediate children. It will not recurse down to create a nested data structure.Parameters:
Name Type Argument Default Description itemstring | Object The ID or item reference of the block. dataObject <optional>
Form.data Optional data context, if not provided will use the base form data context. Returns:
Returns an object of a block's child values.- Type
- Object
Form.getCurrentPageId()
Gets the ID of the current page.Returns:
Returns the ID of the current page (or a blank string if a page is not initialized).- Type
- string
Examples
When the ID of the page is "page1".
Form.getCurrentPageId(); // => "page1"
When a page is not initialized.
Form.getCurrentPageId(); // => ""
Form.getCurrentPageNumber()
Gets the current visible page number in the navigation menu.Returns:
Returns the current visible page number or `null` if there are no pages.- Type
- integer | null
Examples
On the first page.
Form.getCurrentPageNumber(); // => 1
When there are no pages.
Form.getCurrentPageNumber(); // => null
Form.getDataXml(prettify, excludeSfmData [, dataObj])
Retrieves the form data as an XML string.Parameters:
Name Type Argument Description prettifyboolean If `true`, the XML will be returned in a prettified format. excludeSfmDataboolean If `true`, the SFMData will be excluded from the result. dataObjObject <optional>
Used if a specific data object needs to be returned. If blank, the whole form data will be sent. Returns:
Returns the form data as an XML string.- Type
- string
Form.getDisplayValue(elementOrId, data)
Gets the display value of an item or element.Parameters:
Name Type Description elementOrIdMust be an element or an id dataObject Must be provided when passing in an id string Returns:
Returns the display value of the item or element.- Type
- string
Form.getEntityData(path [, onlySubmittedData])
Get an entity data object for the given entity path.Parameters:
Name Type Argument Description pathstring onlySubmittedDataboolean <optional>
Returns:
Returns an entity data object.- Type
- Object
Form.getFieldRefPropValue(itemOrPath, prop)
Gets the value of a field targeted by the field ref property of another field.Parameters:
Name Type Description itemOrPathstring | Object The field with the field ref property propstring The property name Returns:
Returns the current value of the field targeted by the field ref property.- Type
- *
Form.getImagesByName(imageName)
Get all images in the form with the specified name, images with a specified name can have several attributes updated at runtime and the changes will be reflected in the form. To get help with updating the image itemsParameters:
Name Type Description imageNamestring Image name as defined on an image widget in the form. - Since:
-
- Maestro 21.11.0
Returns:
Returns an array of items with the item property 'imageName' that are non-blank.- Type
- Array
Example
When you pass in a data object it is returned when you invoke DynamicData.call("serviceName").
var logos = Form.getImagesByName("orgLogo"); logos.forEach(function (item) { console.log(item.properties.imgUrl) } *
Form.getItemFromPath(path)
Return an item object from its data path. An item object contains an item's label and properties.Parameters:
Name Type Description pathstring The path to the data of an item e.g. "data.myField". Returns:
Returns the item's object.- Type
- Object
Example
Form.getItemFromPath("data.firstName"); // => { // clearHidden: "no", // htmlLabel: "First Name", // id: "firstName", // jsFiles: [], // label: "First Name", // mandatory: false, // offset: {xs: 0, sm: 0, md: 0, lg: 0}, // path: "FirstName", // properties: {inputType: "text", maxLength: "", preventCopyPaste: false, placeholder: "", helpText: ""}, // publishOptions: {}, // repeatingData: false, // span: {md: 6, lg: 6, xs: 12, sm: 12}, // type: "text-input" // }
Form.getItemProperty(pathOrItem, propName)
Get the value of an item's property.Parameters:
Name Type Description pathOrItemstring | Object An item or the path of an item. propNamestring The name of the property. Returns:
Returns the value of the item's property.Examples
Form.getItemProperty(Form.items.firstName, "inputType"); // => "text"
Form.getItemProperty("data.firstName", "inputType"); // => "text"
Form.getNavPageCount()
Gets the number of the visible pages in the navigation menu.Returns:
Returns the number of pages visible in the navigaion menu.- Type
- integer
Example
Form.getNavPageCount(); // => 1
Form.getNavPages()
Get an array of pages visible in the navigation menu.Returns:
Returns an array of the pages visible in the navigation menu.- Type
- Array
Example
Form.getNavPages(); // => [ // { htmlLabel: "Page One", id: "page_one", label: "Page One", … }, // { htmlLabel: "Page Two", id: "page_two", label: "Page Two", … } // ]
Form.getPathData(path [, source])
Gets the data from an item.Parameters:
Name Type Argument Default Description pathstring The data path of an item, such as "data.myField". sourceObject <optional>
Form.data The data context to which the path is relative - defaults to Form.data if not supplied Returns:
Returns the data found at the specified path.- Type
- Object
Examples
Getting the value from a text field.
Form.getPathData("data.firstName"); // => "David"When a path doesn't exist.
Form.getPathData("data.someRandomPath"); // => null
Form.getRepeatData(itemOrId, data [, filterMethod])
Gets the data for a given item within a repeat.Parameters:
Name Type Argument Description itemOrIdstring | Object The data path to the item or the item object within a repeat. dataThe data context from which this method is called from. filterMethodfunction <optional>
An optional handler to filter the results. Returns:
Returns an array of the repeated item's data.- Type
- Array
Form.getSelectionLabel(dataPath, data)
Gets the label of a selection list.Parameters:
Name Type Description dataPathstring The data path of the item that has the selection list. dataThe data source. Returns:
Returns the label of the selection list.- Type
- string
Form.getSystemData( [name])
Gets a System Profile value.Parameters:
Name Type Argument Description namestring <optional>
The name of a Sytem Profile property. Returns:
Returns the value of a System Profile property, or if the name of a property hasn't been supplied, the entire System Profile object is returned.- Type
- Object
Examples
Form.getSystemData(); // => { // ComposerDataVersion: "2000-03-31T14:00:00.000Z" // DisplayMode: "Entry" // FormCode: "avokabasetemplate" // FormDataServiceURL: "/maguire/servlet/FormDynamicDataServlet" // … // }Form.getSystemData("FormCode"); // => avokabasetemplateForm.getSystemData("FakeProperty") // => null
Form.getXmlPath(item)
Gets the XML path of an item, including path components provided by parent containers.Parameters:
Name Type Description itemObject The item to get the XML path for. Returns:
Returns the XML path of the item or `null` if the item doesn't exist.- Type
- string | null
Examples
Form.getXmlPath(Form.items.firstName) // => "FirstName"
When the item doesn't exist.
Form.getXmlPath(Form.items.fakeItem) // => null
Form.goToNextError()
Scrolls to the next error in the form.Example
Form.goToNextError();
Form.goToPage(pageIdOrNo [, skipValidation] [, skipScrollFocus])
Navigates to the specified page.Parameters:
Name Type Argument Description pageIdOrNostring | integer A page number or ID. skipValidationboolean <optional>
If `true`, page validation will be skipped. skipScrollFocusboolean <optional>
If `true`, the default scrolling and focus management will be skipped. Returns:
Returns a promise that resolves if the page changes successfully.- Type
- Promise
Form.hasRule(ruleType, itemOrItemId)
Checks if the specified rule type has been assigned to the specified item.Parameters:
Name Type Description ruleTypestring The type of rule to check for. itemOrItemIdstring | Object Returns:
Returns `true` if the specified rule type exists for the specified item.- Type
- boolean
Example
Checking if the Form component has a "load" rule.
// Referring to the item itself Form.hasRule("load", Form.items.AvokaSmartForm); // Referring to the ID of the item Form.hasRule("load", "AvokaSmartForm");
Form.hasRuleInAncestry(ruleType, itemOrId)
Checks if the specified rule type has been assigned to the specified item or any of the specified item's ancestors.Parameters:
Name Type Description ruleTypestring The type of rule to check for. itemOrIdstring | Object Returns:
Returns `true` if the specified rule type exists for the specified item or for any of the specified item's ancestors.- Type
- boolean
Form.isAuthenticatedUser()
Checks if the form was opened from an authenticated user session.Returns:
Returns `true` if the user is authenticated.- Type
- boolean
Examples
When the user is authenticated.
Form.isAuthenticatedUser(); // => true
When the user is not authenticated.
Form.isAuthenticatedUser(); // => false
Form.isFieldWorker()
Checks if the form is running within the context of Avoka Transact Field App.Returns:
Returns `true` if the form is hosted in Avoka Transact Field App.- Type
- boolean
Form.isStep(steps)
Checks if the current collaboration job step name equals a supplied string or is an item in a supplied array.Parameters:
Name Type Description stepsstring | Array A step name (as a string) or an array of step names. Returns:
Returns `true` if the current collaboration job step name equals a supplied string or is an item in a supplied array.- Type
- boolean
Form.isVisible(itemOrId, data)
Determine if the given item is visible for the given data context based on the form's visibility rules.Parameters:
Name Type Description itemOrIdstring | Object dataReturns:
Returns `true` if the item -- or any ancestor of the item -- is visible. Does NOT take account of other non-visibility-rule mechanisms such as whether the item is on another page, or other similar native-component internal display logic.- Type
- boolean
Examples
When items are visible.
Form.isVisible(Form.items.firstName) // => true Form.isVisible("data.firstName") // => trueWhen items are not visible.
Form.isVisible(Form.items.firstName) // => false Form.isVisible("data.firstName") // => false
Form.loadAllPages()
Loads all pages of a dynamic page loading form.Returns:
- Type
- Promise.<void>
Form.loadCachedData(cache [, data])
Loads the provided cache (made using cacheData) into the provided data context or the top level form data if none provided.Parameters:
Name Type Argument Default Description cachedataObject <optional>
Form.data
Form.loadPage(id)
Dynamically loads a page.Parameters:
Name Type Description idstring
Form.redirect(redirectTarget [, redirectParent])
Redirects the form to a URL.Parameters:
Name Type Argument Description redirectTargetstring The URL to redirect to. redirectParentboolean <optional>
If `true`, the window's parent will be redirected. Examples
Form.redirect("https://google.com")Form.redirect("https://google.com", true)
Form.removeRepeatInstance(item, data [, index] [, transferFocus])
Removes an instance from a repeatable item.Parameters:
Name Type Argument Description itemstring | Object The repeat item, can be a data path, item id or the item object dataArray The data context array of the repeat data or the data of the instance. E.g. data.repeat or data (to delete an instance from within a repeat) indexinteger <optional>
The index to delete. If not supplied the last instance will be removed. If within a repeat and not supplied, the current index will be removed. transferFocusboolean <optional>
If `true`, focus will be transfered to the previous repeat instance.
Form.resumeForm(validationRefId, trackingCodeId, challengeAnswerId)
Notifies Transact Manager that the form is attempting to acess another saved submission. Will redirect if successful.Parameters:
Name Type Description validationRefIdstring ID of the item to validate, usually the container of the tracking code and save challenge fields. trackingCodeIdstring The Tracking Code of the submission challengeAnswerIdstring The challenge answer required, set to blank if not set.
Form.setInstanceCount(item, repeatData, desiredCount)
Modifies the current instance count to match the desired count. Instances are added or removed make the number of instances match the count.Parameters:
Name Type Description itemstring | Object The repeat item, can be a data path, item id or the item object repeatDataThe data context array of the repeat data. E.g. data.repeat desiredCountinteger The requested number of instances
Form.setPathData(path, data [, source])
Sets the data of an item.Parameters:
Name Type Argument Default Description pathstring The path to the data item. data* The data value to assign to the item. sourceObject <optional>
Form.data The data context to which the path is relative - defaults to Form.data if not supplied Examples
Set the value of a text field to "David".
Form.setPathData("data.firstName", "David");Set the value of a checkbox to `true`.
Form.setPathData("data.termsAndConditions", true);Set the value of a numeric field to `6000`.
Form.setPathData("data.creditLimit", 6000)
Form.setSystemData(name, value)
Sets a System Profile value. An existing value can be overriden or a new value can be created.Parameters:
Name Type Description namestring The name of the System Profile data, can be separated by dots. valuestring The value to set the system value to. Examples
Overriding an existing value.
Form.setSystemData("FormCode", "MyCustomFormCode");Creating a new value.
Form.setSystemData("CustomSystemData", "SomeCustomValue");
Form.showAccessibleAlert(message, expanded [, delay])
Alerts a message to a screen reader.Parameters:
Name Type Argument Default Description messagestring expandedboolean If `true`, an `aria-expanded` attribute will be added to the alert. delayinteger <optional>
300 A delay (in milliseconds).
Form.showDialog(id)
Shows the specified dialog.Parameters:
Name Type Description idstring The ID of a dialog. Example
Form.showDialog("dialog_id_goes_here");
Form.showModal(id [, showAscAlert])
Shows the specified modal page.Parameters:
Name Type Argument Description idstring The ID of a modal page. A blank string will close an open modal page. showAscAlertboolean <optional>
For accessibility purposes, this will alert the page that has loaded when closing a modal page Example
Form.showModal("modal_id_goes_here");
Form.showProgress(message)
Shows an indeterminate progress indicator.Parameters:
Name Type Description messagestring The message to display in the progress indicator. Example
Form.showProgress("Something is happening...");
Form.submit( [type], legacyMethod, skipPostSubmit [, validateItem], sendEmail, backgroundSave, skipScrollOnError)
Submits, saves, or abandons a form.Parameters:
Name Type Argument Default Description typestring <optional>
"Submitted" Abandoned / Saved / Submitted. legacyMethodboolean Use old-school HTML form post instead of AJAX - redirects to submission complete page, so there is no return value. skipPostSubmitboolean Setting to true will stop the form from going to a success modal page or redirecting validateItem<optional>
Provide an item to validate, will validate the whole form on Submitted type if not provided sendEmailboolean the optional send email (form saved, receipt). backgroundSaveboolean sets backgroundSave parameter to true for non user initiated saves. skipScrollOnErrorboolean Setting to true will stop the form from scrolling to the error block on validation errors. Returns:
A promise of the result.- Type
- Promise
Example
// After validating the Item this will submit the form using a AJAX call with a success modal page. Form.submit("Submitted", false, false, Item, true, true, false);
Form.term(path, defaultTo)
Provide the value of the given path (e.g. 'myTextField.label' or 'myDatePicker.properties.placeholder') in the currently selected language. If no language entry exists, return the default value. Generated scripts are converted to use this for translatable strings.Parameters:
Name Type Description pathstring defaultTostring If no term exists for the given path, return this string instead. Returns:
- Type
- string
Form.updateBranding(brandOptions)
Update branding on the form based on the options in the JSON brandOptions. This also broadcasts the AngularJS event "brandUpdate"Parameters:
Name Type Description brandOptionsRuntimeBrandUpdate JSON object or string with details to update the form branding - Since:
-
- Maestro 21.11.0
Form.updateCssByName(cssId, cssUrl, cssContent)
Update named CSS with either a new URL or CSS content, switching between a URL and a CSS string will remove the previous link or style tag as appropriate and replace it with the one based on the update required.Parameters:
Name Type Description cssIdstring ID of CSS to update as defined in the ID property on a Runtime CSS Resource widget in the form. cssUrlstring New URL for the CSS to use, eg using a relative URL like "./css/myCustomCss.css" will get the image from the FAR file. Setting the URL takes priority over setting CSS Content. cssContentstring New CSS content to inject into a style tag for the CSS name. - Since:
-
- Maestro 21.11.0
Returns:
Indicates whether any changes were made with the specified details.- Type
- boolean
Examples
Passing in a CSS file name will can update the link tag source.
Form.updateCssByName("myCustomCss", "./css/anotherCssFile.css");Passing in a CSS content string will update the form with the contents being added to a style tag.
Form.updateCssByName("myCustomCss", null, "h1 { color: yellow !important; }");
Form.updateData(newFormData)
Takes new form XML data (usually in a response from the new TM HTTP API) and updates the form's internal data structure.Parameters:
Name Type Description newFormDatastring Returns:
- Type
- Promise
Form.updateImageByName(imageName, newValues)
Update images in the form by its name specified on the image, Images with a specified name can be updated at runtime by modifiying their propertiesParameters:
Name Type Description imageNamestring Image name as defined on an image widget in the form. newValuesRuntimeImageUpdate New values to set on images with the specified name - Since:
-
- Maestro 21.11.0
Returns:
Indicates whether any images were found and updated with the specified details.- Type
- boolean
Example
Passing in an image name you can update the image source.
Form.updateImageByName("orgLogo", { imgUrl: "./images/logo2.png" });
Form.validate(itemOrId [, data] [, trigger])
Runs validation on given field (and its children) and broadcasts validation display event. If the item does not exist or is invalid, the whole form will be validated.Parameters:
Name Type Argument Default Description itemOrIdstring | Object An id or item reference to the block/field to run the validation on. dataobject <optional>
Form.data The data reference to the block/field to run the validation on. triggerstring <optional>
Used by Transact Insights to send a validation event. Returns:
Returns a promise that contains the validation result object. The "valid" key on this object will be `true` or `false`. The "errors" key will contain a list of errors.- Type
- Promise
Form.validateFieldRefMap(inputFieldRefs, data, alertMessage)
Validates all the fields in a field reference map property.Parameters:
Name Type Description inputFieldRefsA reference to the fieldRefMap property. dataObject A reference to the form data. alertMessagestring A message to show the user if validation fails. Returns:
Returns a promise of the result.- Type
- Promise