Attendance: Show Attendance QR code in an modal window and not as a file for download -refs BT#21018

pull/5010/head
NicoDucou 3 years ago
parent e12460120b
commit d9bc2a95bf
  1. 2
      main/attendance/attendance_sheet.php
  2. 16
      main/attendance/index.php

@ -116,7 +116,7 @@ if (api_is_allowed_to_edit(null, true) ||
Display::return_icon('pdf.png', get_lang('ExportToPDF'), '', ICON_SIZE_MEDIUM).'</a>';
$actionsLeft .= '<a id="pdf_export" style="float:left;" href="index.php?'.api_get_cidreq().'&action=attendance_sheet_export_to_xls&attendance_id='.$attendance_id.'&filter='.$default_filter.'&group_id='.$groupId.'">'.
Display::return_icon('export_excel.png', get_lang('ExportToXls'), '', ICON_SIZE_MEDIUM).'</a>';
$actionsLeft .= '<a style="float:left;" title="QR" href="index.php?'.api_get_cidreq().'&action=attendance_sheet_qrcode&attendance_id='.$attendance_id.'&filter='.$default_filter.'&group_id='.$groupId.'">'.
$actionsLeft .= '<a class="ajax" data-size="sm" style="float:left;" title="QR" href="index.php?'.api_get_cidreq().'&action=attendance_sheet_qrcode&attendance_id='.$attendance_id.'&filter='.$default_filter.'&group_id='.$groupId.'">'.
Display::return_icon('paint.png', get_lang('DownloadQr'), '', ICON_SIZE_MEDIUM).'</a>';
$actionsRight = $form->returnForm();
$toolbar = Display::toolbarAction('toolbar-attendance', [$actionsLeft, $actionsRight]);

@ -272,14 +272,24 @@ if (isset($_POST['action']) && $_POST['action'] == 'attendance_set_visible_selec
switch ($action) {
case 'attendance_sheet_qrcode':
header("Content-Type: image/png");
header("Content-Disposition: attachment; filename=AttendanceSheetQRcode.png");
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-cache, must-revalidate');
header('Pragma: no-cache');
$renderer = new \BaconQrCode\Renderer\Image\Png();
$renderer->setHeight(256);
$renderer->setWidth(256);
$writer = new \BaconQrCode\Writer($renderer);
$attendanceSheetLink = api_get_path(WEB_CODE_PATH).'attendance/index.php?'.api_get_cidreq().'&action=attendance_sheet_list_no_edit&attendance_id='.$attendance_id;
echo $writer->writeString($attendanceSheetLink);
$filename = "attendanceqrcode".uniqid().".png";
if (!is_dir(api_get_path(SYS_UPLOAD_PATH).'attendance')) {
@mkdir(
api_get_path(SYS_UPLOAD_PATH).'attendance',
api_get_permissions_for_new_directories(),
true
);
}
$writer->writeFile($attendanceSheetLink,api_get_path(SYS_UPLOAD_PATH).'attendance/'.$filename);
echo '<img src="'.api_get_path(WEB_UPLOAD_PATH).'attendance/'.$filename.'" alt="AttendanceQR">';
exit;
case 'attendance_list':
$attendanceController->attendance_list();

Loading…
Cancel
Save