diff --git a/Gemfile b/Gemfile index 1eddca708..fa743fa4a 100644 --- a/Gemfile +++ b/Gemfile @@ -27,6 +27,8 @@ gem "hotwire-rails" gem "discard" # Administration framework gem "activeadmin" +# Admin charts +gem "chartkick" group :development, :test do # Call 'byebug' anywhere in the code to stop execution and get a debugger console diff --git a/Gemfile.lock b/Gemfile.lock index 32a66a2a5..386f2d68b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -136,6 +136,7 @@ GEM rack-test (>= 0.6.3) regexp_parser (>= 1.5, < 3.0) xpath (~> 3.2) + chartkick (4.1.0) childprocess (4.1.0) coderay (1.1.3) concurrent-ruby (1.1.9) @@ -388,6 +389,7 @@ DEPENDENCIES bootsnap (>= 1.4.4) byebug capybara + chartkick database_cleaner-active_record discard dotenv-rails diff --git a/app/admin/dashboard.rb b/app/admin/dashboard.rb index 212f8a6f4..4105f2304 100644 --- a/app/admin/dashboard.rb +++ b/app/admin/dashboard.rb @@ -23,6 +23,9 @@ ActiveAdmin.register_page "Dashboard" do panel "Total case logs completed" do para CaseLog.completed.size end + panel "Total case logs completed" do + pie_chart CaseLog.group(:status).size + end end end end diff --git a/app/javascript/packs/active_admin.js b/app/javascript/packs/active_admin.js index 68493d6a7..286b2e630 100644 --- a/app/javascript/packs/active_admin.js +++ b/app/javascript/packs/active_admin.js @@ -3,3 +3,5 @@ import "../stylesheets/active_admin"; import "@activeadmin/activeadmin"; + +import "chartkick/chart.js" diff --git a/package.json b/package.json index cc54d2d5f..5da73dd8c 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,8 @@ "@rails/activestorage": "^6.0.0", "@rails/ujs": "^6.0.0", "@rails/webpacker": "5.4.0", + "chart.js": "^3.6.0", + "chartkick": "^4.1.0", "govuk-frontend": "^3.13.0", "stimulus": "^3.0.0", "webpack": "^4.46.0", diff --git a/yarn.lock b/yarn.lock index b527461d5..a836c6244 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1809,6 +1809,25 @@ chalk@^2.0, chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" +chart.js@>=3.0.2, chart.js@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-3.6.0.tgz#a87fce8431d4e7c5523d721f487f53aada1e42fe" + integrity sha512-iOzzDKePL+bj+ccIsVAgWQehCXv8xOKGbaU2fO/myivH736zcx535PGJzQGanvcSGVOqX6yuLZsN3ygcQ35UgQ== + +chartjs-adapter-date-fns@>=2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chartjs-adapter-date-fns/-/chartjs-adapter-date-fns-2.0.0.tgz#5e53b2f660b993698f936f509c86dddf9ed44c6b" + integrity sha512-rmZINGLe+9IiiEB0kb57vH3UugAtYw33anRiw5kS2Tu87agpetDDoouquycWc9pRsKtQo5j+vLsYHyr8etAvFw== + +chartkick@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chartkick/-/chartkick-4.1.0.tgz#a60b3ad55059195317f504fae607106d5cdfb78d" + integrity sha512-BBf1JWV7SRsxDng9Fh4MRGuj93VPkF8F1pcrOfbCD/ey+/Fyo+tFF8vqpGAjOyu7oNd4cc1IC/OUixUtPsfNmg== + optionalDependencies: + chart.js ">=3.0.2" + chartjs-adapter-date-fns ">=2.0.0" + date-fns ">=2.0.0" + "chokidar@>=3.0.0 <4.0.0", chokidar@^3.4.1: version "3.5.2" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" @@ -2345,6 +2364,11 @@ cyclist@^1.0.1: resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= +date-fns@>=2.0.0: + version "2.25.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.25.0.tgz#8c5c8f1d958be3809a9a03f4b742eba894fc5680" + integrity sha512-ovYRFnTrbGPD4nqaEqescPEv1mNwvt+UTqI3Ay9SzNtey9NZnYu6E2qCcBBgJ6/2VF1zGGygpyTDITqpQQ5e+w== + debug@2.6.9, debug@^2.2.0, debug@^2.3.3: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"