Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Plugins: Extend panel menu with commands from plugins #63802

Merged
merged 77 commits into from
Mar 8, 2023

Conversation

mckn
Copy link
Contributor

@mckn mckn commented Feb 27, 2023

What is this feature?
This PR adds the functionality for app plugins to add command menu items to the dashboard panel menu.

In PR #63089 we extended that functionality by adding support to add command extensions in the dashboard panel menu.

The difference between links and commands is that links will generate a real href link that will navigate the user away from the current page when clicked. Commands on the other hand will keep the user on the current page but call a command handler function that is provided when registering the plugin.

We do want to refactor and try to make the code a bit simpler but will do that in follow up PRs since it won't affect the external APIs of this feature and we do want to start to dog food this internally.

The example below show case how to extend the dashboard panel menu with a command:

  1. First of all you need to enable preload: true for your plugin. We are collecting the extensions during the preload process of a plugin.
  2. Secondly you need to configure an extension for your plugin. Example: https://github.com/grafana/grafana-plugin-examples/blob/mckn/plugin-link-tests/examples/app-basic/src/module.ts
  3. You can now navigate to a dashboard and enjoy the power of plugin extensions in the panel menu.

Kapture 2023-03-06 at 09 16 29

Why do we need this feature?
To improve the user experience by making the UI feel less fragmented into different apps rather than one unified experience.

Who is this feature for?
End users and plugin developers

Which issue(s) does this PR fix?:
Related Epic #61658

jackw and others added 30 commits February 8, 2023 12:20
@mckn mckn added no-backport Skip backport of PR add to changelog and removed levitate breaking change A label indicating a breaking change and assigned by Levitate. labels Mar 6, 2023
@mckn
Copy link
Contributor Author

mckn commented Mar 6, 2023

We are introducing breaking changes compared to main but this feature is not yet released in any version so it won't be an issue.

@mckn mckn marked this pull request as ready for review March 6, 2023 08:21
@mckn mckn requested review from joshhunt and a team as code owners March 6, 2023 08:21
@mckn mckn requested review from andresmgot, axelavargas, kaydelaney, ashharrison90, jackw and leventebalogh and removed request for a team March 6, 2023 08:21
@grafanabot grafanabot added the levitate breaking change A label indicating a breaking change and assigned by Levitate. label Mar 7, 2023
Copy link
Contributor

@jackw jackw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! 🚀

Drone doesn't seem to mind but I'm not sure about the commit history. It appears there are commits here that are from #63089 🤔

@leventebalogh leventebalogh merged commit b63c569 into main Mar 8, 2023
@leventebalogh leventebalogh deleted the mckn/panel-menu-command-extensions branch March 8, 2023 13:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
add to changelog area/backend area/frontend levitate breaking change A label indicating a breaking change and assigned by Levitate. no-backport Skip backport of PR type/docs
Projects
Development

Successfully merging this pull request may close these issues.

None yet

4 participants