mirror of
https://github.com/elastic/kibana.git
synced 2025-06-28 11:05:39 -04:00
In https://github.com/elastic/docs-builder/pull/699, we added the ability to pass arguments to code blocks. In this repo, there are a few code blocks that list two languages (`typescript jsx`). The docs-builder interprets the second language `jsx` as an argument, but `jsx` is not a valid argument so it throws an error. This should fix the `docs-build` check. cc @elastic/docs-engineering
63 lines
2.5 KiB
Markdown
63 lines
2.5 KiB
Markdown
---
|
||
mapped_pages:
|
||
- https://www.elastic.co/guide/en/kibana/current/uiactions-plugin.html
|
||
---
|
||
|
||
# UI Actions [uiactions-plugin]
|
||
|
||
UI Actions plugins provides API to manage **triggers** and **actions**.
|
||
|
||
**Trigger** is an abstract description of user’s intent to perform an action (like user clicking on a value inside chart). It allows us to do runtime binding between code from different plugins. For, example one such trigger is when somebody applies filters on dashboard; another one is when somebody opens a Dashboard panel context menu.
|
||
|
||
**Actions** are pieces of code that execute in response to a trigger. For example, to the dashboard filtering trigger multiple actions can be attached. Once a user filters on the dashboard all possible actions are displayed to the user in a popup menu and the user has to chose one.
|
||
|
||
In general this plugin provides:
|
||
|
||
* Creating custom functionality (actions).
|
||
* Creating custom user interaction events (triggers).
|
||
* Attaching and detaching actions to triggers.
|
||
* Emitting trigger events.
|
||
* Executing actions attached to a given trigger.
|
||
* Exposing a context menu for the user to choose the appropriate action when there are multiple actions attached to a single trigger.
|
||
|
||
## Basic usage [_basic_usage]
|
||
|
||
To get started, first you need to know a trigger you will attach your actions to. You can either pick an existing one, or register your own one:
|
||
|
||
```typescript
|
||
plugins.uiActions.registerTrigger({
|
||
id: 'MY_APP_PIE_CHART_CLICK',
|
||
title: 'Pie chart click',
|
||
description: 'When user clicks on a pie chart slice.',
|
||
});
|
||
```
|
||
|
||
Now, when user clicks on a pie slice you need to "trigger" your trigger and provide some context data:
|
||
|
||
```typescript
|
||
plugins.uiActions.getTrigger('MY_APP_PIE_CHART_CLICK').exec({
|
||
/* Custom context data. */
|
||
});
|
||
```
|
||
|
||
Finally, your code or developers from other plugins can register UI actions that listen for the above trigger and execute some code when the trigger is triggered.
|
||
|
||
```typescript
|
||
plugins.uiActions.registerAction({
|
||
id: 'DO_SOMETHING',
|
||
isCompatible: async (context) => true,
|
||
execute: async (context) => {
|
||
// Do something.
|
||
},
|
||
});
|
||
plugins.uiActions.attachAction('MY_APP_PIE_CHART_CLICK', 'DO_SOMETHING');
|
||
```
|
||
|
||
Now your `DO_SOMETHING` action will automatically execute when `MY_APP_PIE_CHART_CLICK` trigger is triggered; or, if more than one compatible action is attached to that trigger, user will be presented with a context menu popup to select one action to execute.
|
||
|
||
|
||
## Examples [_examples_9]
|
||
|
||
[ui_action examples](https://github.com/elastic/kibana/blob/main/examples/ui_action_examples/README.md)
|
||
|
||
|