The scripting API exposes several events (implemented as callback properties) that are invoked by the system at key points in the template lifecycle. These events allow you to respond to lifecycle changes, field updates, and system-triggered actions.

Event

Description

vizrt.onLoad ()

Triggered when an existing data element is opened in Viz Pilot Edge. This event also fires in browse mode when a data element is selected. Use this event to prepare the MOS XML that is sent to the newsroom, which is relevant when data elements are sent directly from browse mode.

vizrt.onCreate ()

Triggered when a new data element is created from a template in Viz Pilot Edge.

vizrt.onUpdate (fields: Payload, action: string)

This event is invoked by the Script Runner when the template is configured to use the Update Service. Note that this handler executes in a Node.js server process and therefore may expose a different JavaScript API. See Update Service for more details. This event is not triggered in Template Builder or Viz Pilot Edge.

vizrt.onAfterSave ()

Triggered after a data element has been successfully saved. This is typically used to prepare outgoing MOS XML or perform final processing after a save operation.

vizrt.fields.$FIELDNAME.onChanged (value)

Triggered when the value of a specific field changes. This allows scripts to react instantly to user input.

Examples

onCreate

Called when a template is opened in Viz Pilot Edge and a new data element is then implicitly created.

Note: This event is not triggered when creating a new data element from an existing one.

vizrt.onCreate = () => {
// For example set startup values, initialize fields visibility, etc.
Initialize()
}

onLoad

Called when an existing data element is loaded in Viz Pilot Edge. The normal steps are to initiate or refresh data each time you open a data element.

Note: This event can potentially modify the data element when opening, which means it must be saved before being draggable or sendable to a NRCS.

vizrt.onLoad = () => {
// For example reset or refresh values, etc.
ResetForm()
}

Info: These events must be defined in the Template Builder's script, but they are not triggered in Template Builder.

onUpdate

This event is only triggered from script runner when using Update Server. See Update Service for more in depth explanation with examples.

vizrt.onUpdate = (fields, action) => {
fields["$02-Designation"].value = `${fields["$01-Name"].value} live from Svalbard`
}

onAfterSave

Triggered after a successful save operation has been executed on a data element.

vizrt.onAfterSave = () => {
vizrt.$pilot.mos.slug = "MAIN HEADLINE: " + vizrt.fields.$1.value
}

onChanged

Triggered when the given field value is changed.

vizrt.fields.$headline01.onChanged = (value: string) => {
vizrt.$pilot.mos.description = "BREAKING: " + value
}