|
34 | 34 | } |
35 | 35 | [id$="_chart_wrap"] > canvas, |
36 | 36 | #courses_chart_wrap > canvas, #tools_chart_wrap > canvas, #coursebylanguage_chart_wrap > canvas, |
37 | | - #recentlogins_chart_wrap > canvas, #subscriptions_chart_wrap > canvas { |
38 | | - position: absolute; |
39 | | - inset: 0; |
40 | | - width: 100% !important; |
41 | | - height: 100% !important; |
42 | | - display: block; |
43 | | - } |
| 37 | + #recentlogins_chart_wrap > canvas, #subscriptions_chart_wrap > canvas {display: block;width: 100%;height: 100%;} |
| 38 | + #courses_chart_wrap{display:flex;align-items:center;justify-content:center;} |
| 39 | + #courses_chart_wrap > canvas{max-height: 100%;width: auto;} |
44 | 40 | </style>'; |
45 | 41 | $htmlHeadXtra[] = api_get_build_js('libs/chartjs/chart.js'); |
46 | 42 | //$htmlHeadXtra[] = api_get_asset('chartjs-plugin-labels/build/chartjs-plugin-labels.min.js'); |
|
269 | 265 |
|
270 | 266 | break; |
271 | 267 | case 'session_by_date': |
| 268 | + $htmlHeadXtra[] = '<style> |
| 269 | + .sbd-filters form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 14px} |
| 270 | + .sbd-filters form :is(.form-group,.control-group,.form-row,.form-actions){margin:0!important} |
| 271 | + .sbd-filters form .form-actions{padding:0!important;border:0!important;background:transparent!important} |
| 272 | + .sbd-filters .form-group {visibility: hidden;} |
| 273 | + .sbd-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:16px 0} |
| 274 | + @media (max-width:1200px){.sbd-cards{grid-template-columns:repeat(2,1fr)}} |
| 275 | + @media (max-width:768px){.sbd-filters form{display:block}.sbd-cards{grid-template-columns:1fr}} |
| 276 | + .sbd-card{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:12px;padding:12px} |
| 277 | + .sbd-chart-wrap{position:relative;width:100%;max-width:360px;aspect-ratio:1/1;margin:0 auto} |
| 278 | + .sbd-chart-wrap--wide{max-width:none;aspect-ratio:auto;height:420px} |
| 279 | + .sbd-chart-wrap canvas{width:100%!important;height:100%!important;display:block} |
| 280 | + </style>'; |
272 | 281 | $form = new FormValidator('session_by_date', 'get'); |
273 | 282 | $form->addDateRangePicker( |
274 | 283 | 'range', |
|
278 | 287 | ); |
279 | 288 | $options = SessionManager::getStatusList(); |
280 | 289 | $form->addSelect('status_id', get_lang('Session status'), $options, ['placeholder' => get_lang('All')]); |
281 | | - |
282 | 290 | $form->addHidden('report', 'session_by_date'); |
283 | 291 | $form->addButtonSearch(get_lang('Search')); |
284 | | - $htmlHeadXtra[] = '<style> |
285 | | - .sbd-filters{ |
286 | | - max-width: 760px; |
287 | | - margin: 0 0 16px 0; |
288 | | - } |
289 | | -
|
290 | | - .sbd-cards{ |
291 | | - display: grid; |
292 | | - grid-template-columns: repeat(3, minmax(0, 1fr)); |
293 | | - gap: 16px; |
294 | | - margin: 14px 0 18px 0; |
295 | | - } |
296 | | - @media (max-width: 992px){ |
297 | | - .sbd-cards{ grid-template-columns: 1fr; } |
298 | | - } |
299 | | -
|
300 | | - .sbd-card{ |
301 | | - background: #fff; |
302 | | - border: 1px solid rgba(0,0,0,.08); |
303 | | - border-radius: 12px; |
304 | | - padding: 12px; |
305 | | - box-shadow: 0 1px 2px rgba(0,0,0,.03); |
306 | | - } |
307 | | -
|
308 | | - .sbd-card h4{ |
309 | | - margin: 0 0 10px 0; |
310 | | - font-size: 14px; |
311 | | - font-weight: 600; |
312 | | - text-align: center; |
313 | | - } |
314 | | -
|
315 | | - .sbd-chart-wrap{ |
316 | | - width: 100%; |
317 | | - height: 320px; |
318 | | - position: relative; |
319 | | - } |
320 | | - @media (max-width: 768px){ |
321 | | - .sbd-chart-wrap{ height: 260px; } |
322 | | - } |
323 | | -
|
324 | | - .sbd-chart-wrap canvas{ |
325 | | - width: 100% !important; |
326 | | - height: 100% !important; |
327 | | - display: block; |
328 | | - } |
329 | | -
|
330 | | - .sbd-table-responsive{ |
331 | | - width: 100%; |
332 | | - overflow-x: auto; |
333 | | - -webkit-overflow-scrolling: touch; |
334 | | - } |
335 | | -
|
336 | | - .sbd-table-responsive table{ |
337 | | - min-width: 780px; |
338 | | - } |
339 | | -
|
340 | | - .sbd-mini-table table{ |
341 | | - width: 100% !important; |
342 | | - margin: 0 !important; |
343 | | - } |
344 | | - .sbd-mini-table td, .sbd-mini-table th{ |
345 | | - padding: 6px 8px !important; |
346 | | - vertical-align: top; |
347 | | - white-space: normal !important; |
348 | | - } |
349 | | - </style>'; |
350 | 292 |
|
351 | 293 | $validated = $form->validate() |
352 | 294 | || isset($_REQUEST['range']) |
|
404 | 346 |
|
405 | 347 | $reportType = 'pie'; |
406 | 348 | $reportOptions = ' |
407 | | - legend: { |
408 | | - position: "left" |
409 | | - }, |
410 | | - title: { |
411 | | - text: "%s", |
412 | | - display: true |
413 | | - }, |
414 | | - cutoutPercentage: 25 |
| 349 | + legend: { position: "bottom" }, |
| 350 | + title:{ text:"%s", display:true }, |
| 351 | + responsive:true, |
| 352 | + maintainAspectRatio:false, |
| 353 | + cutoutPercentage:25 |
415 | 354 | '; |
416 | 355 | $reportOptions1 = sprintf($reportOptions, $reportName1); |
417 | 356 | $reportOptions2 = sprintf($reportOptions, $reportName2); |
|
467 | 406 | } |
468 | 407 | } |
469 | 408 | '; |
470 | | - |
471 | | - $htmlHeadXtra[] = Statistics::getJSChartTemplate( |
472 | | - $url4, |
473 | | - $reportType, |
474 | | - $reportOptions, |
475 | | - 'canvas4' |
476 | | - ); |
477 | 409 | } |
478 | 410 | break; |
479 | 411 | } |
|
767 | 699 | $row++; |
768 | 700 |
|
769 | 701 | $content .= '<div class="sbd-table-responsive">'.$table->toHtml().'</div>'; |
770 | | - $content .= '<div class="sbd-cards">'; |
771 | | - $content .= ' <div class="sbd-card sbd-mini-table"><h4 id="canvas1_title"></h4><div id="canvas1_table"></div></div>'; |
772 | | - $content .= ' <div class="sbd-card sbd-mini-table"><h4 id="canvas2_title"></h4><div id="canvas2_table"></div></div>'; |
773 | | - $content .= ' <div class="sbd-card sbd-mini-table"><h4 id="canvas3_title"></h4><div id="canvas3_table"></div></div>'; |
774 | | - $content .= '</div>'; |
| 702 | + if ($sessionCount > 0) { |
| 703 | + $content .= '<div class="sbd-cards">'; |
| 704 | + $content .= ' <div class="sbd-card sbd-mini-table"><h4 id="canvas1_title"></h4><div id="canvas1_table"></div></div>'; |
| 705 | + $content .= ' <div class="sbd-card sbd-mini-table"><h4 id="canvas2_title"></h4><div id="canvas2_table"></div></div>'; |
| 706 | + $content .= ' <div class="sbd-card sbd-mini-table"><h4 id="canvas3_title"></h4><div id="canvas3_table"></div></div>'; |
| 707 | + $content .= '</div>'; |
| 708 | + } |
775 | 709 |
|
776 | 710 | // Courses table |
777 | 711 | $tableCourse = new HTML_Table(['class' => 'table table-hover table-striped table-bordered']); |
|
800 | 734 | } |
801 | 735 |
|
802 | 736 | $content .= '<div class="sbd-table-responsive">'.$tableCourse->toHtml().'</div>'; |
803 | | - $content .= '<div class="sbd-cards">'; |
804 | | - $content .= ' <div class="sbd-card"><div class="sbd-chart-wrap"><canvas id="canvas1"></canvas></div></div>'; |
805 | | - $content .= ' <div class="sbd-card"><div class="sbd-chart-wrap"><canvas id="canvas2"></canvas></div></div>'; |
806 | | - $content .= ' <div class="sbd-card"><div class="sbd-chart-wrap"><canvas id="canvas3"></canvas></div></div>'; |
807 | | - $content .= '</div>'; |
808 | | - |
809 | | - $content .= '<div class="sbd-card">'; |
810 | | - $content .= ' <div class="sbd-chart-wrap" style="height:420px;"><canvas id="canvas4"></canvas></div>'; |
811 | | - $content .= '</div>'; |
| 737 | + if ($sessionCount > 0) { |
| 738 | + $content .= '<div class="sbd-cards">'; |
| 739 | + $content .= ' <div class="sbd-card"><div class="sbd-chart-wrap"><canvas id="canvas1"></canvas></div></div>'; |
| 740 | + $content .= ' <div class="sbd-card"><div class="sbd-chart-wrap"><canvas id="canvas2"></canvas></div></div>'; |
| 741 | + $content .= ' <div class="sbd-card"><div class="sbd-chart-wrap"><canvas id="canvas3"></canvas></div></div>'; |
| 742 | + $content .= '</div>'; |
| 743 | + } |
812 | 744 | } |
813 | 745 |
|
814 | 746 | $table = new HTML_Table(['class' => 'table table-hover table-striped table-bordered data_table']); |
|
872 | 804 | } |
873 | 805 |
|
874 | 806 | $url = api_get_self().'?'.http_build_query($exportParams); |
875 | | - $link = Display::url( |
876 | | - Display::getMdiIcon(ActionIcon::EXPORT_SPREADSHEET, 'ch-tool-icon').' '.get_lang('Export to XLS'), |
877 | | - $url, |
878 | | - ['class' => 'btn btn--plain'] |
879 | | - ); |
| 807 | + if ($sessionCount > 0) { |
| 808 | + $link = Display::url( |
| 809 | + Display::getMdiIcon(ActionIcon::EXPORT_SPREADSHEET, 'ch-tool-icon').' '.get_lang('Export to XLS'), |
| 810 | + $url, |
| 811 | + ['class' => 'btn btn--plain'] |
| 812 | + ); |
| 813 | + } |
880 | 814 | } |
881 | 815 |
|
882 | 816 | $content = '<div class="sbd-filters">'.$form->returnForm().'</div>'.$content.$link; |
|
0 commit comments