Server : LiteSpeed
System : Linux terra.hostitbro.com 5.14.0-611.54.3.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Thu May 7 16:31:24 EDT 2026 x86_64
User : outerorb ( 1091)
PHP Version : 8.1.34
Disable Function : mail
Directory :  /home2/outerorb/emp.outerorbittech.in/admin/

📁 Create New:
⬆️ Upload File:
Current Dir [ Writable ] Root [ Writable ]


OR Upload from URL:
URL: Save as:

📄 File: notifications.php

Path: /home2/outerorb/emp.outerorbittech.in/admin/notifications.php

Size: 11.3 KB

Permissions: 0666

<?php
require_once __DIR__ . '/../includes/helpers.php';

// Ensure user is logged in as admin
require_admin();

$admin = current_admin();
if (!$admin) {
    redirect('login.php');
}

// Get unread notifications count for badge
$unreadNotificationsCount = get_unread_notification_count($admin['id']);

// Get all notifications
$notifications = [];
try {
    $db = db();
    $stmt = $db->prepare("
        SELECT * FROM notifications 
        WHERE admin_id = ? 
        ORDER BY created_at DESC 
        LIMIT 100
    ");
    $stmt->execute([$admin['id']]);
    $notifications = $stmt->fetchAll(PDO::FETCH_ASSOC);
} catch (Exception $e) {
    error_log('Error fetching notifications: ' . $e->getMessage());
}

// Mark all as read
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action']) && $_POST['action'] === 'mark_all_read') {
    try {
        $db = db();
        $stmt = $db->prepare("
            UPDATE notifications 
            SET read_at = NOW() 
            WHERE admin_id = ? AND read_at IS NULL
        ");
        $stmt->execute([$admin['id']]);
        redirect('notifications.php');
    } catch (Exception $e) {
        error_log('Error marking notifications as read: ' . $e->getMessage());
    }
}

$roleLabel = (($admin['role'] ?? '') === 'super') ? 'Super Admin' : 'Admin';

?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Notifications - HR Dashboard</title>
    <link rel="stylesheet" href="../assets/css/style.css">
</head>
<body class="dashboard-layout">
<div class="app-wrapper">
    <!-- ========== SIDEBAR ========== -->
    <aside class="sidebar-wrapper" id="sidebar">
        <div class="sidebar-header">
            <div class="sidebar-logo">HR</div>
            <div class="sidebar-company">
                <div class="sidebar-company-name">Employee<br/>Records</div>
                <div class="sidebar-company-role"><?php echo htmlspecialchars($roleLabel, ENT_QUOTES, 'UTF-8'); ?></div>
            </div>
        </div>

        <nav class="sidebar-menu">
            <!-- Employees Section -->
            <div class="sidebar-section">
                <div class="sidebar-section-title"><i class="fas fa-users"></i> EMPLOYEES</div>
                <div class="sidebar-item">
                    <a href="dashboard.php" class="sidebar-link">Dashboard</a>
                </div>
                <div class="sidebar-item">
                    <a href="approvals.php" class="sidebar-link">Approvals</a>
                </div>
                <div class="sidebar-item">
                    <a href="departments.php" class="sidebar-link">Departments</a>
                </div>
                <div class="sidebar-item">
                    <a href="designations.php" class="sidebar-link">Designations</a>
                </div>
                <div class="sidebar-item">
                    <a href="trash.php" class="sidebar-link">Trash</a>
                </div>
            </div>

            <!-- Attendance & Leave -->
            <div class="sidebar-section">
                <div class="sidebar-section-title"><i class="fas fa-clipboard-list"></i> ATTENDANCE & LEAVE</div>
                <div class="sidebar-item">
                    <a href="attendance.php" class="sidebar-link">Attendance</a>
                </div>
                <div class="sidebar-item">
                    <a href="leaves.php" class="sidebar-link">Leaves</a>
                </div>
                <div class="sidebar-item">
                    <a href="holidays.php" class="sidebar-link">Holidays</a>
                </div>
                <div class="sidebar-item">
                    <a href="document_requests.php" class="sidebar-link">Requests</a>
                </div>
            </div>

            <!-- Payroll -->
            <div class="sidebar-section">
                <div class="sidebar-section-title"><i class="fas fa-wallet"></i> PAYROLL</div>
                <div class="sidebar-item">
                    <a href="salary.php" class="sidebar-link">Salary</a>
                </div>
                <div class="sidebar-item">
                    <a href="payroll.php" class="sidebar-link">Run Payroll</a>
                </div>
            </div>

            <!-- HR Modules -->
            <div class="sidebar-section">
                <div class="sidebar-section-title"><i class="fas fa-cog"></i> HR MODULES</div>
                <div class="sidebar-item">
                    <a href="appraisals.php" class="sidebar-link">Appraisals</a>
                </div>
                <div class="sidebar-item">
                    <a href="assets.php" class="sidebar-link">Assets</a>
                </div>
                <div class="sidebar-item">
                    <a href="recruitment.php" class="sidebar-link">Recruitment</a>
                </div>
                <div class="sidebar-item">
                    <a href="announcements.php" class="sidebar-link">Notices</a>
                </div>
            </div>

            <!-- Reports -->
            <div class="sidebar-section">
                <div class="sidebar-section-title"><i class="fas fa-chart-bar"></i> REPORTS</div>
                <div class="sidebar-item">
                    <a href="reports.php" class="sidebar-link">Analytics</a>
                </div>
            </div>

            <?php if (is_super_admin()): ?>
            <!-- Admin Settings -->
            <div class="sidebar-section">
                <div class="sidebar-section-title"><i class="fas fa-sliders-h"></i> SETTINGS</div>
                <div class="sidebar-item">
                    <a href="admins.php" class="sidebar-link">Manage Admins</a>
                </div>
            </div>
            <?php endif; ?>
        </nav>
    </aside>

    <!-- MAIN CONTENT -->
    <div class="main-content">
        <!-- Top Bar -->
        <div class="top-bar">
            <div class="top-bar-left">
                <button class="sidebar-toggle" id="sidebarToggle" aria-label="Toggle sidebar"><i class="fas fa-bars"></i></button>
                <div>
                    <h1 class="page-title">Notifications</h1>
                </div>
            </div>
            <div class="top-bar-right">
                <button class="notification-bell" title="Notifications"><i class="fas fa-bell"></i>
                    <?php if ($unreadNotificationsCount > 0): ?>
                        <span class="notification-badge"><?php echo $unreadNotificationsCount; ?></span>
                    <?php endif; ?>
                </button>
                <div class="user-menu">
                    <div class="user-avatar"><?php echo strtoupper(substr($admin['username'] ?? 'A', 0, 1)); ?></div>
                    <div class="user-name"><?php echo htmlspecialchars($admin['username'] ?? 'Admin', ENT_QUOTES, 'UTF-8'); ?></div>
                </div>
                <a href="logout.php" style="color: #cbd5e1; text-decoration: none; padding: 8px 12px; border-radius: 6px; transition: background 0.15s; font-size: 13px; font-weight: 600;" title="Logout">Logout</a>
            </div>
        </div>

        <!-- Page Content -->
        <div class="dashboard-container">
            <!-- Notifications Card -->
            <div class="chart-card" style="max-width: 900px;">
                <div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px;">
                    <div class="chart-header" style="margin: 0;">All Notifications</div>
                    <?php if (count($notifications) > 0): ?>
                        <form method="post" style="margin: 0;">
                            <input type="hidden" name="action" value="mark_all_read">
                            <button type="submit" style="background: #2563eb; color: white; border: none; padding: 8px 14px; border-radius: 6px; cursor: pointer; font-weight: 600; font-size: 13px; transition: background 0.2s;">Mark all as read</button>
                        </form>
                    <?php endif; ?>
                </div>

                <?php if (empty($notifications)): ?>
                    <div style="text-align: center; padding: 60px 20px; color: #6b7280;">
                        <i class="fas fa-inbox" style="font-size: 48px; color: #4b5563; margin-bottom: 16px; display: block;"></i>
                        <p style="font-size: 16px; margin: 0;">No notifications</p>
                    </div>
                <?php else: ?>
                    <div style="display: flex; flex-direction: column; gap: 0;">
                        <?php foreach ($notifications as $notif): ?>
                            <div style="padding: 16px; border-bottom: 1px solid rgba(255,255,255,0.05); display: flex; gap: 12px; background: <?php echo $notif['read_at'] ? 'transparent' : 'rgba(37, 99, 235, 0.08)'; ?>; transition: background 0.2s;">
                                <div style="font-size: 24px; flex-shrink: 0; color: #2563eb;">
                                    <i class="fas fa-bell"></i>
                                </div>
                                <div style="flex: 1; display: flex; flex-direction: column; gap: 4px;">
                                    <div style="display: flex; justify-content: space-between; align-items: start; gap: 8px;">
                                        <h3 style="margin: 0; color: #f3f4f6; font-size: 14px; font-weight: 600;">
                                            <?php echo htmlspecialchars($notif['title'], ENT_QUOTES, 'UTF-8'); ?>
                                        </h3>
                                        <span style="display: inline-block; font-size: 11px; font-weight: 600; padding: 2px 6px; border-radius: 3px; background: rgba(255,255,255,0.1); color: #9ca3af; white-space: nowrap;">
                                            <?php echo ucfirst(str_replace('_', ' ', $notif['type'])); ?>
                                        </span>
                                    </div>
                                    <p style="margin: 0; font-size: 13px; color: #d1d5db; line-height: 1.4;">
                                        <?php echo htmlspecialchars($notif['message'], ENT_QUOTES, 'UTF-8'); ?>
                                    </p>
                                    <div style="display: flex; justify-content: space-between; align-items: center; margin-top: 8px;">
                                        <span style="font-size: 11px; color: #6b7280;">
                                            <?php echo date('M d, Y H:i', strtotime($notif['created_at'])); ?>
                                        </span>
                                        <?php if (!$notif['read_at']): ?>
                                            <span style="display: inline-block; width: 8px; height: 8px; background: #2563eb; border-radius: 50%;"></span>
                                        <?php endif; ?>
                                    </div>
                                </div>
                            </div>
                        <?php endforeach; ?>
                    </div>
                <?php endif; ?>
            </div>
        </div>
    </div>
</div>

<script src="../assets/js/app.js"></script>
</body>
</html>

← Back to Directory Edit File 🔒 Chmod

WP File Manager