Web Page Designer Section 2: Properties Overview |
Content |
|
|
Introduction |
|
|
This section of the Web Page Designer documentation describes functionality of the Web Page Designer Property Managers. As a prerequisite, please read Web Page Designer Basic Principles.
Be advised that some Properties in previous LabVantage versions have been deprecated. Some properties that have been deprecated are not described in sections 3 through 5. For more information, see Deprecating Properties in section 6 Advanced Operations.
Variables |
|
|
Page Columns |
To distinguish between HTML table columns and database table columns, we use the term "page column" to indicate an HTML table column rendered on the page you are building. For example, a "SampleListPage" based on a List Page Type may contain three "page columns": Sample Identifier, Sample Description, and Date Created.
To specify the value of the current "page column", use the variable
[columnid]
As an example, consider the "SampleListPage" previously mentioned, with the Sample identifiers (the s_sampleid column of the Sample table) listed in the first column. To use the value s_sampleid in another property within the SampleId column of the page, enter [columnid].
This is also useful in links. Again consider the "SampleListPage". Typically, you would edit a Sample by clicking it to open a page called "SampleMaintPage" (based on the Maint Page Type). SampleListPage must pass the identifier of the Sample you clicked to SampleMaintPage; if it did not, SampleMaintPage could not open because it does not know which Sample you clicked. In this case, you would specify the following destination when the user clicks each Sample in the SampleListPage:
rc?command=page&page=SampleMaintPage&keyid1=[columnid]
This says to open the SampleMaintPage and pass the value of the current "page column" into the page as the variable "keyid1". If the value of the current "page column" is S-01, the resulting URL would be:
rc?command=page&page=SampleMaintPage&keyid1=S-01
SDC Columns |
To specify the value of any SDC column, enclose the column identifier within square brackets. For example, if you want a property to have the value of the moddt (date on which a Sample was last modified), enter
[moddt]
as the value of the property. This will substitute the value of the moddt column for the variable [moddt]. This lets you use the value of any SDC column in any "page column".
This also applies to links. Extending the example link shown in Page Columns above, if you also want to pass the description of the Sample and the date it was created, specify:
rc?command=page&page=SampleMaintPage&keyid1=[columnid]&desc=[sampledesc]&createdt=[createdt]
SDCs |
When you need to specify the current SDC as the value of an Element property, use the variable [sdcid].
Specialized Variables |
We also provide specialized variables:
• | Specialized variables currently for use only with certain Elements are described in the relevant area of this documentation (such as in the Options section of the dataentrylist Element). |
• | The variable [connectionid] returns the identifier of the connection for the current LabVantage User (see Monitoring → User Connections). |
• | The variable [currentuser] returns the current LabVantage User. |
• | You can use variables to specify relative date, such as today or N+3, the latter meaning "now plus 3 days". For relative date and time syntax, see Relative Date and Time in the topic Naming Restrictions and Syntax Standards. |
• | To convert the user's timezone to that of the Application Server, LabVantage provides the [usersysdate] and [connectionid] variables, for use with the userdate(database) function. For details, see Absolute versus Relative Dates in LabVantage M18N Support. |
Property Controls |
|
|
General Editing Functions |
These controls provide general editing functions for property collections.
![]() |
Symbol | Functionality | ||||||||
![]() |
Shows or hides the property collection. | ||||||||
![]() |
Opens a window that lets you add or remove Roles. Only
the Roles you choose will have access to this property collection. If an
item in a property collection is protected by a Role and that Role becomes
inactive, all Users will be able to see the item. If an item in a property
collection is protected by multiple Roles, access to the item will continue
to be restricted by those Roles that are still active.
Descendant (child) nodes or pages inherit these Roles as a group. Accordingly, descendant nodes or pages can view or override these Roles as a group. On descendant nodes and pages, the padlock symbol uses the following color codes to indicate Role inheritance:
|
||||||||
![]() |
Adds a property or property collection. Note that when
adding a "Columns" property, the lookup provides a field to filter
the columns. This lets you enter a search string for columns. The resulting
list is filtered, showing only columns that match the search string. "OK"
and "Cancel" buttons are provided to offer standard dialog options.
Similar filtering capability is available when editing an existing column.
|
||||||||
![]() |
For horizontally displayed property collections, moves the selected properties horizontally. This is how you change the order in which items are rendered on the Element or Page. The order of the property collections in the editor determines the order in which they are rendered (left to right). See Notes 1 and 2 below. | ||||||||
![]() |
For vertically displayed property collections, moves the selected properties vertically. This is how you change the order in which items are rendered on the Element or Page. The order of the property collections in the editor determines the order in which they are rendered (top to bottom). See Notes 1 and 2 below. | ||||||||
![]() |
Deletes the selected property collection items. See Note
2 below.
You cannot delete inherited collection items, but you can move them. |
||||||||
![]() |
Copies selected property collections for pasting in other
nodes or pages. The paste destination must be in the same Property Tree
as the copy, and must be of the same Property Type.
|
||||||||
![]() |
|
1 | Advanced users who are developing their own pages can set the property display using the Display Options (see Adding Custom Properties in the Advanced Operations section (Part 3) of this document). |
2 | These controls work with properties that have a checkbox next to them.
If no property has the checkbox selected, in grouped mode the currently
highlighted property will be selected.
If multiple discontiguous properties are selected, they are moved and grouped together. For example: If rows 3, 4, and 6 are selected and moved to the top of the list, they will occupy positions 1, 2, and 3. |
The Property List Id for individual collection items is displayed when hovering over a column identifier. This can be used in advanced CTT scripts to export individual collection items such as columns or buttons:
![]() |
URL References |
URL references to a page (rc?command=page&page=PageId) are accompanied by a control that opens the Page Property Manager for that page:
![]() |
Authorized users are provided with a button in Generic and Generic Popup Layouts. Clicking it opens the Page Property Manager for the displayed page.
![]() |
Inherited Values |
|
|
Inherited properties (as discussed in Property Tree Concepts) are displayed within curly braces and pipes, e.g., {|keyid1|}.
Date-Only Columns |
|
|
"Date-only columns" display date without time. Since they are timezone-independent, they are covered in the M18N section (see Date-Only Columns).
DBMS-Specific Property Values |
|
|
LabVantage lets you specify property values using syntax that is specific to Oracle, SQL Server, or both. This is useful when the value of a property is a query statement or clause.
Four syntax variations can be used:
• | {{ORA:oracle syntax MSS:mss syntax}} |
• | {{MSS:mss syntax ORA:oracle syntax}} |
• | {{MSS:mss syntax}} |
• | {{ORA:oracle syntax}} |
Processing is handled automatically. If the DBMS is Oracle, the token is extracted from the value after ORA:, and the value after MSS: is ignored. If the DBMS is SQL Server, the token is extracted from the value after MSS:, and the value after ORA: is ignored. This supports multiple tokens in the same property. As an example, consider changing a list Element column title to "oracletitle" if the target DBMS is Oracle, or to "msstitle" if the target is SQL Server. You could enter this property value:
{{ORA: oracletitle MSS: msstitle}}
If the target is an Oracle database, the column title would be displayed as "oracletitle". If the target is SQL Server, the column title would be "msstitle".
This feature is supported for all Web Page Designer properties (including Gizmos), as well as Policies.
Expression-Based Properties |
|
|
Description |
Expression Based Properties (EBP) allow dynamic property settings in the Web Page Designer:
• | EBPs can be based on the current user, and the current state of the SDI. They are typically used to show/hide various items such as columns, elements, and buttons. They can also be used to protect various columns from modification. | ||||||||
• | EBPs can be written in either the Groovy or Java language. | ||||||||
• |
Although EBPs could be extended to any property, this release uses them
only in the properties specified below:
|
||||||||
• | Depending on the expression context, EBPs support these objects: |
Examples |
|
Determine whether or not to show a detail Element on a Maintenance page,
depending on a field value in the primary form:
In the Batch Maintenance page, to determine whether to show the Sample detail Element:
|
|
In the maint Element, the "maskvalue" mode masks the value
of a field (differs from a field with empty value).
To determine if a Subject DOB should be masked in a Subject Maintenance Grid if a Study is double blinded, set: primary.studytype=='doubleblind' ? "maskvalue" : "readonly" Existing retrievedata and hidden properties will apply to the entire column if the first row evaluates to retrievedata (or hidden, respectively). |
|
When using EBPs with MaintenanceGrid Page Types, note that the return
results for for different rows can be only "maskvalue" or "readonly",
plus one of any other "Mode". For example:
|
Groovy Expression Editor |
|
|
Properties supporting Groovy Expressions open a Groovy Expression Editor. The left frame shows objects for the current context and available variables.
![]() |
Node Hierarchy |
|
|
Locked Nodes |
A small yellow padlock indicates a locked node. You cannot change property values of a locked node.
![]() |
If a WebPage or Property Tree is locked, a red padlock is displayed in the tree and all child items are rendered in read-only mode to allow the user to view (but not modify) the Page or Property Tree details. Hovering over the padlock indicates the user who has the item locked. Clicking the padlock allows the current user to send a message to the user who holds the lock.
When editing a Property Tree, any Web Pages hanging off the Property Tree are still editable even though the tree itself is locked. In the example below, the address Element itself is locked, but the user is still free to edit the Maint page properties.
![]() |
Product and Custom Nodes |
Nodes used by the OOB product are locked "Product" nodes. Each is identified by (P).
![]() |
For each "Product" node, you can add corresponding (unlocked) "Custom" nodes that are specific to a configuration.
To create a node hierarchy make a "Product" node under the Core node, and a "Custom" below that. For example:
Printer |
|
|
Printer Product (P) |
|
|
|
|
Printer (Custom) |
|
Properties shown in the "Custom" node are inherited from the locked nodes above it. Individual properties that are "locked" in Product nodes are also locked in Custom nodes. In the Export wizard and other undetermined pages, locked nodes will be hidden (or not exported) at the configuration level.
If you put properties in a page and someone overrides the page, you have an upgrade problem. To handle this, a "page override" feature is provided. The"ProductValueTree" column in the WebPagePropertyTree table supplements the "ValueTree" column. These CLOB columns define the XML Property List. The "ProductValueTree" column holds the Product page overrides, giving the hierarchy:
Root node (Custom, unlocked) |
|
|
Product (Product, locked) |
|
|
|
|
Custom node (Custom, unlocked) |
|
|
|
|
Product Page override (Product, locked) |
|
|
|
|
User Page override (Custom, unlocked) |
|
Changes to any custom node should be automatically preserved during a configuration upgrade. Changes to pages that have been overridden (by "page override") should be automatically preserved during a configuration upgrade. When upgrading, changes to Product nodes and Product pages should be automatically deployed.
Categories and Nodes |
The "Categories" button lets you assign a Custom node to a Category. This is useful for exporting items by Category using the Configuration Transfer Tools.
Dual-Key Web Pages |
Note the nodes marked (R5):
This is a result of dual-key Web pages, which make upgrades more manageable. Support for dual-key Web pages is provided by:
Functionality | Support | ||||||||
Data Model |
|
||||||||
Pages | For a specific page, DefaultPageFlag overrides the system default for ProductEdition. | ||||||||
R5 Upgrade | ProductEdition is a System Configuration property. During
upgrade:
|
||||||||
URL Requests |
|
||||||||
Web Page Designer Interface |
|
Node Finder |
To find a specific node on a large Property Tree, use the "Node Finder" (below). Enter a search string. Nodes containing the search string are highlighted in yellow.
![]() |
Node Sorter |
The root node of a Property Tree has an "auto-sort" button.
![]() |
Clicking the button issues the following warning:
![]() |
Clicking "Yes" causes the system to run through the tree and sort all "sibling nodes" alphabetically all the way down the tree. This does not have any effect on the hierarchy of properties because the order of only siblings is changed (not parent, child, etc.). Below is an example of a Property Tree before and after sorting.
![]() |
Web Page Roles |
|
|
The OOB configuration defines five Roles to provide Role-Level Access to WebPage SDIs: WebPage-Admin, WebPage-Approval, WebPage-DataEntry, WebPage-LabAdmin, and WebPage-SysConfig.
Web Page Roles take effect when the Access Control option set in the SDC Maintenance page is set to "Open Role". If you do not give any Roles access to a WebPage SDI, LabVantage assumes that there is no intent to restrict the WebPage SDC. All Users will have access to all existing and newly-created WebPage SDIs in the WebPage SDC.
WebPage-Role assignments are managed in the Page List. "Manage Roles" lets you grant Role-Level Access for the selected WebPages.
![]() |
Translating Properties |
|
|
At the system level, all Languages in the LabVantage application are created and maintained through the Language Maintenance Page (see Translations).
When adding properties in the Property Definition Editor, you can declare a property as "Translatable" as shown in Translatable Properties.
Translatable properties are presented as shown in Translations → Context Translations → Web Page Designer.
With regard to translating Reference Values for Reference Types:
• | In the maint Element and sdclinkmaint Element, Reference Values in "dropdownlist" mode (specified by "Dropdown RefType") will be automatically translated unless the "Columns → Translate Value" property is explicitly set to "No". |
• | When an Attribute is configured in the SDC Attributes Master List to use an Editor style, Reference Values in "dropdownlist" mode will be automatically translated unless the "Translate Value" property for the Editor style is explicitly set to "No". |
Column Name Aliases |
|
|
When specifying properties for Elements, you usually encounter the Column
Id property. This is where you provide the identifier of the SDC column
to be retrieved. Clicking the ellipsis
opens a dialog all columns for the selected SDC, including foreign key references
and references to related tables. You can choose one from this dialog.
There may be cases where some of the references displayed exceed 30 characters. For example, if one of your column names is 30 characters, the reference will be greater than 30. If you choose one of these references as a column identifier, the 30-character Oracle database limit for column names will be exceeded (resulting in a database-generated error). To deal with this, selections greater than 30 characters are presented in red text. When you select one, you are prompted to supply an alias of valid length.
Data Locking Strategy |
|
|
"Data locking" is the process by which LabVantage prevents different users from simultaneously modifying the same data. When one user is accessing SDI data, LabVantage "locks" it, thereby preventing other users from editing it. Locking features are available at the Element and Tag level.
Data Entry Elements |
When a user accesses an SDI in pages containing the dataentrylist and dataentrygrid Elements, LabVantage locks the following data:
• | All Data Sets associated with the SDI. |
• | All Data Sets having Calculations dependent on or affecting Data Sets associated with the SDI. |
The dataentrylist Element also contains the Read Only property, which offers a way for you to display locked data for the Element.
Example of Data Entry Data Locking Strategy |
Maint Element |
When a user accesses an SDI in pages containing the maint Element, LabVantage locks the SDI itself (primary SDI record).
Display of Locked Data |
In both the Data Entry and SDI Maintenance contexts, LabVantage uses the following strategy to display data that is locked by another user:
• | Locked data are displayed in a greyed-out field as read-only data. |
• | A red padlock icon is displayed next to the field. Doing a mouseover on the icon shows a tool tip, which indicates the data are locked and identifies the locking user. |
If a record is locked by another User, you can send a message to that User requesting that he release the lock. In the example below, the User record is locked by "admin". Clicking the red padlock opens a dialog that lets you compose the message:
After clicking OK, the User locking the record will receive the Notification as shown below. Clicking the Notification displays the message.
LabVantage Custom Tags |
If you are developing JSPs using LabVantage Custom Tags, the sdi tag has several attributes that let you control locking of retrieved data.
Search |
|
|
If System Search is disabled, this basic search functionality is provided in its place. The Search menu item in the Web Page Designer lets you find property values and nodes matching a search string. Search results are displayed as links indicating the relevant Page, PageType, Element, or Layout (below). Clicking a search result brings you to the Page, PageType, Element, or Layout, whether the search string is found in a property value or a node. All properties in a given Property Tree or Web Page that match the search string are displayed. Click "Advanced" for additional search criteria tips.
![]() |