# 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
}