Object: hub_sidenav_items

Usage & Structure

Creates menu items in the left sidebar menu of the Uberflip application Hubs UI. You can create three types of menu item with this object:

  • Root: A new root (root-level non-expandable) menu item that behaves as a link, e.g. Content.
  • Child: A new child (second-level non-expandable) menu item that is added below an existing parent (root-level expandable) menu item, e.g. menu items under Dashboard. Behaves as a link.
  • Parent+Nested Children: A new parent (root-level expandable) menu item containing one or more new child (second-level non-expandable) menu items.

All menu items created by your manifest will appear below all default Uberflip application menu items. In Hubs where multiple apps that create menu items are installed, the app-created menu items will be displayed in order of installation (oldest to newest).

For all levels, you must specify the order in which menu items created by your app are shown. The order you specify is applicable only to menu items created in the same manifest, i.e. it does not affect the order of your app's menu items relative to default Uberflip application menu items, or to menu items created by other apps.

Root menu items and all child menu items act as links, so a URL must be specified when creating them. The content at this URL is inserted into the right pane in the Uberflip Hubs UI via iframe.

New parent menu items must contain at least one child menu item (can't be created empty).

Root and parent menu items are displayed as a label beside a UI icon (glyphicon), so a glyphicon must be specified when a parent item is created. Child menu items do not have a UI icon.

Consists of one or more hub_sidenav_item objects that each contain the properties listed below.

Properties

Root

  • code string / required: The unique name used to identify the root menu item (internal use by Uberflip only).
    • Create a new root menu item by prefacing value with an underscore ("_").
    • Existing root menu items can not be referenced.
  • text string / required / max: 50: The label displayed on the root menu item.
  • url_template string / required / max: 255: The URL for the content to be displayed when the root menu item is clicked.
    • Can be a full external URL, or a relative link within the app.uberflip.com domain (e.g. /hubs/integrations).
    • External URLs will be iframed into the right pane, and a dedicated URL with the format app.uberflip.com/hubs/navigate/{id1}/{id2} will be displayed in the address bar.
  • icon_code string / required: The glyphicon displayed to the left of the label on the root menu item.
    • Value must be the code of a glyphicon from a predetermined set. See here for a list of available glyphicons and their codes.
  • ordinal integer / required: The value used to set the order position for this menu item relative to other menu items created at the same (root) level in the same manifest.
    • Required even if only one menu item is defined.
    • Numbering is zero-based.
  • global_permission_codes array / optional: The permission(s) which must be held by a user to view the root menu item.
    • Values must match values of global_permissions.global_permission.code.
    • Can also be the codes of existing system default permissions. See here for a list of system default permissions and their codes.

Child

  • code string / required: The unique name used to identify the child menu item (internal use by Uberflip only).
    • Create a new child menu item by prefacing value with an underscore ("_").
    • Existing child menu items can not be referenced.
  • parent_code string / required: The parent menu item below which this child item will be created.
    • Value must be the code of a system default parent menu item (root-level expandable). See here for a list of available system default parent menu items and their codes.
    • Can not be a root (root-level non-expandable) menu item.
  • text string / required / max: 50: The label displayed on the child menu item.
  • url_template string / required / max: 255: The URL for the content to be displayed when the child menu item is clicked.
    • Can be a full external URL, or a relative link within the app.uberflip.com domain (e.g. /hubs/integrations).
    • External URLs will be iframed into the right pane, and a dedicated URL with the format app.uberflip.com/hubs/navigate/{id1}/{id2} will be displayed in the address bar.
  • ordinal integer / required: The value used to set the order position for this menu item relative to other menu items created at the same (child) level in the same manifest.
    • Required even if only one menu item is defined.
    • Numbering is zero-based.
  • global_permission_codes array / optional: The permission(s) which must be held by a user to view the child menu item.
    • Values must match values of global_permissions.global_permission.code.
    • Can also be the codes of existing system default permissions. See here for a list of system default permissions and their codes.
    • User who do not have permission to view the parent menu item under which this child menu item is located will also be unable to view this child menu item, even if they have the permission for the child menu item.

Parent+Nested Children

Parent

An object which defines a new parent menu item (which must also contain at least one child menu item) consists of these properties:

  • code string / required: The unique name used to identify the parent menu item (internal use by Uberflip only).
    • Create a new parent menu item by prefacing value with an underscore ("_").
    • Existing parent menu items can not be referenced.
  • text string / required / max: 50: The label displayed on the parent menu item.
  • icon_code string / required: The glyphicon displayed to the left of the label on the parent menu item.
    • Value must be the code of a glyphicon from a predetermined set. See here for a list of available glyphicons and their codes.
  • children array / required: The child menu item(s) which will be displayed when the parent menu item is expanded.
    • Value must be an array of nested objects containing the properties listed under Nested Children below.
    • Must not be empty.
  • ordinal integer / required: The value used to set the order position for this menu item relative to other menu items created at the same (parent) level in the same manifest.
    • Required even if only one menu item is defined.
    • Numbering is zero-based.
  • global_permission_codes array / optional: The permission(s) which must be held by a user to view the parent menu item (and all child menu items it contains).
    • Values must match values of global_permissions.global_permission.code.
    • Can also be the codes of existing system default permissions. See here for a list of system default permissions and their codes.

Nested Children

A nested children object which is required when creating a new parent menu item consists of these properties:

  • code string / required: The unique name used to identify the child menu item (internal use by Uberflip only).
    • Create a new child menu item by prefacing value with an underscore ("_").
    • Existing child menu items can not be referenced.
  • text string / required / max: 50: The label displayed on the child menu item.
  • url_template string / required / max: 255: The URL for the content to be displayed when the child menu item is clicked.
    • Can be a full external URL, or a relative link within the app.uberflip.com domain (e.g. /hubs/integrations).
    • External URLs will be iframed into the right pane, and a dedicated URL with the format app.uberflip.com/hubs/navigate/{id1}/{id2} will be displayed in the address bar.
  • ordinal integer / required: The value used to set the order position for this menu item relative to other menu items created at the same (child) level in the same manifest.
    • Required even if only one menu item is defined.
    • Numbering is zero-based.
  • global_permission_codes array / optional: The permission(s) which must be held by a user to view the child menu item.
    • Values must match values of global_permissions.global_permission.code.
    • Can also be the codes of existing system default permissions. See here for a list of system default permissions and their codes.

Sample Manifests

Root

"hub_sidenav_items": [
 {
 "code": "_EXAMPLE_ROOT_ITEM",
 "text": "Example App",
 "url_template": "https://www.example.com",
 "icon_code": "GI_LINK",
 "global_permission_codes": ["_EXAMPLE_APP_PERMISSIONS"]
 }
]

Child

"hub_sidenav_items": [
 {
 "code": "_EXAMPLE_CHILD_ITEM",
 "parent_code": "DASHBOARD",
 "text": "Example App Dashboard",
 "url_template": "https://www.example.com",
 "global_permission_codes": ["_EXAMPLE_APP_PERMISSIONS"]
 }
]

Parent+Nested Children

"hub_sidenav_items": [
    {
      "code": "_EXAMPLE_PARENT_ITEM",
      "text": "Example App",
      "icon_code": "GI_DASHBOARD",
      "global_permission_codes": ["_EXAMPLE_APP_PERMISSIONS"],
      "children": [
        {
          "code": "_EXAMPLE_NESTED_CHILDREN_ITEM",
          "text": "Example App Configuration",
          "url_template": "/hubs/integrations",
          "global_permission_codes": ["_EXAMPLE_APP_READ_PERMISSION", "_EXAMPLE_APP_WRITE_PERMISSION"]
        }
      ]
    }
]

Referencing

Menu items created with this object can not be referenced in any other objects.