dashboard.html 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. {% extends "base/base.html" %}
  2. {% block content %}
  3. <br>
  4. <br>
  5. <h3>Forderungen</h3>
  6. <br>
  7. <ul class="nav nav-pills">
  8. <li class="nav-item">
  9. <a class="nav-link" aria-current="page" href="?page=Altersstaffel">nach Altersstaffel</a>
  10. </li>
  11. <li class="nav-item">
  12. <a class="nav-link active" href="?page=Standort">nach Standort</a>
  13. </li>
  14. <li class="nav-item">
  15. <a class="nav-link" href="?page=Verursacher">nach Verursacher</a>
  16. </li>
  17. <li class="nav-item">
  18. <a class="nav-link disabled" aria-disabled="true">nach Wiedervorlage</a>
  19. </li>
  20. </ul>
  21. <br>
  22. <br>
  23. <div class="col-8">
  24. <canvas id="myChart"></canvas>
  25. </div>
  26. <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
  27. <script>
  28. let CHART_COLORS = {
  29. red: 'rgb(255, 99, 132)',
  30. orange: 'rgb(255, 159, 64)',
  31. yellow: 'rgb(255, 205, 86)',
  32. green: 'rgb(75, 192, 192)',
  33. blue: 'rgb(54, 162, 235)',
  34. purple: 'rgb(153, 102, 255)',
  35. grey: 'rgb(201, 203, 207)'
  36. };
  37. let data = {
  38. labels: [
  39. 'MM',
  40. 'KRU',
  41. 'ULM',
  42. 'LL',
  43. 'GZ',
  44. 'AAM',
  45. ],
  46. datasets: [{
  47. label: 'Verkauf',
  48. data: [12, 19, 3, 5, 2, 3],
  49. borderWidth: 1,
  50. backgroundColor: CHART_COLORS.red
  51. },
  52. {
  53. label: 'Service',
  54. data: [12, 19, 3, 5, 2, 3],
  55. borderWidth: 1,
  56. backgroundColor: CHART_COLORS.blue
  57. },
  58. {
  59. label: 'TZ',
  60. data: [12, 19, 3, 5, 2, 3],
  61. borderWidth: 1,
  62. backgroundColor: CHART_COLORS.green
  63. }, {
  64. label: 'Sonstige',
  65. data: [12, 19, 3, 5, 2, 3],
  66. borderWidth: 1,
  67. backgroundColor: CHART_COLORS.yellow
  68. }]
  69. };
  70. let myChart = document.getElementById('myChart')
  71. let myBarChart = new Chart(myChart, {
  72. type: 'bar',
  73. data: {
  74. labels: data.labels,
  75. datasets: data.datasets
  76. },
  77. options: {
  78. plugins: {
  79. title: {
  80. display: false,
  81. text: 'Chart.js Bar Chart - Stacked'
  82. },
  83. },
  84. responsive: true,
  85. scales: {
  86. x: {
  87. stacked: true,
  88. },
  89. y: {
  90. stacked: true
  91. }
  92. }
  93. }
  94. });
  95. myChart.onclick = function (e) {
  96. var slice = myBarChart.getElementsAtEventForMode(e, 'nearest', { intersect: true }, true);
  97. if (!slice.length) return; // return if not clicked on slice
  98. console.log(slice);
  99. var label = myBarChart.data.labels[slice[0].index];
  100. var ids = {
  101. 'MM': '10',
  102. 'KRU': '30',
  103. 'ULM': '40',
  104. 'LL': '50',
  105. 'GZ': '55',
  106. 'AAM': '60',
  107. };
  108. window.open('/app/forderungen/liste/?Standort=' + ids[label]);
  109. }
  110. </script>
  111. {% endblock %}