Menu Item type
Using the prism.on('beforemenu', function(ev, args) { ... }) event allows you to manipulate the items displayed in the menu being opened, via the args.settings.items property, which is an array of menu items.
Properties
These are the properties that may be defined in a Menu Item:
| Name | Type | Description |
|---|---|---|
id | string | A unique id for the item, used to identify it in subsequent events |
type | string | Specify a type for special menu items: "separator", "check", "header"; For regular items, type is not required |
caption | string | The text shown on the menu item |
desc | string | The menu item's tooltip |
disabled | boolean | Set to true to disable the item |
items | MenuItem[] | An array of items to create a sub-menu |
execute | function | A function to execute when the menu item is clicked |
checked | boolean | For checkbox type (check) items can be used to set or determine the checkbox state |
classes | string | A string of CSS class names, separated with a space (), applied to the menu item |
Examples
Simple action
The default state of a menu item is clickable, to perform some action.
{
id: "setDefaults",
caption: "Set as My Default Filters",
desc: "Set as My Default Filters",
execute: function () {
console.log('menu item was clicked!');
}
}
Submenu
An item can contain its own array of menu items. When the user hovers or clicks this item, a sub-menu of the child items is shown.
{
id: "download",
caption: "Download",
desc: "Download",
items: [
{ ... },
{ ... }
]
}
Line separator
A line separator is not clickable and is only used to visually separate menu item for different categories of actions.
{
type: "separator"
}
Header
A header is an inactive item used only to display a text, such as a title for a section of menu items
{
type: "header",
caption: "Default Filters",
desc: "Default Filters",
classes: "mi-plain"
}
Checkbox
A menu item that functions as a checkbox control. Clicking it will change its checked state.
{
id: "selector",
type: "check",
caption: "Widget affects dashboard filters",
desc: "Widget affects dashboard filters",
checked: false
}