Skip to content

Tracker options

Tracker options are configured in the $options property.

Config object

Option properties (schema)

  • blocks: default set of blocks for new dispatches created with this tracker
  • body: none | require | optional
  • trackers: list of tracker handles
  • swimlanes: list of swimlane handles
  • security:
    • setting: disabled | public | org | private | admin
    • min: min level
    • max: max level
  • trackerSelection: linked | all | none
  • swimlaneSelection: linked | all | none | selected
  • swimlaneApply: swimlane handle if swimlane is selected
  • sharePost: yes | no
  • dateConfig: date | date-time | readonly | date-time-active | choice | none
  • dateConfigDetail: List of strings taking the form of "+/-N " where measure is d, w or m for day, week and month
  • requireResponse: hide | available | enabled | dropdown
  • requireResponseApply: response if enabled
  • recurringEntry: hide | available. Allow recurring schedule for the dispatches.
  • requireResponseTracker: tracker handle if response is set
  • toolar: show | media |hide
  • userQuery: valid user query
  • userDirectory: hide | available | enabled | dropdown | rule | rule-enabled
  • userDirectoryRule: rule for showing the user directory for rule-enabled
  • showHeader: true | false
  • showChangeBlock: true | false
  • validationRule: rule to enable the Submit button; true result enables
  • attachment:
    • validationRule: rule that validate the attachment before allowing user to attach it
    • availabilityRule: rule that would show/hide the attachment button
    • validationMessage: message that would displayed when validationRule returned false
  • fetchData: fetch the user attribute document
  • edit:
    • user: true | false
    • author: true | false
  • participants:
    • setting: hide | available | rule
    • rule: if true then make available
    • query:
  • manageParticipants: [Objects]
    • setting: "hide" | "available" | "rule" | "author". By default it's "hide".
    • rule: provide a rule for allow editing or not.
  • linkedDispatch:
    • action: hide | open | edit
    • message: text to display (optional)
  • displayLayout:
    • id: id for the layout or JSON path query from values
    • condition: rule for determining when to show
  • entryLayout:
    • id: id for the layout or JSON path query from values
    • condition: rule for determining when to show
  • welcomeLayout:
    • id: id for the layout or JSON path query from values
    • condition: rule for determining when to show
  • rewardLayout:
    • id: id for the layout or JSON path query from values
    • condition: rule for determining when to show
  • emptyValues: hide | show
  • dispatchOpen
    • date: hide | show
    • menu: hide | show | admin
  • dispatchEdit
    • date: hide | show
    • menu: hide | show | admin
  • notification:
    • create: [Object] notification configuration for dispatches creation
    • send: "all" | "none" | "some"
    • messageOveride: "yes" | "no"
    • edit: [Object] notification configuration for dispatches editing
    • send: "all" | "none" | "some"
    • messageOveride: "yes" | "no"
  • dateFormat: date format, default to EEE, MMM dd
  • layout: array of display layout options
    • match: display | edit
    • kind: page | screen, screen is for flutter
    • condition: "some rules", when eval to true, this display layout is selected
    • id: "some layout id or handle`

Option properties (stream)

(note these will get moved to schema)

  • attachment
  • camera
    • image: "hide" | "show"
    • video: "hide" | "show"
  • file: "hide" | "show"
  • library: Array of allowed options; supports "file", "image", "video"

  • layout

  • agenda
    • id layout id
    • minHeight min height of instantiated layout

Example

Below configuration is used in tracker configuration as attribute.

{
  "$options": {
    "showTitle": "yes",
    "trackerSelection": "locked",
    "trackers": [],
    "userDirectory": "hide",
    "requireResponse": "hide",
    "swimlaneSelection": "locked",
    "body": "none",
    "toolbar": "hide",
    "participants": {
      "setting": "available"
    },
    "manageParticipants": {
      "setting": "author",
      "rule": ""
    },
    "attachment":
    {
      "camera": {
        "image": "hide",
        "video": "show"
      },
      "file": "hide",
      "library": [
        "video"
      ]
    }
  }
}

Example of notification configuration with tracker

{
  "$options": {
    "userDirectory": "hide",
    "requireResponse": "available",
    "showSocial": false,
    "toolbar": "hide",
    "edit": {
      "author": true
    },
    "notification": {
      "create": {
        "send": "none",
        "messageOverride": "yes"
      },
      "edit": {
        "send": "some",
        "messageOverride": "yes"
      }
    }
  }
}

Example attachment validation rule

{
  "properties": {},
  "$options": {
    "showTitle": "no",
    "validationRule": "#attachments count > 0",
    "attachment": {
      "validationRule": "(#firstAttachment kind is video) and (#firstAttachment orientation is portrait)",
      "availabilityRule": "#attachments count == 0",
      "validationMessage": "Must be a portrait video"
    }
  }
}