Advertisement
Syehaji93

Update chartJS after select date

Nov 8th, 2022
733
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JavaScript 4.04 KB | Software | 0 0
  1. $(document).ready(function () {
  2.     //-----------------------------------
  3.     var myChart = null; // "global" access...
  4.  
  5.     function ChartData(label, value) {
  6.       const ctx = document.getElementById('myChart').getContext('2d');
  7.       myChart = new Chart(ctx, {
  8.        
  9.         type: 'bar',
  10.         data: {
  11.             labels: label,
  12.             datasets: [{
  13.                 label: 'Jumlah Lot',
  14.                 data: value,
  15.                 backgroundColor: [
  16.                     "#0077B6",
  17.                     "#EF233C",
  18.                     "#8338EC",
  19.                     "#E4C1F9",
  20.                     "#FFD6FF",
  21.                     "#57CC99",
  22.                     "#8AC926",
  23.                     "#99D98C",
  24.                     "#D88C9A",
  25.                     "#AED9E0",
  26.                     "#B9FBC0",
  27.                     "#9D4EDD",
  28.                     "#70E000",
  29.                     "#A9DEF9",
  30.                     "#DEB887",
  31.                     "#A9A9A9",
  32.                     "#DC143C",
  33.                     "#F4A460",
  34.                     "#2E8B57",
  35.                     "#1D7A46",
  36.                     "#CDA776",
  37.                     "#989898",
  38.                     "#CB252B",
  39.                     "#E39371",
  40.                 ],
  41.                 borderColor: [
  42.                     "#264653",
  43.                 ],
  44.                 borderWidth: [1, 1, 1, 1, 1,1,1,1, 1, 1, 1,1,1]
  45.             }]
  46.         },
  47.         options: {
  48.             responsive: true,
  49.             title: {
  50.             display: true,
  51.             position: "top",
  52.             text: "Data pengecekan lot AX",
  53.             fontSize: 18,
  54.             fontColor: "#111"
  55.             },
  56.             legend: {
  57.             display: true,
  58.             position: "bottom",
  59.             labels: {
  60.                 fontColor: "#333",
  61.                 fontSize: 16
  62.             }
  63.             },
  64.             scales: {
  65.                 y: {
  66.                     beginAtZero: true,
  67.                     suggestedMax: 12
  68.                 }
  69.             },
  70.             layout: {
  71.                 padding: 10
  72.             }
  73.         }
  74.       });
  75.     }
  76.  
  77.     function addData(chart, label, data) {
  78.         chart.data.labels.push(label);
  79.         chart.data.datasets.forEach((dataset) => {
  80.             dataset.data.push(data);
  81.         });
  82.         chart.update();
  83.     }
  84.  
  85.     function removeData(chart) {
  86.         chart.data.labels.pop();
  87.         chart.data.datasets.forEach((dataset) => {
  88.             dataset.data.pop();
  89.         });
  90.         chart.update();
  91.     }
  92.  
  93.     //-----------------------------------
  94.  
  95.     //initial datepicker for filter dashboard
  96.     $('#filterDash').datepicker({
  97.       format: 'yyyy/mm/dd',
  98.       autoclose: true,
  99.       todayHighlight: true,
  100.       // toDate: '0d',
  101.       // endDate: '0d',
  102.       orientation: 'bottom',
  103.     });
  104.  
  105.     //on change filter dashboard
  106.     $('#filterDash').on('change', function(){
  107.       var filterDash = $("#filterDash").val();
  108.       var csrfName = $('.txt_csrfname').attr('name'); // CSRF Token name
  109.       var csrfHash = $('.txt_csrfname').val(); // CSRF hash
  110.  
  111.       var dataJson = {
  112.         [csrfName]: csrfHash,
  113.         filterDash: $("#filterDash").val()
  114.       };
  115.       //alert(filterDash);
  116.  
  117.       $.ajax({
  118.         url: "<?php echo base_url('/filterDash'); ?>",
  119.         type: "post",
  120.         data: dataJson,
  121.         dataType: "json",
  122.         success: function(data)
  123.         {
  124.           // Update CSRF Token
  125.           $('.txt_csrfname').val(data.token);
  126.  
  127.           //chart data by filter
  128.           var label = [];
  129.           var value = [];
  130.           var datas = data.chart_data;
  131.           for (var i in datas) {
  132.               label.push(datas[i].tipe);
  133.               value.push(datas[i].count);
  134.           }
  135.           ChartData(label, value);
  136.           removeData(myChart);
  137.           addData(myChart, label, value);
  138.          
  139.           //.chart by filter
  140.         },
  141.         error: function (jqXhr, textStatus, errorMessage) { // error callback
  142.           $('p').append('Error: ' + errorMessage);
  143.         }
  144.       });
  145.     });
  146. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement