WebUI components

Menustructure, search options and some additional items can be configured based on the user role using the files located in the uicontrol/ folder. There can be one file for each role, if no role file is found, the configuration from _default.yaml is loaded. Note that there is no inheritance, so you always need to provide a full file per role.

Format Result List

Those options apply to (almost) all sections that deal with result lists for workflows or certificates.

Column Layout

Add a section cols to you definition block:

cols:
  - label: I18N_OPENXPKI_UI_WORKFLOW_SEARCH_SERIAL_LABEL
    field: WORKFLOW_SERIAL
  - label: I18N_OPENXPKI_UI_WORKFLOW_SEARCH_UPDATED_LABEL
    field: WORKFLOW_LAST_UPDATE
  - label: I18N_OPENXPKI_UI_WORKFLOW_STATE_LABEL
    field: WORKFLOW_STATE
  - label: I18N_OPENXPKI_UI_CERTIFICATE_SUBJECT
    field: context.cert_subject
  - label: I18N_OPENXPKI_UI_WORKFLOW_FIELD_TRANSACTION_ID_LABEL
    template: "[% context.transaction_id %]"

Label and either field or template are mandatory. Optional keys are sortkey, which is required to use sorting together with templates, and format which adds a formatting rule such as “timestamp” or “certstatus” (See the WebUI Page API Reference for all available formats).

Pager

The pager has default settings in the code but you can provide your own values:

pager:
  pagesizes: 10, 20, 50, 100
  pagersize: 5

The pagesizes parameter is responsible for the “Items per page” selector. The pagersite parameter refers to the number of itesm in the page selector.

Certificate search mask

The four fields Subject, Subject. Alt Name, Profile and Status are fixed. You can add additional that are combined to a cloneable dual-select field to search for data in the certificate_attributes tables.

Add a block named “certsearch” to the uicontrol file:

certsearch:
  default:
    attributes:
     - label: I18N_OPENXPKI_UI_WORKFLOW_FIELD_ENTITY_LABEL
       key: meta_entity

     - label: I18N_OPENXPKI_UI_SEARCH_REQUESTOR_NAME_LABEL
       key: meta_requestor
       pattern: '*%s*'
       operator: inlike

     - label: I18N_OPENXPKI_UI_SEARCH_REQUESTOR_EMAIL_LABEL
       key: meta_email
       operator: in
       transform: lower

Label and key are mandatory, key is the attributes key to be found in certificate_attributes, as of v1.19 the default operator is “IN”, so multiple values given for the same key are “ORed” (up to 1.18 this was AND which confused most users).

Possible operators are LIKE and EQUAL (values are ANDed!) or the special “INLIKE” (LIKE pattern with values ORed).

The transform and pattern keyword allow preprocessing of the input values prior passing it to the SQL engine. Transform can be upper or lower which applies the uppercase/lowercase method to the value, pattern is used with sprintf:

$val = sprintf($pattern, $val);

Each transformation is applied individually on each value.

Workflow search mask

This is the same as for the certificate search mask, the uicontrol key is wfsearch, queries are executed against the workflow_attributes table.

Tasklist

The page “My Tasks” can hold multiple blocks showing a list of workflows. Minimal configuration for one item looks like:

tasklist:
  - label: I18N_OPENXPKI_UI_TASKLIST_PENDING_REVOCATION_LABEL
    description: I18N_OPENXPKI_UI_TASKLIST_PENDING_REVOCATION_DESCRIPTION
    query:
      TYPE:
        - certificate_revocation_request_v2
      STATE:
        - PENDING

Label and description are shown on top of the result table, anything below query is handed as parameter to the search_workflow_instances API method.

If the result set of the query is empty, the default behaviour is to display a default “No result” test. You can customize this text using the ifempty parameter:

  • label: I18N_OPENXPKI_UI_TASKLIST_PENDING_ENROLLMENT_LABEL description: I18N_OPENXPKI_UI_TASKLIST_PENDING_ENROLLMENT_DESCRIPTION ifempty: Sorry but there is nothing to do today…

If you dont want to show an empty the result at all, pass the special word hide:

- label: I18N_OPENXPKI_UI_TASKLIST_PENDING_ENROLLMENT_LABEL
  description: I18N_OPENXPKI_UI_TASKLIST_PENDING_ENROLLMENT_DESCRIPTION
  ifempty: hide