advancedtoolbar Element

 

Content

advancedtoolbar Element

Description

Example

Properties

Concerning Action Buttons

Concerning Save Button Activity

Keyboard Shortcuts

ESig JavaScript API

Description

The advancedtoolbar Element renders a standardized toolbar that can be used with any Page Type.

This Element can render both buttons (on the Toolbar itself) and Operations (in the Sidebar). For all buttons, you can enable/disable the Electronic Signature (Esig) and Chain of Custody (COC) functionality. If you specify both ESig and COC, COC executes before Esig.

Example

advancedtoolbar Element Properties

Property Name Description
SDC Specify the identifier of the relevant SDC only if you want to use the ESig functionality.
Display style Determines how the toolbar is rendered:
OptionDescription
ClassicPre-LabVantage 6 toolbar.
ModernFlat toolbar introduced in LabVantage 8.0.
Ribbon Large toolbar images similar to Microsoft Office 2007. Buttons can be organized into groups. Supports both 32x32 and 16x16 icons. All pages using the Generic Layout are preconfigured to use this style.
Compact RibbonSimilar to "Ribbon" but without button labels.
Hybrid RibbonSingle-row toolbar. One 16x16 icon (with text) per button. All lookup and view pages are preconfigured to use this style.
Max Buttons per Line Applicable only if "Display style" is set to "Classic". This is the number of buttons displayed in one line. The default is 6.
Spacing Between Buttons Applicable only if "Display style" is set to "Classic". This is the margin around each button in pixels.
Spacing Between Operations Deprecated. Margin around each Operation in pixels.
Operation Alignment Deprecated. Alignment of the hyperlinks in the "Operations" section... vertical (default) or horizontal.
Button Alignment Deprecated. Alignment of the buttons... horizontal (default) or vertical.
Show title in Ribbon If "Display style" is "Ribbon", "Yes" renders the Page title on the left side of the toolbar.
Buttons
Button properties:
Property NameDescription
IdentifierIdentifier of the button. This is required for buttons of type "Action Button" (below).
Type Button type:
StandardUse this in conjunction with Standard Button Properties to perform standardized functions such as save and reset. The JavaScript required to invoke these operations is defined in standardbuttons.js.
ActionUse this in conjunction with Action Button Properties to call System Actions. The Action Button Properties pass property values to the Action. As with all Actions, if you define output properties, the outputs of one Action can be the input to another. This requires the Identifier property (above). We provide the JavaScript for Action Button functionality... you need not supply one unless you need a User Button (below).
UserUse this in conjunction with User Button Properties to make your own buttons. You must write the JavaScript, put it in a .js file, and specify the file using the Includes property.
TaskUse this in conjunction with Task Button Properties to execute Standalone Workflow Tasks.
First Validation First JavaScript function called onClick.

CoC and ESig dialogs open when the JavaScript function returns "true".

This is ignored for user-defined buttons that do not have Coc and ESig enabled, r.g., initialValidation().

First Validation Selection If no JavaScript function is specified by "Frist Validation" (above), you can use this to specify the button behavior:
At Least OneAt least one item in the page must be selected to run the button.
Only OneOnly one item must be selected to run the button.
At Least TwoAt least two items in the page must be selected to continue.
NoneNo items must be selected to run the button.
Not RequiredSelection checking is not required and therefore any number of items can be selected.

If left blank, the "First Validation" JavaScript will be executed (depending on the type of button).

NOTE:  For backward-compatibility with LabVantage versions prior to R5.1 (DM0502), this property uses the selected value only if the "First Validation" JavaScript function has not been specified. As stated above, it also defaults to the default script for the button type if no values are selected.
Second Validation JavaScript Second JavaScript function called (after the JavaScript specified by "First Validation" onClick).

CoC and ESig dialogs open when the JavaScript function returns "true".

This is ignored for user-defined buttons that do not have Coc and ESig enabled, r.g., initialValidation().

Deferred Callback Javascript Use this when you do not want to automatically open the ESig or COC dialog immediately after clicking a button or operation. For example, you may want to open a lookup or some other preprocessing window, then wait for that window to be closed before opening the ESig or COC dialog. In this case, specify the name of the JavaScript callback function here, and invoke it from the child window before closing it.

The syntax is simply the name of the function, e.g., postLookup.

When you specify a Deferred Callback JavaScript, clicking the button first calls the Initial Validation JavaScript (above) if one is specified. If an Initial Validation JavaScript is not specified, the Deferred Callback JavaScript is executed. The JavaScript containing the call to open the ESig or COC dialog is rendered on the page with the name specified in this property. So, when you click this button, the Initial Validation JavaScript opens a lookup window. When an item is selected in the lookup, it calls the Deferred Callback JavaScript function as its lookupcallback, which then opens the ESig or COC dialog.

Deferred Callback FormIdentifier of the form in the page containing the hidden field named keysfromlookup. The contents of this field is passed to the button Action, e.g., submitdetail.
Server Side Validation URL Ajax operation class to use when validating a button click. We recommend extending the DefaultErrorRenderer class.
Save Button Activity See Concerning Save Button Activity below.

 

Visual Properties Visual properties of the button:
Property NameDescription
TextText displayed on the button. If you leave this blank, the button displays "Text Not Defined".
Image URL of the image displayed on the button. When choosing an image for a button, you can choose an image from an Image Library lookup by clicking the emoticon or file folder. When choosing from the Image Library (as opposed to choosing a file), you need not specify both a large and small image. The image size will be adjusted accordingly.
Large ImageIf "Ribbon style" is "Large", this is the image to use for the 32x32 button. This property can be left blank if you chosen the image from the Image Library as shown above.
Flat ImageFlat button image. This image overrides "Image" and "Large Image".
ShowYes (default) shows the button. "Show" supports Expression-Based Properties. However, in this context, the Groovy expression will not support primary objects. For example, you will not be able to use something like primary.sampledesc == 'Test'?'Y':'N'. Primary values are not supported in the Advanced Toolbar Show EBP.
GroupIf "Display style" is "Ribbon", indicate the Group to which this button belongs.
Drop Down GroupRenders the button as a sub-menu under a dropdown Group button. This is supported in the "Modern" menu only.
WidthWidth of the button in pixels. The default is the width of the text on the button.
Ribbon styleIf "Display style" is "Ribbon", indicates whether the button icon is "Large" (32x32) or "Small" (16x16).
AppearanceOptions to select the appearance of the button. If you leave this blank, it defaults to standard.
TipHelp text that appears during mouseover event. This defaults to the button text.
MarginMargin of the button in pixels.
styleChoose a style, or specify a CSS if you need to define button style using a stylesheet.
HighlightYes (default) highlights the button on mouseover. The CSS defines this.
ModeSpecifies if the function is available as a button, Operation, or both.
List Inline Operation Configures a toolbar button to show as an inline context-type menu as in the example below:

Show in Detail PanelDetermines if the page selected using the "List Inline Operation" above opens in a Detail Panel (see LabVantage User Interface → List and Maintenance Pages). This property is applicable only if the button has a "Link URL" defined in "Standard Button Properties" below. If this property is set to Yes, the Link URL of this button is loaded in the Detail Panel.
Keyboard Shortcut Defines keyboard shortcuts (also see Keyboard Shortcuts below):
Property NameDescription
CTRL Key CharacterSingle character used with Ctrl key. For example, entering A defines a hotkey of Ctrl + A.

You can also specify a JavaScript key code prefaced with # (such as #221 equals "]").

CTRL Key With Shift Key If set to "Yes", the Shift key will have to be held along with the Ctrl-key combination defined above. For example, the above Ctrl-A would then be Shift-Ctrl-A.
Electronic Signature Electronic Signature (ESig) properties:
Property NameDescription
Esig Required Determines ESig behavior (defaults to "Not Required" if left blank):
OptionDescription
RequiredExecutes an ESig prompt following a button onClick event.
Not RequiredDoes not execute an ESig prompt following a button onClick event.
Requires Reason OnlyExecutes an ESig prompt following a button onClick event. However, the prompt asks for only an Audit Reason.
CustomAllows Esig functionality to be set by custom JavaScript using the Esig API calls to dynamically change the Esig mode for buttons based on User activity. See Esig JavaScript API below.
Message Specifies the "Statement of Signing", which is passed into the ESig page and appears at the top of the Esig prompt.

This support variables such as [sdcid] and [keyid1], but only if all required variables are passed to the Esig page from button the button was clicked. This happens automatically for Standard and Action buttons, since all variables are in a hidden form that is posted to the ESig page. For User buttons, use JavaScript to populate hidden form fields with required variables. This would be posted to the ESig page by the getEsig() JavaScript (which we provide).

Audit Reason RefTypeReference Type containing your own custom Audit Reasons to be displayed on the ESig page.
Esig PageIdentifier of the ESig page.
Esig Form ID of the HTML form posted to the ESig page. This form has hidden fields corresponding to the variables used in the Message property. For example, if the Message property is set to "You are hereby authorizing a [operation] operation on [sdcid](s) [keyid1]", the form on the ESig page must have hidden fields for operation, sdcid and keyid1 (populated with values).
Set Audit Reason CallbackJavaScript function called when the ESig page opens (after the signature is captured). This function sets the ESig Audit Reason in the Esig form, which is eventually saved in the database. This defaults to setEsigReason.
Reason Prompt Option Esig Reason prompt options like:
Property NameDescription
Required?"Yes" will require you to add an Esig (audit) reason on the Esig form. If none of the options are selected, then by default it is not required.
TypeEsig reason prompt options. Defaults to Free Text Reason.
Chain of Custody Chain of Custody properties:
Property NameDescription
COC RequiredYes executes COC functionality following a button onclick event. By default, COC is disabled.
COC PageIdentifier of the COC page. This defaults to COCForm.
COC Form

ID of the HTML form posted to the COC. This form has hidden fields necessary to open COC page. This property is mandatory... it defaults to sdiedit.

Standard Button Properties Defines the behavior of buttons used for common functionality:
Property NameDescription
Function Type of Standard button displayed. If the Initial Validation JavaScript property is left blank, each Standard button calls a default Initial Validation JavaScript function (defined in standardbuttons.js). Standard buttons and their JavaScript functions:
Maintenance List page
Standard ButtonJavaScript Function
AddaddSDI()
EditeditSDI()
CopycopySDI()
ViewviewSDI()
DeletedeleteSDI()
Acceptaccept()
Maintenance Form page
Standard ButtonJavaScript Function
Savesave()
SaveAsTemplatesaveAsTemplate()
ReturnToListcancelAndReturnToList()
CloseRefreshcloseAndRefreshPopup()
CancelcancelPopup()
Resetreset()
Miscellaneous
Standard ButtonJavaScript Function
ReportlaunchReport()
Link URLURL of the page that opens when the button is clicked.
Target Name of the window in which the child page opens in response to an onclick:
ValueOpens in...
_selfSame window
_parentCaller window
_blankNew window
_topBrowser window
Store Selection"Yes" Stores a selection made on the List page when performing an Add or Edit on the selection. This is useful for Lookups, i.e., you can add a new item, then return it with the previously selected items in a selected state.
Action Button Properties Action buttons execute Actions on the same page as the button. For example, in a "Receive" page, if you click the Action button "Receive Now", all pending SDIs are received and the page is refreshed, thus displaying all received SDIs in the list (list_iframe).
Property NameDescription
Action Button FormClicking an Action button executes an Action only if the Action has input properties. A form (with values in hidden fields) passes the properties to the Action. You can specify your own form here, If you want to use the form we provide, the default is submitdata.
Release LocksWhen the link is clicked, a value of "Yes" (default) releases all data locked by the page. If the link opens a child page, locked data are not released.
Success MessageMessage displayed when the actionblock is successfully executed. This supports variables (such as [sdcid] [keyid1]) from the request, or from the Action's Output Properties.
Fail Message Message displayed when the actionblock fails. This supports variables (such as [sdcid] [keyid1]) from the request, or from the Action's Output Properties. Use the variable [error] to view details concerning the distasteful event.
TargetWindow in which the page containing the code to run the Action button opens. If you leave this blank, it defaults to _self (the same window).
Link URLURL of the page displayed after the Action successfully executes. This supports variables such as [sdcid] and [newkeyid1] from the request, or from Action output properties.
Actions Actions executed following onclick of an Action button:
Property NameDescription
Identifier Unique identifier for this item, rendered as an ID attribute in the HTML tag.
ActionIdentifier of the Action.
VersionVersion of the Action.
AsynchronousSpecifies whether the Action runs asynchonously or synchronously. All asynchronous Actions execute after the synchronous actions, regardless of the order in which the Actions are listed in the Properties. This allows the outputs of synchronous actions to be used as inputs to asynchronous actions.
Delay (seconds)If the Action runs asynchonously, this is the delay in seconds. For example, entering n means the Action will execute n seconds after it is added to the ToDo List.
Input Properties Input properties of the Action:
Property NameDescription
IdentifierUnique identifier for this item, rendered as an ID attribute in the HTML tag.
Property IDIdentifier of the Action input property. Specify only the property id (without brackets or any other text), such as sdcid or keyid1. You can also use the output properties of other Actions for the same Action button.
Value Value of the Action input property. Examples:

