|
47 | 47 | <div class="card mb-4">
|
48 | 48 | <div class="card-header">Usage Statistics</div>
|
49 | 49 | <div class="card-body">
|
50 |
| - <div id="line-chart"></div> |
| 50 | + <canvas id="line-chart"></canvas> |
51 | 51 | </div>
|
52 | 52 | </div>
|
53 | 53 | </div>
|
|
154 | 154 | @section('scripts')
|
155 | 155 | @parent
|
156 | 156 | <script src="{{ asset("app-assets/vendors/js/charts/apexcharts.js") }}"></script>
|
| 157 | + <script src="{{ asset("app-assets/vendors/js/charts/chart.min.js") }}"></script> |
| 158 | + <script src="{{ asset("app-assets/vendors/js/extensions/tether.min.js") }}"></script> |
157 | 159 | <script
|
158 | 160 | src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDsucrEdmswqYrw0f6ej3bf4M4suDeRgNA"
|
159 | 161 | defer
|
@@ -215,65 +217,93 @@ function initMap(value) {
|
215 | 217 | initMap(this.value);
|
216 | 218 | });
|
217 | 219 | initMap("today");
|
218 |
| - //////////////////////////////////////////////////// |
| 220 | + initBarChart(); |
| 221 | + $("#line-chart").css("min-height", "450px"); |
| 222 | + $("#map").css("height", (parseFloat($("#line-chart").css("height").replace("px", "")) - 23 - 8) + "px"); |
| 223 | + }); |
| 224 | + function initBarChart() { |
219 | 225 | let campaigns = @php echo $campaigns; @endphp;
|
220 | 226 | let values = @php echo $values; @endphp;
|
221 |
| - // campaigns.splice(0, 0, ""); |
222 |
| - // console.log(values); |
223 |
| - var $primary = '#7367F0', |
224 |
| - $success = '#28C76F', |
225 |
| - $danger = '#EA5455', |
226 |
| - $warning = '#FF9F43', |
227 |
| - $info = '#00cfe8', |
228 |
| - $label_color_light = '#dae1e7'; |
229 |
| - var themeColors = [$primary, $success, $danger, $warning, $info]; |
230 |
| - var yaxis_opposite = false; |
231 |
| - if($('html').data('textdirection') == 'rtl'){ |
232 |
| - yaxis_opposite = true; |
233 |
| - } |
234 |
| - var lineChartOptions = { |
235 |
| - chart: { |
236 |
| - height: 350, |
237 |
| - type: 'line', |
238 |
| - zoom: { |
239 |
| - enabled: false |
| 227 | + var $primary = '#7367F0'; |
| 228 | + var $success = '#28C76F'; |
| 229 | + var $danger = '#EA5455'; |
| 230 | + var $warning = '#FF9F43'; |
| 231 | + var $label_color = '#1E1E1E'; |
| 232 | + var grid_line_color = '#dae1e7'; |
| 233 | + var scatter_grid_color = '#f3f3f3'; |
| 234 | + var $scatter_point_light = '#D1D4DB'; |
| 235 | + var $scatter_point_dark = '#5175E0'; |
| 236 | + var $white = '#fff'; |
| 237 | + var $black = '#000'; |
| 238 | + var themeColors = []; |
| 239 | + for (var i = 0; i < values.length; i++) |
| 240 | + themeColors.push($success); |
| 241 | + var barChartctx = $("#line-chart"); |
| 242 | + // Chart Options |
| 243 | + var barchartOptions = { |
| 244 | + // Elements options apply to all of the options unless overridden in a dataset |
| 245 | + // In this case, we are setting the border of each bar to be 2px wide |
| 246 | + elements: { |
| 247 | + rectangle: { |
| 248 | + borderWidth: 2, |
| 249 | + borderSkipped: 'left' |
240 | 250 | }
|
241 | 251 | },
|
242 |
| - colors: themeColors, |
243 |
| - dataLabels: { |
244 |
| - enabled: false |
245 |
| - }, |
246 |
| - stroke: { |
247 |
| - curve: 'straight' |
| 252 | + responsive: true, |
| 253 | + maintainAspectRatio: false, |
| 254 | + responsiveAnimationDuration: 500, |
| 255 | + legend: { display: false }, |
| 256 | + scales: { |
| 257 | + xAxes: [{ |
| 258 | + display: true, |
| 259 | + gridLines: { |
| 260 | + color: grid_line_color, |
| 261 | + }, |
| 262 | + scaleLabel: { |
| 263 | + display: true, |
| 264 | + } |
| 265 | + }], |
| 266 | + yAxes: [{ |
| 267 | + display: true, |
| 268 | + gridLines: { |
| 269 | + color: grid_line_color, |
| 270 | + }, |
| 271 | + scaleLabel: { |
| 272 | + display: true, |
| 273 | + }, |
| 274 | + ticks: { |
| 275 | + stepSize: 10 |
| 276 | + }, |
| 277 | + }], |
248 | 278 | },
|
249 |
| - series: [{ |
250 |
| - name: "Count", |
251 |
| - data: values, |
252 |
| - }], |
253 | 279 | title: {
|
254 |
| - text: 'QR Code scanned count', |
255 |
| - align: 'left' |
256 |
| - }, |
257 |
| - grid: { |
258 |
| - row: { |
259 |
| - colors: ['#f3f3f3', 'transparent'], // takes an array which will be repeated on columns |
260 |
| - opacity: 0.5 |
261 |
| - }, |
| 280 | + display: true, |
| 281 | + text: '' |
262 | 282 | },
|
263 |
| - xaxis: { |
264 |
| - categories: campaigns, |
265 |
| - }, |
266 |
| - yaxis: { |
267 |
| - tickAmount: 5, |
268 |
| - opposite: yaxis_opposite |
269 |
| - } |
270 |
| - } |
271 |
| - var lineChart = new ApexCharts( |
272 |
| - document.querySelector("#line-chart"), |
273 |
| - lineChartOptions |
274 |
| - ); |
275 |
| - lineChart.render(); |
276 |
| - $("#map").css("height", (parseFloat($("#line-chart").css("height").replace("px", "")) - 23 - 8) + "px"); |
277 |
| - }); |
| 283 | +
|
| 284 | + }; |
| 285 | + // Chart Data |
| 286 | + var barchartData = { |
| 287 | + labels: campaigns, |
| 288 | + datasets: [{ |
| 289 | + label: "Scanned Count", |
| 290 | + data: values, |
| 291 | + backgroundColor: themeColors, |
| 292 | + borderColor: "transparent" |
| 293 | + }] |
| 294 | + }; |
| 295 | +
|
| 296 | + var barChartconfig = { |
| 297 | + type: 'bar', |
| 298 | +
|
| 299 | + // Chart Options |
| 300 | + options: barchartOptions, |
| 301 | +
|
| 302 | + data: barchartData |
| 303 | + }; |
| 304 | +
|
| 305 | + // Create the chart |
| 306 | + var barChart = new Chart(barChartctx, barChartconfig); |
| 307 | + } |
278 | 308 | </script>
|
279 | 309 | @endsection
|
0 commit comments