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

feat: support custom plugin (DHIS2-17283) #3051

Open
wants to merge 72 commits into
base: master
Choose a base branch
from

Conversation

edoardo
Copy link
Member

@edoardo edoardo commented Aug 9, 2024

Implements DHIS2-17283

NOTE: this branch is based on refactor/use-platform-plugin-components which needs to be merged first


Key features

  1. add support for 3rd party dashboard plugins

Description

Dashboard app should have support for custom plugins built with the DHIS2 tooling.
This assumes the plugin uses the platform's components that provide the postRobot communication compatible with this version of dashboard app.


TODO

  • fix Jest tests for AppItem

Known issues

  • tests pass but for AppItem an error happens on render (the updated snapshot makes the test pass)

Screenshots

Example with the Climate data app:
Screenshot 2024-09-06 at 16 21 59

This silences warnings in the console.
Link is rendering an a tag, and MenuItem does the same.
Use a redirect on click instead (already done in the print submenu)
This hopefully has a better solution.
It should be enough to just use isParentCached for knowing when to start
recording and removing the cache in the plugins.
This should fix some issues with plugin content not being visible.
This is to avoid the error boundary to show up for uncaught errors
(failed to fetch a visualization) which
interferes with Cypress testing.
@dhis2-bot
Copy link
Contributor

dhis2-bot commented Aug 9, 2024

🚀 Deployed on https://pr-3051.dashboard.netlify.dhis2.org

@dhis2-bot dhis2-bot temporarily deployed to netlify August 9, 2024 13:05 Inactive
dependabot bot and others added 4 commits August 9, 2024 15:05
* chore(deps): bump the security group with 3 updates

Updates `ejs` from 3.1.8 to 3.1.10
- [Release notes](https://github.com/mde/ejs/releases)
- [Commits](mde/ejs@v3.1.8...v3.1.10)

Updates `tmpl` from 1.0.4 to 1.0.5
- [Commits](https://github.com/daaku/nodejs-tmpl/commits/v1.0.5)

Updates `word-wrap` from 1.2.3 to 1.2.5
- [Release notes](https://github.com/jonschlinkert/word-wrap/releases)
- [Commits](jonschlinkert/word-wrap@1.2.3...1.2.5)

---
updated-dependencies:
- dependency-name: ejs
  dependency-type: indirect
  dependency-group: security
- dependency-name: tmpl
  dependency-type: indirect
  dependency-group: security
- dependency-name: word-wrap
  dependency-type: indirect
  dependency-group: security
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore: break up command chain

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jen Jones Arnesen <jennifer@dhis2.org>
Bumps [ansi-regex](https://github.com/chalk/ansi-regex) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/chalk/ansi-regex/releases)
- [Commits](chalk/ansi-regex@v3.0.0...v3.0.1)

---
updated-dependencies:
- dependency-name: ansi-regex
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jen Jones Arnesen <jennifer@dhis2.org>
@dhis2-bot dhis2-bot temporarily deployed to netlify September 5, 2024 13:31 Inactive
@dhis2-bot dhis2-bot temporarily deployed to netlify September 5, 2024 15:48 Inactive
@dhis2-bot dhis2-bot temporarily deployed to netlify September 5, 2024 16:12 Inactive
@dhis2-bot dhis2-bot temporarily deployed to netlify September 5, 2024 16:19 Inactive
Still not quite there.
Currently the render fails with an error, but the updated snapshot makes
the test pass.
@dhis2-bot dhis2-bot temporarily deployed to netlify September 6, 2024 14:21 Inactive
<IconWarning24 color={colors.grey500} />
<span>
{i18n.t(
'The plugin for rendering this item is not available'
Copy link
Collaborator

@jenniferarnesen jenniferarnesen Sep 9, 2024

Choose a reason for hiding this comment

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

Should we use a less technical word than "rendering" ? Actually, is it even useful to mention that a plugin is missing? Not sure about the second question. If we decide not say "plugin", we could still put that info in a console.warning.

"The plugin needed to display this item is not available."
"This item can't be displayed. Please contact your administrator"

@dhis2-bot dhis2-bot temporarily deployed to netlify September 11, 2024 07:09 Inactive
@dhis2-bot dhis2-bot temporarily deployed to netlify October 10, 2024 11:03 Inactive
@edoardo edoardo marked this pull request as ready for review October 10, 2024 11:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants