/home/techb158/workloadmatch.com/Teacher
Edit: /home/techb158/workloadmatch.com/Teacher/teacher_absence.php (10996B)
isTokenValid($_POST['_csrf'])) {
set_flash_msg('Session expired. Please try again.', 'danger');
header("Location: " . BASE_URL . "/teacher_absence");
exit();
}
$Absence_From = $_POST['Absence_From'];
$Absence_To = $_POST['Absence_To'];
$Reason = !empty($_POST['Reason']) ? $_POST['Reason'] : 'Sick Leave';
if (!empty($Absence_From) && !empty($Absence_To)) {
$stmt = $mysqli->prepare("INSERT INTO teacher_absences (Teacher_ID, Absence_From, Absence_To, Reason, status) VALUES (?, ?, ?, ?, 'pending')");
if ($stmt) {
$stmt->bind_param("isss", $Teacher_ID, $Absence_From, $Absence_To, $Reason);
if ($stmt->execute()) {
set_flash_msg('Absence 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 . "/teacher_absence");
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 . "/teacher_absence");
exit();
}
$Absence_ID = intval($_POST['Absence_ID']);
$stmt = $mysqli->prepare("DELETE FROM teacher_absences WHERE Absence_ID = ? AND Teacher_ID = ? AND status = 'pending'");
if ($stmt) {
$stmt->bind_param("ii", $Absence_ID, $Teacher_ID);
if ($stmt->execute() && $stmt->affected_rows > 0) {
set_flash_msg('Absence request cancelled.', 'success');
} else {
set_flash_msg('Could not cancel. Only pending requests can be cancelled.', 'warning');
}
$stmt->close();
}
header("Location: " . BASE_URL . "/teacher_absence");
exit();
}
?>
Course Management System | My Absence & Leave
prepare("SELECT is_visible FROM teacher_report_visibility WHERE Manager_ID = ? AND page_name = 'teacher_absence'");
if ($vstmt) {
$vstmt->bind_param('s', $Manager_ID);
$vstmt->execute();
$vstmt->bind_result($v);
$vstmt->fetch();
$showAbs = $v ?? 1;
$vstmt->close();
}
if (!$showAbs) {
echo '
';
include 'main-header.php';
echo '
This feature is currently disabled by your manager.
';
include '../footer.php';
echo '
';
exit;
}
?>
| From |
To |
Reason |
Status |
Action |
prepare("SELECT Absence_ID, Absence_From, Absence_To, Reason, status FROM teacher_absences WHERE Teacher_ID = ? ORDER BY Absence_ID DESC");
if ($stmt) {
$stmt->bind_param("i", $Teacher_ID);
$stmt->execute();
$res = $stmt->get_result();
while ($row = $res->fetch_assoc()) {
$s = $row['status'] ?? 'pending';
$badge = 'default';
if ($s == 'pending') $badge = 'warning';
elseif ($s == 'confirmed') $badge = 'success';
elseif ($s == 'rejected') $badge = 'danger';
echo '';
echo '| ' . htmlspecialchars($row['Absence_From'], ENT_QUOTES, 'UTF-8') . ' | ';
echo '' . htmlspecialchars($row['Absence_To'], ENT_QUOTES, 'UTF-8') . ' | ';
echo '' . htmlspecialchars($row['Reason'], ENT_QUOTES, 'UTF-8') . ' | ';
echo '' . ucfirst($s) . ' | ';
echo '';
if ($s == 'pending') {
echo '';
}
echo ' | ';
echo '
';
}
$stmt->close();
}
?>