Categories

System Admin
DXM
Documents
Data

Links

Page Header App

Table of Contents

Description

The Page Header App is used at the top of a webpage to give the user essential information at first glance. This can be something as simple as just a Fund Name or it can include a Shareclass or a dropdown list for selection purposes with a search field and details such as Key Facts like NAV, AUM, Morningstar Ratings, Risk Ratings, etc.

3 Presets are available: Header Only, Basic and Full.

  • Header Only includes a Title and Subtitle
  • Basic includes a Title, Subtitle, and Key Facts such as Shareclass codes (ISIN/Bloomberg Ticker/etc.)
  • Full includes all of the above plus search fields, and a shareclass count

Add a new App

Click the Studio tab, then click + to add a new application.

Studio Wizard

  1. Click Next to start the Studio Wizard.
  2. Provide a name and description for your app. Once these items have been filled, the Next button will become active. Click Next.
  1. Use the dropdown arrow to select a template to base your application on. Enter a few letters of the application name to make the search easier.
  2. Select Kurtosys App Page Header 1.4.0 (or the latest version available), then click Next.
  1. Use the dropdown arrow to select a Preset. For this example, select Page Header Wizard – Full.
  2. Click Next.
  3. Connect your data – allowed inputs
    • Culture – enter the cultures added to the Data Dictionary
    • Client Code – use the dropdown arrow to select Class Properties > ISIN or whichever entity is used for searching
  1. Click Next.
  1. No Parent Client Configuration is required for this app, click Next.
  2. The token will be added automatically, click Next.
  1. Heading Configuration
    • Title Text – mandatory field. Although you will fill in static text using the Wizard, this will be changed in the config to use dynamic data
    • Sub-Title Text – non-mandatory field, can be left blank
Note: Although it is mandatory to add Title Text, this text is static and will need to be changed to dynamic text in the config.
  1. Click Next.
  2. Definition List Configuration – the definition list is a list of properties (such as the corresponding ISIN, Bloomberg Ticker, etc.) that corresponds with the Fund defined in the heading. Click + to add items to the definition list or add these later to the config. Each item is added with a Term (the definition text), and Definition (the property to be used).
Note: Although properties should be used for Terms, static text only can added here. This will need to be amended in the config so that it uses a Query. The static text, if added here, can be used as a memo as to what should be added with queries.
  1. Click Next.
  1. Dropdown Configuration – the Page Header – Full preset includes a dropdown search, add some prompt text so the user knows they can make a selection, e.g. a shareclass belonging to a particular fund.
  2. Click Next.
  3. Search Configuration – the user has access to search functionality which is defined based on a unique code (either Fund, ISIN, etc.)
    • Search – Placeholder Text – enter some text to prompt the user what to search for
    • Search – No Result Text – enter some text to inform the user that their search was unsuccessful
    • Share Class Count – Label – enter some text to inform the user how many matching results have been found
    • Share Class Count – Placeholder Text – enter count
  1. Click Next.
  1. Click Finish on the Summary screen.
  2. Click the Configuration tab on the Application Details screen. This will display the app preview.
  1. Always ensure that the Data | Context | Entity by Type | Share Class | Input Key is set to clientCode so as to enable data to pull through correctly, then click Save.
  2. Type in a comment, then click Confirm.

Configuration

Copy & Paste JSON

If you choose to skip the Wizard, you can build an app by copying and pasting a JSON config file such as the one below into your Configuration editing screen.

With the Configuration tab selected, copy and paste the JSON below and remove the extra pair of curly brackets.

Replace the word USE YOUR OWN TOKEN HERE with the token applicable to your client instance.

    {
  "components": {
    "app": {
      "gridProps": {
        "breakpoints": [
          {
            "modifier": "up",
            "props": {
              "grid": {
                "rows": [
                  {
                    "columns": [
                      {
                        "components": [
                          {
                            "grid": {
                              "rows": [
                                {
                                  "columns": [
                                    {
                                      "components": [
                                        {
                                          "key": "heading"
                                        }
                                      ]
                                    }
                                  ]
                                },
                                {
                                  "columns": [
                                    {
                                      "components": [
                                        {
                                          "key": "definition.list"
                                        }
                                      ]
                                    }
                                  ]
                                }
                              ]
                            }
                          }
                        ],
                        "style": {
                          "flex": {
                            "basis": "60%"
                          }
                        }
                      },
                      {
                        "components": [
                          {
                            "key": "capabilities"
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "columns": [
                      {
                        "components": [
                          {
                            "key": "dropdown"
                          }
                        ],
                        "style": {
                          "flex": {
                            "basis": "25%"
                          },
                          "margin": {
                            "right": "40px"
                          }
                        }
                      },
                      {
                        "components": [
                          {
                            "key": "search",
                            "props": {
                              "displayPill": true
                            }
                          }
                        ],
                        "style": {
                          "flex": {
                            "basis": "75%"
                          }
                        }
                      }
                    ]
                  }
                ]
              }
            },
            "size": "medium"
          }
        ]
      }
    },
    "capabilities": {
      "query": {
        "code": "combined_capability",
        "entityType": "CLSS",
        "queryOptionsType": "property"
      }
    },
    "definitions": {
      "props": {
        "itemSeparator": "|",
        "items": [
          {
            "definition": "isin",
            "term": "ISIN"
          }
        ],
        "termSuffix": ":"
      }
    },
    "dropdown": {
      "dataEntitiesId": "dropdown",
      "placeholder": "Select a shareclass",
      "resultItemLabel": {
        "queryOptionsType": "none",
        "subQueries": [
          {
            "code": "share_class_name",
            "entityType": "CLSS",
            "queryId": "className",
            "queryOptionsType": "property"
          }
        ],
        "value": "{sub:className}"
      }
    },
    "heading": {
      "props": {
        "subTitle": "",
        "title": "Kapital XYZ Fund"
      }
    },
    "search": {
      "props": {
        "iconPosition": "left",
        "minCharacterTrigger": 3,
        "onChangeMillisecondTimeout": 500,
        "placeholder": "Search by ISIN"
      },
      "secondaryProps": {
        "dataEntitiesId": "search",
        "noResultText": "No matching results - please try another search",
        "resultItemLabel": {
          "left": [
            {
              "code": "share_class_name",
              "entityType": "CLSS",
              "queryId": "className",
              "queryOptionsType": "property"
            }
          ],
          "right": [
            {
              "code": "isin",
              "entityType": "CLSS",
              "queryId": "className",
              "queryOptionsType": "property"
            }
          ]
        },
        "shareClassCount": {
          "label": "{count} share classes match your search",
          "placeholder": "count"
        }
      }
    }
  },
  "culture": {
    "base": "en-GB",
    "default": "en-GB"
  },
  "data": {
    "context": {
      "entities": [
        {
          "id": "search",
          "inputs": [
            {
              "key": "fundList",
              "query": {
                "key": "fundList",
                "queryOptionsType": "input"
              }
            }
          ],
          "requestBody": {
            "fundList": [
              "{input:fundList}"
            ],
            "identifierSearch": {
              "fuzzy": false,
              "properties": [
                "share_class_name",
                "isin"
              ],
              "value": "{input:term}"
            },
            "include": {},
            "limit": 10,
            "preserveOriginal": true,
            "sort": [
              {
                "direction": "ASC",
                "key": "share_class_name"
              },
              {
                "direction": "ASC",
                "key": "isin"
              }
            ],
            "type": "CLSS"
          },
          "requestBodyQueries": {}
        },
        {
          "id": "dropdown",
          "inputs": [
            {
              "key": "fundCode",
              "query": {
                "code": "fund_code",
                "entityType": "CLSS",
                "queryOptionsType": "property"
              }
            },
            {
              "key": "fundList",
              "query": {
                "key": "fundList",
                "queryOptionsType": "input"
              }
            },
            {
              "key": "fundName",
              "query": {
                "code": "fund_name",
                "entityType": "CLSS",
                "queryOptionsType": "property"
              }
            }
          ],
          "requestBody": {
            "fundList": [
              "{input:fundList}"
            ],
            "identifierSearch": {
              "fuzzy": true,
              "properties": [
                "fund_code"
              ],
              "value": "{input:fundCode}"
            },
            "include": {},
            "includeProperties": [
              "fund_name",
              "share_class_name"
            ],
            "preserveOriginal": true,
            "sort": {
              "direction": "ASC",
              "key": "share_class_name"
            },
            "type": "CLSS"
          },
          "requestBodyQueries": {}
        }
      ],
      "entityByType": {
        "CLSS": {
          "clientCodeProperty": "isin",
          "include": {
            "commentaries": {}
          },
          "inputKey": "isin"
        }
      }
    }
  },
  "token": "USE YOUR OWN TOKEN HERE"
}

Change Static to Dynamic

Although a basic app has now been created, there are a number of things that need to be amended such as adding in queries to create Dynamic data, also, other elements can be added or deleted depending on a client’s needs.

Title and Sub Title

  1. Click Components | Heading Configuration.
  2. Click Add Element+.
  1. Select Dynamic Inputs.
  2. Click Save.
  3. Click Dynamic Inputs.
  1. Click + Create Title.
  2. Use the dropdown to select property for Type*.
  3. Click Add Element+.
  1. Scroll or search to select Code and Entity Type, then click Save.
  2. The Code will be the Data Dictionary property for Fund Name, i.e. fund_name.
  3. Use the dropdown arrow to select CLSS for Entity Type.
  1. Browse back to Dynamic Inputs in the navigation pane, then click Add Element+.
  2. Select Sub Title, then click Save.
  1. Repeat these steps for Sub Title. Click Sub Title.
  2. Use the dropdown to select property for Type*.
  3. Click Add Element+.
  1. Select Code and Entity Type, then click Save.
  2. Use the Data Dictionary property for Short Fund Name for Code, i.e. fund_short_name.
  3. Use the dropdown list to select CLSS for Entity Type.
  4. Click Save.
  1. Type in a comment, then click Confirm.
  2. To ensure that Data pulls through correctly, switch to <> (JSON) and confirm that your Data | Context | Entity by Type | inputKey is set to clientCode, not isin.

Definitions Configuration

  1. Browse to Components, then click Definitions Configuration.
  2. Click Add Element+.
  1. Select Dynamic Inputs then click Save.
  2. Click Dynamic Inputs.
  1. Click Add Element+.
  2. Select Items, then click Save.
  1. Click Items.
  2. Click Add Row+.
  1. Click 1.No Label.
  2. Click Add Element+.
  1. Select Term, then click Save.
  2. Click + Create Definition*.
  1. Use the dropdown to select property for Type*.
  2. Click Add Element+.
  3. Scroll or search to select Code and Entity Type.
  4. Click Save.
  1. Add in the unique Data Dictionary code for the property to be displayed, e.g. bloomberg_code.
  2. Select the matching Entity Type from the dropdown list, e.g. CLSS.
  3. Browse back to Term.
  4. Use the dropdown to select none for Type*. The text prompt will be static.
  5. Click Add Element+.
  1. Scroll or search to select Value, then click Save.
  2. Use the dropdown for Value to select string, then enter text to describe the definition added, e.g. Bloomberg Ticker.
  1. Browse back to Items, then repeat steps 8 to 23 to add additional properties.
  2. Click Save.
  3. Type in a comment then click Confirm.

Search

Search and Context Entities | 1.search work together.

First set up Context.

  1. With the Configuration tab selected, browse to Configuration | Data | Context | Entities.
  2. Click 1.search.
  1. Click Request Body Static.
  2. Click Add Element+.
  1. Scroll or search to select Search, then click Save.
  2. Click Identifier Search. Add in properties which will be used for filtering the search field.
  1. Click Properties*.
  2. Some properties are added by default. Rename them if necessary or add additional properties, by clicking Add Row+.
  1. After adding/editing/deleting properties, browse back to Request Body Static.
  2. This example does not use a Fund List (Segmentation list) therefore it must be deleted from the request body.
  3. Click  to delete it.
  4. Click Confirm to confirm the deletion.
  1. Click Save.
  2. Type in a comment, then click Confirm.
  1. Browse to Configuration | Components, then click Search.
  2. Click Static Inputs.
  1. Amend the wording for the Placeholder if required. 
  2. Click Add Element+ to add a pill for the shareclass count.
  1. Select Pill Properties, then click Save.
  2. Click Pill Properties.
  1. Use the dropdown to select left or right for the Pill Position (placement in the search field).
  2. Click Add Element+.
  3. Select Value, then click Save.
  1. Leave Value blank.
  2. Click Save.
  3. Type in a comment, then click Confirm.

Dropdown Configuration

The Dropdown Configuration and Context | Entities | 2.dropdown section work together.

First set up Context

  1. With the Configuration tab selected, browse to Configuration | Data | Context | Entities.
  2. Click 2.dropdown.
  1. Click Request Body Static.
  2. Click Include Properties. These are the properties that will be used to filter the dropdown list.
  1. Amend or delete the default properties.
  2. Click Add Row+ to add any additional properties.
  1. Click Sort in the navigation pane.
  2. Make sure the properties used in the sorting fields match at least one of the properties used for the Include Properties fields.
  1. Browse back to Request Body Static.
  2. Click Add Element+.
  3. Select Search, then click Save.
  1. Browse back to Request Body Static, this search does not use a Fund List (Segmentation list) to get results so this must be deleted from the Request Body.
  2. Click to delete Fund List.
  3. Click Confirm to confirm your deletion.
  1. Browse to Configuration | Components | Dropdown Configuration.
  2. Click Result Item Label*. This will create the dropdown list return results.
  1. Click Sub Queries. Sub Queries are used so that the dropdown list can be composed of multiple properties, e.g. Short Name – ISIN, or ISIN – Fund Code, etc. However, only 1 property is required.
  2. Click className. The properties used in the sub query must match the properties used in the Include Properties section in the context.
  1. Make sure the Code field contains a property that matches a property set in the Context.
  2. Browse back to Sub Queries, then click Add Row+ to add additional properties to display in the dropdown.
  1. Click 2. No Label.
  2. Use the dropdown to select property for Type*.
  3. Click Add Element+.
  1. Select Code, Entity Type and Query Id, then click Save.
  2. Use a different property code for Code, e.g. isin.
  3. Use the dropdown to select an Entity Type, e.g. CLSS.
  4. Type in a Query Id, this can be the same as the Code property.
  1. Browse back to Result Item Label and in the Value field, add the additional Sub Query Id in curly brackets next to the first sub query. (You can separate them with a hyphen or other character as your design requires.)
  2. Click Save.
  3. Type in a comment, then click Confirm.

Capabilities

This feature, also known as the category pill, allows you to display, for example, the Fund Code.

  1.  Browse to Configuration | Components, then click Capabilities.
  2. Click Query.
  1. The Code is set to a default property, combined_capability. Type in a property Code that better represents the categorization of the funds, e.g. fund_code, then click Save.
  2. Type in a comment, then click Confirm.

Customization

Reordering Elements

All app elements, e.g. the Fund Name and Key Fact information, etc., can be displayed in whatever order the client requires. This app uses a grid for the display

  1. With the Configuration tab selected, browse to Configuration | Components, then click App.
  2. Click Grid Props.
  1. Click Breakpoints.
  2. Click 1.No Label.
  1. Click Configuration.
  2. Click Grid.
  1. Click Rows*.
  2. Use the up or down arrows to change the order of the rows.
  1. Rows have been swapped.
  2. To name rows, click on each row, add an element called Name, and name it appropriately.
  1. Rows contain Columns.
  2. Columns can be renamed by adding an element: Name.
  1. Click on a column to see what Components it contains.
  2. Columns can be reordered within a row.
  3. Rows and columns can be added or deleted, as needed.
  1. After ordering the elements as required, click Save.
  2. Type in a comment, then click Confirm.

Read more on styling.