Sample (if the value is known)

[sdcid] (if the value of the property sdcid must be retrieved from the request).

If using variables (for example, [propname]), a field called action_propname must exist in the form specified by the Action Button Form property (above).

If using variables, specify only the identifier. For example, specify [keyid1], not [action_keyid1].

Output Properties Output properties of the Action. You can use these values as inputs to other Actions within the same Action Block.
Property NameDescription
IdentifierUnique identifier for this item, rendered as an ID attribute in the HTML tag.
Property IDIdentifier of the Action input property. Specify only the property id (without brackets or any other text), such as sdcid or keyid1.
Variable Variable name (such as [newbatchid]) to store the property value at the actionblock level.

For example:

Action: AddSDI

Input properties: sdcid=Batch and batchdesc=mybatchdesc

Output properties: newkeyid1=[newbatchid]

This uses makes it possible to use sdcid=Sample, sampledesc=mysample, and batchid=[newbatchid] as inputs to a second AddSDI Action.

User Button Properties Defines properties for user buttons:
Property NameDescription
JavaScriptJavaScript function to call for an onclick button event. The function must be in a .js file, which must be specified by the Includes property of the Page Type.
Release LocksWhen the button is clicked, a value of "Yes" (default) releases all data locked by the page. If the link opens a child page, locked data are not released.
Task Button PropertiesDefines properties for Standalone Workflow Tasks that are executed from a button:
Property NameDescription
Task DefinitionOpens a dialog where you can select and define the Standalone Workflow Task to execute from this button.
Release LocksWhen the button is clicked, a value of "Yes" (default) releases all locked data when executing the Task. "No" maintains locks while executing the Task.
Target WindowThis defaults to _self (the current window). Use _blank to open a new window, or use the name of a specific named window or iframe.
SecurityAssociates the button to the SDC Operation defined for the SDC. The button can then performs the SDC Operation for selected or current SDI. Also see Departmental Security and SDC Access, Job Types, and SDI Security for examples.
Property NameDescription
OperationSDC Operation that the button performs. Shows SDC Operations for only the selected SDI. If not specified, full SDC Access is granted.
Failure JavaScriptJavaScript that executes if all selected SDIs are not authorized SDC Access. You can access the failed SDIs using this.failedsdis. You can access the successful SDIs using this.passedsdis.
Check Out OptionWhen Change Control is enabled, this determines whether or not to require Check Out when the button is clicked.
Includes If you want to use your own JavaScript files:
Property NameDescription
IdentifierUnique identifier for this item, rendered as an ID attribute in the HTML tag.
URLURL of the JavaScript (*.js) file containing functions called in the page (choose by clicking the ellipsis).

