/home/techb158/workloadmatch.com/Teacher
Edit: /home/techb158/workloadmatch.com/Teacher/unavailability.php (10486B)
isTokenValid($_POST['_csrf'])) {
set_flash_msg('Session expired. Please try again.', 'danger');
header("Location: " . BASE_URL . "/unavailability");
exit();
}
$Unavailable_From = $_POST['Unavailable_From'];
$Unavailable_To = $_POST['Unavailable_To'];
if (!empty($Unavailable_From) && !empty($Unavailable_To)) {
$stmt = $mysqli->prepare("INSERT INTO teacher_unavailability (Teacher_ID, Unavailable_From, Unavailable_To, status) VALUES (?, ?, ?, 'pending')");
if ($stmt) {
$stmt->bind_param("iss", $Teacher_ID, $Unavailable_From, $Unavailable_To);
if ($stmt->execute()) {
set_flash_msg('Unavailability submitted for manager approval.', 'success');
} else {
set_flash_msg('Could not submit request.', 'danger');
}
$stmt->close();
} else {
set_flash_msg('Error preparing request.', 'danger');
}
} else {
set_flash_msg('Please fill in all fields.', 'warning');
}
header("Location: " . BASE_URL . "/unavailability");
exit();
}
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST['teacher_delete'])) {
if (!$csrf->isTokenValid($_POST['_csrf'])) {
set_flash_msg('Session expired.', 'danger');
header("Location: " . BASE_URL . "/unavailability");
exit();
}
$Unavailable_ID = intval($_POST['Unavailable_ID']);
$stmt = $mysqli->prepare("DELETE FROM teacher_unavailability WHERE Unavailable_ID = ? AND Teacher_ID = ? AND status = 'pending'");
if ($stmt) {
$stmt->bind_param("ii", $Unavailable_ID, $Teacher_ID);
if ($stmt->execute() && $stmt->affected_rows > 0) {
set_flash_msg('Unavailability request cancelled.', 'success');
} else {
set_flash_msg('Could not cancel. Only pending requests can be cancelled.', 'warning');
}
$stmt->close();
}
header("Location: " . BASE_URL . "/unavailability");
exit();
}
?>
Course Management System | My Unavailability
prepare("SELECT is_visible FROM teacher_report_visibility WHERE Manager_ID = ? AND page_name = 'unavailability'");
if ($vstmt) {
$vstmt->bind_param('s', $Manager_ID);
$vstmt->execute();
$vstmt->bind_result($v);
$vstmt->fetch();
$showUnavail = $v ?? 1;
$vstmt->close();
}
if (!$showUnavail) {
echo '
';
include 'main-header.php';
echo '
This feature is currently disabled by your manager.
';
include '../footer.php';
echo '
';
exit;
}
?>
| From |
To |
Status |
Action |
prepare("SELECT Unavailable_ID, Unavailable_From, Unavailable_To, status FROM teacher_unavailability WHERE Teacher_ID = ? ORDER BY Unavailable_ID DESC");
if ($stmt) {
$stmt->bind_param("i", $Teacher_ID);
$stmt->execute();
$res = $stmt->get_result();
while ($row = $res->fetch_assoc()) {
$badge = 'default';
if ($row['status'] == 'pending') $badge = 'warning';
elseif ($row['status'] == 'confirmed') $badge = 'success';
elseif ($row['status'] == 'rejected') $badge = 'danger';
echo '';
echo '| ' . htmlspecialchars($row['Unavailable_From'], ENT_QUOTES, 'UTF-8') . ' | ';
echo '' . htmlspecialchars($row['Unavailable_To'], ENT_QUOTES, 'UTF-8') . ' | ';
echo '' . ucfirst($row['status']) . ' | ';
echo '';
if ($row['status'] == 'pending') {
echo '';
}
echo ' | ';
echo '
';
}
$stmt->close();
}
?>