Creatio development guide
PDF
bpm’online development guide
Platform description
This documentation is valid for Creatio version 7.13.0. We recommend using the newest version of Creatio documentation.

The "diff" array

Glossary Item Box

Introduction

The “diff” array is an array of modifications described in the “diff” property of a schema. The array is used for generating module views in the system UI. Each array element is a metadata. The UI controls are generated based on these metadata.

The diff property contains an array of configuration objects that are responsible for schema display. The diff array contains objects that configure display of containers, controls, modules, fields and other visual components.

The diff array object properties

The diff array elements have the following properties:

  • operation – can have the following values:
    • set – schema element value is set by the values parameter.
    • merge – the values from the parent, replacing and replacement schemas are merged. The properties from values parameter have the highest priority.
    • remove – the element is removed from the schema.
    • move – the element is moved to another parent element.
    • insert – the element is inserted in the schema.
  • name – the name of schema element that the operation is applied to.
  • parentName – the name of schema parent element where the element is placed as a result of the insert or move operation;
  • propertyName – the name of parent element parameter in the insert operation. Also used in the remove operation if it is needed to remove specific element parameters and not the element itself;
  • index – the index in which the parameter is being moved or inserted. The parameter is used in the insert and move operations. If the parameter is not specified, the element will be inserted as the last element in the array.
  • values – the object whose properties will be set or merged with schema element properties. It is used in the set, merge and insert operations.

Bpm'online has a set of basic elements that can be displayed on a page. They are specified in the Terrasoft.ViewItemType list (Table. 1).

Table 1. – Element type

Name Description
GRID_LAYOUT Grid element that contains placements of other elements
TAB_PANEL Set of tabs.
DETAIL Detail.
MODEL_ITEM View model element.
MODULE Module.
BUTTON Button.
LABEL Label.
CONTAINER Container.
MENU Drop-down list.
MENU_ITEM Drop-down list element.
MENU_SEPARATOR Drop-down list separator.
SECTION_VIEWS Section views.
SECTION_VIEW Section view.
GRID List.
SCHEDULE_EDIT Scheduler.
CONTROL_GROUP Group of controls.
RADIO_GROUP Group of radio buttons.
DESIGN_VIEW Customizable view.
COLOR_BUTTON Color.
IMAGE_TAB_PANEL Set of tabs with icons.
HYPERLINK Hyperlink.
INFORMATION_BUTTON Information button with tooltip.
TIP Tooltip.

An example of using the “diff” property

diff: /**SCHEMA_DIFF*/[
  {
      "operation": "insert",
      "name": "CardContentWrapper",
      "values": {
          "id": "CardContentWrapper",
          "itemType": Terrasoft.ViewItemType.CONTAINER,
          "wrapClass": ["card-content-container"],
          "items": []
      }
  },
  {
      "operation": "insert",
      "name": "CardContentContainer",
      "parentName": "CardContentWrapper",
      "propertyName": "items",
      "values": {
          "itemType": Terrasoft.ViewItemType.CONTAINER,
          "items": []
      }
  },
  {
      "operation": "insert",
      "name": "HeaderContainer",
      "parentName": "CardContentContainer",
      "propertyName": "items",
      "values": {
          "itemType": Terrasoft.ViewItemType.CONTAINER,
          "wrapClass": ["header-container-margin-bottom"],
          "items": []
      }
  },
  {
      "operation": "insert",
      "name": "Header",
      "parentName": "HeaderContainer",
      "propertyName": "items",
      "values": {
          "itemType": Terrasoft.ViewItemType.GRID_LAYOUT,
          "items": [],
          "collapseEmptyRow": true
      }
  }
]/**SCHEMA_DIFF*/

© bpm'online 2002-2019.

Did you find this information useful?

How can we improve it?