UNPKG

@servicenow/sdk

Version:
173 lines (126 loc) 4.32 kB
--- tags: [ApplicationMenu, application menu, navigation, module, sys_app_application] --- # ApplicationMenu Creates an Application Menu (`sys_app_application`). Application menus define top-level sections in the ServiceNow navigator sidebar. Modules define the clickable items within them. ## Signature ```typescript fluent ApplicationMenu(config) ``` ## Parameters ### config `ApplicationMenu` an object containing the following properties: **Properties:** - **$id** (required): `string | number | ExplicitKey<string>` - **title** (required): `string` The label for the menu in the application navigator. - **$meta** (optional): `object` - **installMethod**: `'first install' | 'demo' | 'once'` Map a record to an output folder that loads only in specific circumstances. 'first install' - > 'unload', 'demo' -> 'unload.demo' - **active** (optional): `boolean` Whether the menu is enabled. - **category** (optional): `string | Record<'sys_app_category'>` The menu category that defines the navigation menu style. - **description** (optional): `string` Additional information about what the application does. - **hint** (optional): `string` The tooltip text that appears when a user hovers over the menu. - **name** (optional): `string` An internal name to differentiate between applications with the same title. - **order** (optional): `number` The relative position of the application menu in the application navigator. - **roles** (optional): `(string | Role)[]` A list of `Role` objects or names of roles that can access the menu. ## See - https://docs.servicenow.com/csh?topicname=app-menu-api-now-ts.html&version=latest ## Examples ### Basic Application Menu Create an application menu with role-based access ```typescript fluent /** * @title Basic Application Menu * @description Create an application menu with role-based access */ import { ApplicationMenu, Role } from '@servicenow/sdk/core' export const activity_admin = Role({ name: 'x_appmenu.activity_admin', description: 'Activity admin role', }) export const menu = ApplicationMenu({ $id: Now.ID['My App Menu'], title: 'My App Menu', hint: 'This is a hint', description: 'This is a description', roles: [activity_admin], active: true, }) ``` ### Multiple Application Menus Create multiple application menus under the same category ```typescript fluent /** * @title Multiple Application Menus * @description Create multiple application menus under the same category */ import { ApplicationMenu, Record } from '@servicenow/sdk/core' export const appCategory = Record({ $id: Now.ID['sys_app_category_my_app'], table: 'sys_app_category', data: { name: 'My App Category', style: 'border: 1px solid #96bcdc; background-color: #FBFBFB;', default_order: 100, }, }) export const menu = ApplicationMenu({ $id: Now.ID['My App Menu'], title: 'My App Menu', hint: 'This is a hint', description: 'This is a description', category: appCategory, active: true, }) export const menu2 = ApplicationMenu({ $id: Now.ID['Menu 2'], title: 'Menu 2', hint: 'hint 2', description: 'This is a description', category: appCategory, active: true, }) ``` ### Application Menu with Category Create an application menu linked to a custom category ```typescript fluent /** * @title Application Menu with Category * @description Create an application menu linked to a custom category */ import { ApplicationMenu, Record, Role } from '@servicenow/sdk/core' export const appCategory = Record({ $id: Now.ID['sys_app_category_my_app'], table: 'sys_app_category', data: { name: 'My App Category', style: 'border: 1px solid #96bcdc; background-color: #FBFBFB;', default_order: 100, }, }) export const activity_admin = Role({ name: 'x_appmenu.activity_admin', description: 'my role description', }) export const menu = ApplicationMenu({ $id: Now.ID['My App Menu'], title: 'My App Menu', hint: 'This is a hint', description: 'This is a description', category: appCategory, roles: [activity_admin], active: true, }) ``` For guidance on creating application menus and modules, see the `application-menu-guide` topic.