} $l10n->addResource(__DIR__ . '/l10n/header.json'); $l10n->addResource(__DIR__ . '/l10n/exam-confirm-participation.json'); $l10n->localizeArray($all_active_exam_accommodations, 'name'); require_once FS_PHP . '/header-external.php'; require_once 'views/exam-confirm-participation.php'; require_once FS_PHP . '/footer-external.php'; } else { $loggers['audit']->error('Attempted to confirm exam participation at Access Service with invalid NOE ID.'); header('Location: https://' . URL_PHP . '/error-external.php?eid=S0032'); exit; } } elseif ($_GET['page'] === "withdraw-participation") { $model->withdrawStudentParticipation($_POST['eid']); $loggers['audit']->info("Withdrew participation for exam {$_POST['eid']}."); $confirmed_requests = new \Ventus\Exams\Requests($dbo); $exam_details = $confirmed_requests->getExamRequestById($_POST['eid']); $confirmed_requests->examCancelledOther($exam_details[0]); header('location:exam-requests.php'); die; } elseif ($_GET['page'] === "withdraw-in-class") { $model->withdrawInClassParticipation($_POST['eid'], $SESSION->student_num); $loggers['audit']->info("Withdrew in-class participation for exam {$_POST['eid']}."); header('location:exam-requests.php'); die; } elseif ($_GET['page'] === "add-exam-request") { $applicable_files = $examFiles->fetchFilesForAllStudents($_POST['professor_exam_request_id']); $requests->confirmStudentParticipation($_POST, $SESSION->student_num); $loggers['audit']->info("Confirmed participation for NOE {$_POST['professor_exam_request_id']}."); foreach ($applicable_files as $file) { $examFiles->addStudentsToFile($file, array($SESSION->student_num));
$r['actual_evaluation_endtime'] = \DateTime::createFromFormat(DATETIME_MYSQL, $r['actual_evaluation_endtime']); $r['meta'] = Proctor::determineStatus($r); if ($r['meta']->status === 'pending' || $r['meta']->status === 'waiting' || $r['meta']->status === 'inProgress') { if ($r['meta']->status === 'pending') { // Show image if time is close to exam $r['img'] = $r['meta']->timer < 15; } $r['timer'] = "<span rel='tooltip' title='" . ($r['meta']->status === 'pending' ? $l10n->__('pendingTooltip') : $l10n->__('inProgressTooltip')) . "' class='ticket mincounter'>" . $r['meta']->timer . "</span>"; } } unset($r); header('Content-Type: application/json; charset=utf-8'); echo json_encode($data); exit; } elseif ($_GET['page'] === 'print-delivery-sheet') { $examRequests = new \Ventus\Exams\Requests($dbo); $deliverySheet = $examRequests->printDeliverySheet($_GET['start'], $_GET['end']); $loggers['audit']->info("Delivery sheet printed for exams between {$_GET['start']} and {$_GET['end']}"); require_once FS_EXAMS . '/l10n/delivery-sheet.php'; require FS_EXAMS . '/views/delivery-sheet.php'; } /** * View rendering */ if (isset($render) && $render) { require FS_PHP . '/header.php'; require FS_PHP . '/nav.php'; if (isset($viewFile) && file_exists($viewFile)) { require $viewFile; } else { require FS_PHP . '/error.php';