widget-charts3.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. //[widget charts Javascript]
  2. $( document ).ready(function() {
  3. "use strict";
  4. var MONTHS = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
  5. var color = Chart.helpers.color;
  6. var barChartData = {
  7. labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
  8. datasets: [{
  9. label: 'Dataset 1',
  10. backgroundColor: color(window.chartColors.primary).alpha(1).rgbString(),
  11. borderColor: window.chartColors.primary,
  12. borderWidth: 1,
  13. data: [
  14. randomScalingFactor(),
  15. randomScalingFactor(),
  16. randomScalingFactor(),
  17. randomScalingFactor(),
  18. randomScalingFactor(),
  19. randomScalingFactor(),
  20. randomScalingFactor()
  21. ]
  22. }, {
  23. label: 'Dataset 2',
  24. backgroundColor: color(window.chartColors.danger).alpha(1).rgbString(),
  25. borderColor: window.chartColors.danger,
  26. borderWidth: 1,
  27. data: [
  28. randomScalingFactor(),
  29. randomScalingFactor(),
  30. randomScalingFactor(),
  31. randomScalingFactor(),
  32. randomScalingFactor(),
  33. randomScalingFactor(),
  34. randomScalingFactor()
  35. ]
  36. }]
  37. };
  38. window.onload = function() {
  39. var ctx = document.getElementById('canvas-1').getContext('2d');
  40. window.myBar = new Chart(ctx, {
  41. type: 'bar',
  42. data: barChartData,
  43. options: {
  44. responsive: true,
  45. legend: {
  46. position: 'top',
  47. },
  48. title: {
  49. display: false,
  50. }
  51. }
  52. });
  53. };
  54. document.getElementById('randomizeData').addEventListener('click', function() {
  55. var zero = Math.random() < 0.2 ? true : false;
  56. barChartData.datasets.forEach(function(dataset) {
  57. dataset.data = dataset.data.map(function() {
  58. return zero ? 0.0 : randomScalingFactor();
  59. });
  60. });
  61. window.myBar.update();
  62. });
  63. var colorNames = Object.keys(window.chartColors);
  64. document.getElementById('addDataset').addEventListener('click', function() {
  65. var colorName = colorNames[barChartData.datasets.length % colorNames.length];
  66. var dsColor = window.chartColors[colorName];
  67. var newDataset = {
  68. label: 'Dataset ' + barChartData.datasets.length,
  69. backgroundColor: color(dsColor).alpha(0.5).rgbString(),
  70. borderColor: dsColor,
  71. borderWidth: 1,
  72. data: []
  73. };
  74. for (var index = 0; index < barChartData.labels.length; ++index) {
  75. newDataset.data.push(randomScalingFactor());
  76. }
  77. barChartData.datasets.push(newDataset);
  78. window.myBar.update();
  79. });
  80. document.getElementById('addData').addEventListener('click', function() {
  81. if (barChartData.datasets.length > 0) {
  82. var month = MONTHS[barChartData.labels.length % MONTHS.length];
  83. barChartData.labels.push(month);
  84. for (var index = 0; index < barChartData.datasets.length; ++index) {
  85. // window.myBar.addData(randomScalingFactor(), index);
  86. barChartData.datasets[index].data.push(randomScalingFactor());
  87. }
  88. window.myBar.update();
  89. }
  90. });
  91. document.getElementById('removeDataset').addEventListener('click', function() {
  92. barChartData.datasets.splice(0, 1);
  93. window.myBar.update();
  94. });
  95. document.getElementById('removeData').addEventListener('click', function() {
  96. barChartData.labels.splice(-1, 1); // remove the label first
  97. barChartData.datasets.forEach(function(dataset) {
  98. dataset.data.pop();
  99. });
  100. window.myBar.update();
  101. });
  102. }); // End of use strict