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

Merged

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
@HendrikThePendric HendrikThePendric changed the title feat: single value as a highcharts instance WIP feat: single value as a Highcharts instance Sep 23, 2024
@HendrikThePendric HendrikThePendric force-pushed the feat/single-value-as-highcharts-chart-DHIS2-17928 branch from c880c56 to bbdd316 Compare September 23, 2024 10:49
HendrikThePendric and others added 20 commits October 22, 2024 09:36
…zation

This fixes an issue in client-side PDF exports
@HendrikThePendric HendrikThePendric force-pushed the feat/single-value-as-highcharts-chart-DHIS2-17928 branch from 159727c to 3065022 Compare October 22, 2024 07:36
HendrikThePendric and others added 2 commits October 22, 2024 16:26
* chore: remove old code

* chore: adjust story and remove imports for deleted files
@HendrikThePendric HendrikThePendric merged commit 40fdfba into master Oct 22, 2024
3 checks passed
@HendrikThePendric HendrikThePendric deleted the feat/single-value-as-highcharts-chart-DHIS2-17928 branch October 22, 2024 14:44
dhis2-bot added a commit that referenced this pull request Oct 22, 2024
# [26.9.0](v26.8.8...v26.9.0) (2024-10-22)

### Features

* implement Single Value as a Highcharts.Chart instance and add offline exporting module ([#1698](#1698)) ([40fdfba](40fdfba))
@dhis2-bot
Copy link
Contributor

🎉 This PR is included in version 26.9.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants