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: single value as a Highcharts instance #1698

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

Conversation

HendrikThePendric
Copy link
Contributor

@HendrikThePendric HendrikThePendric commented Sep 2, 2024

Implements DHIS2-17928

Relates to https://dhis2.atlassian.net/browse/DHIS2-17722


Key features

  1. Implement the Single Value visualization type as a Highcharts Chart instance

Description

We want to deprecate the SVG to PNG/PDF endpoints and export visualisations in the browser instead. To do so we can leverage Highchart's Chart.exportChartLocal() method. However, since the Single Value visualisation type was a completely custom implementation, not built in Highcharts, this visualisation type was problematic. We considered two approaches:

  1. To implement a custom client-side SVG to PNG/PDF export mechanism.
  2. To refactor/rewrite the Single Value visualization type as a Highcharts Chart instance.

We investigated both options and have summarised our findings in this document. The final decision was to refactor the Single Value as a Highcharts Chart, which is what has been done in the current PR.

Apart from the Single Value refactor, this PR introduces some mechanisms to implement future custom visualizations using Highcharts as well.

Note that while this PR adds 1692 lines, this includes a story of 823 lines and that the current state of affairs still includes the old implementation. Removing the old code would remove ~970 lines. So when everything is done we'll actually be reducing the codebase size by about 100 lines (1692-823-970=-101).


TODO / Discussion points

  • Review/discuss comments in PR
  • Test in DV and fix issues
  • Tweak styles (see a5821c0)
  • Remove src/visualizations/config/adapters/dhis_dhis
  • Remove src/visualizations/config/generators/dhis
  • Remove src/visualizations/store/adapters/dhis_dhis
  • Update story, to remove reference to old implementation

Note that the last 4 points can easily be completed as follows:

  1. If needed, rebase branch chore/remove-old-single-value-code onto this branch
  2. Merge chore: remove old single value code #1703

@HendrikThePendric HendrikThePendric marked this pull request as draft September 2, 2024 12:16
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.

4 participants