Concerning Action Buttons

  Note that if you add all available columns on a MaintenanceList or MaintenanceForm page into the Action form, clicking the Action button makes all selected columns available to use as Action properties, i.e., you do not have to generate the Action properties yourself. In this case, ensure that SDI key values are also populated in the Action form when the property is used for an Action button.
  To pass selected values from a MaintenanceList or MaintenanceForm page into an Action button, you can take advantage of two "action_" inputs: action_selectedvalues and action_selectedcolumns. When an Action button is clicked, these values are populated with all selected rows, columns, and data. When the properties are being obtained for the Actions, the system first checks if there is an "action_" defined for the property. If not, it tries to get the value from the selected columns. This means that if a user has manually created an "action_" input, this method does not override it.

For example, consider an Action button on the SampleList page. If you define the action property [s_sampleid], select some Samples, then click the button, the Action code gets the selected s_sampleid values in a semicolon-delimited list and passes them to the Action in place of [s_sampleid].

  Beginning with LabVantage R5.1 (DM0502), Action buttonsexecute through a single central method (executeButtonScript) rather than 5 different methods (as in pre-R5.1).

Esig is now always just before Action/code execution, and occurs after the prompt.

CoC is not just before esig, and occurs after the prompt.

Out of the box, the functionality will operate as it did pre R5.1, with initial validation occurring before prompt when ESig/CoC is on, and after the prompt when it is off.

When a value is entered for the primary validation or a declarative property for primary validation is selected, the code always executes the primary validation first, then the old initial validation (labeled as secondary) after the prompt and before ESig.

Here is table showing pre-R5.1 and R5.1 functionality:

Action Buttons
Pre-R5.1 Action Button with EsigR5.1 Backward-Compatible Action Button with EsigR5.1 Action Button with Primary Validation and Esig

1) Dep Sec

2) Call getEsig (esig.js)

3) Initial Validation

4) Server Side Validation

5) Esig

6) Call actionbuttonscript (actionbuttonscript.js)

7) Prompt

8) Execute Action

1) Dep Sec

2) Call executeButtonScript (validationhandlers.js)

3) Initial (2nd) Validation

4) Server Side Validation

5) Prompt

6) Call getEsig (esig.js)

7) Esig

8) Call actionbuttonscript (actionbuttonscript.js)

9) Execute Action

1) Dep Sec

2) Call executeButtonScript (validationhandlers.js)

3) 1st Validation

4) Prompt

5) Call getEsig (esig.js)

6) Initial (2nd) Validation

7) Server Side Validation

8) Esig

9) Call actionbuttonscript (actionbuttonscript.js)

10) Execute Action

Pre-R5.1 Action Button with CoCR5.1 Backward-Compatible Action Button with CoCR5.1 Action Button with Primary Validation and CoC

1) Dep Sec

2) Call getCOC (coc.js)

3) Initial Validation

4) Server Side Validation

5) COC

6) Call actionbuttonscript (actionbuttonscript.js)

7) Prompt

8) Execute Action

1) Dep Sec

2) Call executeButtonScript (validationhandlers.js)

3) Initial (2nd) Validation

4) Server Side Validation

5) Prompt

6) Call getCOC (coc.js)

7) COC

8) Call actionbuttonscript (actionbuttonscript.js)

9) Execute Action

1) Dep Sec

2) Call executeButtonScript (validationhandlers.js)

3) 1st Validation

4) Prompt

5) Call getCOC (coc.js)

6) Initial (2nd) Validation

7) Server Side Validation

8) COC

9) Call actionbuttonscript (actionbuttonscript.js)

10) Execute Action

Pre-R5.1 Action Button with ESig and CoCR5.1 Backward-Compatible Action Button with ESig and CoCR5.1 Action Button with Primary Validation and ESig and CoC

1) Dep Sec

2) Call getCOCAndEsig (esig.js)

3) Initial Validation

4) Server Side Validation

5) COC

6) Esig

7) Call actionbuttonscript (actionbuttonscript.js)

8) Prompt

9) Execute Action

1) Dep Sec

2) Call executeButtonScript (validationhandlers.js)

3) Initial (2nd) Validation

4) Server Side Validation

5) Prompt

6) Call getCOCAndEsig (esig.js)

7) COC

8) Esig

9) Call actionbuttonscript (actionbuttonscript.js)

10) Execute Action

1) Dep Sec

2) Call executeButtonScript (validationhandlers.js)

3) 1st Validation

4) Prompt

5) Call getCOCAndEsig (esig.js)

6) Initial (2nd) Validation

7) Server Side Validation

8) COC

9) Esig

10) Call actionbuttonscript (actionbuttonscript.js)

11) Execute Action

Pre-R5.1 Action Button with No ESig or CoCR5.1 Backward-Compatible Action Button with No ESig or CoCR5.1 Action Button with Primary Validation and No ESig and CoC

1) Dep Sec

2) Call actionbuttonscript (actionbuttonscript.js)

3) Prompt

4) Initial Validation

5) Server Side Validation

6) Execute Action

1) Dep Sec

2) Call executeButtonScript (validationhandlers.js)

3) Prompt

4) Call executeButtonScript (validationhandlers.js)

5) Initial (2nd) Validation

6) Server Side Validation

7) Call actionbuttonscript (actionbuttonscript.js)

8) Execute Action

1) Dep Sec

2) Call executeButtonScript (validationhandlers.js)

3) 1st Validation

4) Prompt

5) Call executeButtonScript (validationhandlers.js)

6) Initial (2nd) Validation

7) Server Side Validation

8) Call actionbuttonscript (actionbuttonscript.js)

9) Execute Action

Standard and User Buttons
Pre-R5.1 Button with ESigR5.1 Backward-Compatible Button with ESigR5.1 Button with Primary Validation and ESig

1) Dep Sec

2) Call getEsig (esig.js)

3) Initial Validation

4) Server Side Validation

5) Esig

6) Call executeButtonScript (validationhandlers.js)

7) Execute Code

1) Dep Sec

2) Call executeButtonScript (validationhandlers.js)

3) Initial (2nd) Validation

4) Server Side Validation

5) Call getEsig (esig.js)

6) Esig

7) Call executeButtonScript (validationhandlers.js)

8) Execute Code

1) Dep Sec

2) Call executeButtonScript (validationhandlers.js)

3) 1st Validation

4) Call getEsig (esig.js)

5) Initial (2nd) Validation

6) Server Side Validation

7) Call executeButtonScript (validationhandlers.js)

8) Execute Code

Pre-R5.1 Button with CoCR5.1 Backward-Compatible Button with CoCR5.1 Button with Primary Validation and CoC

1) Dep Sec

2) Call getCOC (coc.js)

3) Initial Validation

4) Server Side Validation

5) COC

6) Call executeButtonScript (validationhandlers.js)

7) Execute Code

1) Dep Sec

2) Call executeButtonScript (validationhandlers.js)

3) Initial (2nd) Validation

4) Server Side Validation

5) Call getCOC (coc.js)

6) COC

7) Call executeButtonScript (validationhandlers.js)

8) Execute Code

1) Dep Sec

2) Call executeButtonScript (validationhandlers.js)

3) 1st Validation

4) Call getCOC (coc.js)

5) Initial (2nd) Validation

6) Server Side Validation

7) COC

8) Call executeButtonScript (validationhandlers.js)

9) Execute Code

Pre-R5.1 Button with ESig and CoCR5.1 Backward-Compatible Button with ESig and CoCR5.1 Button with Primary Validation and ESig and CoC

1) Dep Sec

2) Call getCOCAndEsig (esig.js)

3) Initial Validation

4) Server Side Validation

5) COC

6) Esig

7) Call executeButtonScript (validationhandlers.js)

8) Execute Code

1) Dep Sec

2) Call executeButtonScript (validationhandlers.js)

3) Initial (2nd) Validation

4) Server Side Validation

5) Call getCOCAndEsig (esig.js)

6) COC

7) Esig

8) Call executeButtonScript (validationhandlers.js)

9) Execute Code

1) Dep Sec

2) Call executeButtonScript (validationhandlers.js)

3) 1st Validation

4) Call getCOCAndEsig (esig.js)

5) Initial (2nd) Validation

6) Server Side Validation

7) COC

8) Esig

9) Call executeButtonScript (validationhandlers.js)

10) Execute Code

Pre-R5.1 Button with No ESig or CoCR5.1 Backward-Compatible Button with No ESig or CoCR5.1 Button with Primary Validation and No ESig or CoC

1) Dep Sec

2) Call executeButtonScript (validationhandlers.js)

3) Initial Validation

4) Server Side Validation

5) Execute Code

1) Dep Sec

2) Call executeButtonScript (validationhandlers.js)

3) Call executeButtonScript (validationhandlers.js)

4) Initial (2nd) Validation

5) Server Side Validation

6) Execute Code

1) Dep Sec

2) Call executeButtonScript (validationhandlers.js)

3) 1st Validation

4) Call executeButtonScript (validationhandlers.js)

5) Initial (2nd) Validation

6) Server Side Validation

7) Execute Code

Concerning Save Button Activity

The Save Button Activity property is available for use with all buttons in the advancedtoolbar Element, as long as the Button Type is "Standard" (it cannot be used with "Action" or "User" types). As provided, LabVantage is preconfigured to use this property for "Save" button operations. This property provides these features:

The TraceLog Table contains an "Activity" column that stores the label of the clicked button (such as {|Save|}). As provided, the value of "Save Button Activity" is {|Save|}, so this is the value that will be written into the "Activity" column, and thereby used to identify the audit activity.
You can change this behavior to reflect the operation of LabVantage versions prior to LabVantage 6 by replacing this value with a single space (backward-compatible mode). In this case, the TraceLogId is not be set to the database session, and the Actions must set the TraceLogId by themselves. However, if your Action or business rules call the lv_app.setappinfotracelog procedure to set the TraceLogId, the triggers will instead use the value in the database session.

Note that audit triggers do not depend on audit activity - they simply check if any TraceLogId is present in the database session. If any are present, they are used. If none are present, they are not. It is the Save operation that determines whether or not to set the TraceLogId in the database session, depending on the value of "Save Button Activity".

Also note that the advancedtoolbar Element is configured to record the "Activity" even if ESig is disabled. A TraceLogId is created if either a "Audit Reason" or a "Save Button Activity" value is provided. This differs from versions prior to LabVantage 6, when a Save operation would create a TraceLogId only if ESig was enabled and an Audit Reason" was provided.

Keyboard Shortcuts

In addition to support provided by the Keyboard Shortcut property, these keyboard shortcuts are preconfigured:

Page Type Operation Shortcut
MaintenanceList Add Control-Shift-A
View Control-Shift-V
Edit Control-Shift-E
MaintenanceForm Save Control-Shift-S
Add Another Control-Shift-A
Return to List Control-Shift-R

Pressing the Ctrl key twice results in keyboard shortcuts automatically being assigned and shown next to each button. Press Ctrl twice again to exit.

ESig JavaScript API

When configuring Electronic Signature - ESig Required, the "Custom" option provides a mechanism to dynamically change ESig behavior for buttons based on User activity before a button is clicked. For example, to enable ESig on the "Save" button when Sample description changes on an SDI Maintenance page, an "onchange" event could be set to trigger +parent.enableEsigRequired( 'Save' );

These ESig methods are available:

Property Name Description
enableEsigRequired( buttonid ) Enables full ESig on the button when ESig on the button is currently not enabled or in "Requires Reason Only" mode.
enableEsigReasonOnly( buttonid ) Enables "Requires Reason Only" ESig on the button when ESig on the button is currently not enabled.
setButtonEsigMode( esigmode, buttonid ) To be used sparingly to revert back to enabled ESig mode. This sets the button to the specified ESig mode regardless of the current mode.