🤩 File Manager - Mr.X
PHP:
8.2.33
Server:
Apache
OS:
Linux 5.14.0-611.49.1.el9_7.x86_64
User:
websparkit
Navigate
Upload:
Upload
New File
New Folder
Editing:dashboard.php
<?php require_once '../includes/db.php'; require_once '../includes/auth.php'; checkEmployer(); $emp_id = $_SESSION['employer_id']; // Statistics $total_jobs = 0; $active_jobs = 0; $pending_jobs = 0; $total_apps = 0; try { $tj = fetchOne("SELECT COUNT(*) as count FROM jobs WHERE employer_id = ?", [$emp_id]); $total_jobs = $tj['count'] ?? 0; $aj = fetchOne("SELECT COUNT(*) as count FROM jobs WHERE employer_id = ? AND status = 'active'", [$emp_id]); $active_jobs = $aj['count'] ?? 0; $pj = fetchOne("SELECT COUNT(*) as count FROM jobs WHERE employer_id = ? AND status = 'pending'", [$emp_id]); $pending_jobs = $pj['count'] ?? 0; $ta = fetchOne("SELECT COUNT(ja.id) as count FROM job_applications ja JOIN jobs j ON ja.job_id = j.id WHERE j.employer_id = ?", [$emp_id]); $total_apps = $ta['count'] ?? 0; } catch (Exception $e) { // If table missing or query fails, keep values at 0 } // Latest Job Posts $recent_jobs = []; try { $recent_jobs = fetchAll("SELECT j.*, c.name as category_name FROM jobs j JOIN categories c ON j.category_id = c.id WHERE employer_id = ? ORDER BY created_at DESC LIMIT 5", [$emp_id]); } catch (Exception $e) { $recent_jobs = []; } $page_title = "Employer Dashboard"; ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title><?php echo $page_title; ?> | TopJob</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.0/font/bootstrap-icons.css"> <link rel="stylesheet" href="../assets/css/style.css"> </head> <body class="bg-light"> <nav class="navbar navbar-expand-lg dashboard-nav sticky-top shadow-sm"> <div class="container-fluid px-4"> <a class="navbar-brand fw-bold" href="../index.php">jobly.lk Employer</a> <div class="ms-auto d-flex align-items-center"> <span class="text-white me-3 d-none d-md-block">Welcome, <?php echo $_SESSION['company_name']; ?></span> <a href="../logout.php" class="btn btn-sm btn-light fw-bold">Logout</a> </div> </div> </nav> <div class="container-fluid"> <div class="row"> <!-- Sidebar --> <div class="col-md-3 col-lg-2 d-md-block sidebar collapse p-0"> <div class="position-sticky pt-3"> <ul class="nav flex-column"> <li class="nav-item"> <a class="nav-link active" href="dashboard.php"> <i class="bi bi-speedometer2 me-2"></i> Dashboard </a> </li> <li class="nav-item"> <a class="nav-link" href="post-job.php"> <i class="bi bi-plus-circle me-2"></i> Post New Job </a> </li> <li class="nav-item"> <a class="nav-link" href="manage-jobs.php"> <i class="bi bi-briefcase me-2"></i> Manage Jobs </a> </li> <li class="nav-item"> <a class="nav-link" href="applications.php"> <i class="bi bi-people me-2"></i> Applications <?php if($total_apps > 0): ?> <span class="badge bg-primary rounded-pill float-end"><?php echo $total_apps; ?></span> <?php endif; ?> </a> </li> <li class="nav-item"> <a class="nav-link" href="profile.php"> <i class="bi bi-person me-2"></i> Company Profile </a> </li> </ul> </div> </div> <!-- Main Content --> <main class="col-md-9 ms-sm-auto col-lg-10 px-md-4 py-4"> <div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pt-3 pb-2 mb-3 border-bottom"> <h1 class="h2">Dashboard Overview</h1> <div class="btn-toolbar mb-2 mb-md-0"> <a href="post-job.php" class="btn btn-sm btn-primary"> <i class="bi bi-plus-lg me-1"></i> Post a Job </a> </div> </div> <div class="row g-4 mb-4"> <div class="col-md-3"> <div class="card border-0 shadow-sm"> <div class="card-body p-4"> <div class="d-flex align-items-center"> <div class="flex-shrink-0 bg-primary bg-opacity-10 p-3 rounded"> <i class="bi bi-briefcase text-primary fs-3"></i> </div> <div class="flex-grow-1 ms-3"> <h6 class="text-muted mb-1">Total Jobs</h6> <h3 class="mb-0 fw-bold"><?php echo $total_jobs; ?></h3> </div> </div> </div> </div> </div> <div class="col-md-3"> <div class="card border-0 shadow-sm"> <div class="card-body p-4"> <div class="d-flex align-items-center"> <div class="flex-shrink-0 bg-success bg-opacity-10 p-3 rounded"> <i class="bi bi-check-circle text-success fs-3"></i> </div> <div class="flex-grow-1 ms-3"> <h6 class="text-muted mb-1">Active Jobs</h6> <h3 class="mb-0 fw-bold"><?php echo $active_jobs; ?></h3> </div> </div> </div> </div> </div> <div class="col-md-3"> <div class="card border-0 shadow-sm"> <div class="card-body p-4"> <div class="d-flex align-items-center"> <div class="flex-shrink-0 bg-warning bg-opacity-10 p-3 rounded"> <i class="bi bi-hourglass-split text-warning fs-3"></i> </div> <div class="flex-grow-1 ms-3"> <h6 class="text-muted mb-1">Pending</h6> <h3 class="mb-0 fw-bold"><?php echo $pending_jobs; ?></h3> </div> </div> </div> </div> </div> <div class="col-md-3"> <div class="card border-0 shadow-sm"> <div class="card-body p-4"> <div class="d-flex align-items-center"> <div class="flex-shrink-0 bg-info bg-opacity-10 p-3 rounded"> <i class="bi bi-people text-info fs-3"></i> </div> <div class="flex-grow-1 ms-3"> <h6 class="text-muted mb-1">Applications</h6> <h3 class="mb-0 fw-bold"><?php echo $total_apps; ?></h3> </div> </div> </div> </div> </div> </div> <!-- Recent Jobs Table --> <div class="card border-0 shadow-sm"> <div class="card-header bg-white py-3"> <h5 class="mb-0 fw-bold">Recent Job Postings</h5> </div> <div class="card-body"> <div class="table-responsive"> <table class="table table-hover align-middle"> <thead class="bg-light"> <tr> <th>Job Title</th> <th>Category</th> <th>Posted Date</th> <th>Status</th> <th>Actions</th> </tr> </thead> <tbody> <?php if(empty($recent_jobs)): ?> <tr> <td colspan="5" class="text-center py-4">No jobs posted yet.</td> </tr> <?php else: ?> <?php foreach($recent_jobs as $job): ?> <tr> <td><span class="fw-bold"><?php echo $job['title']; ?></span></td> <td><?php echo $job['category_name']; ?></td> <td><?php echo date('M d, Y', strtotime($job['created_at'])); ?></td> <td> <?php $status_class = [ 'active' => 'bg-success', 'pending' => 'bg-warning text-dark', 'rejected' => 'bg-danger', 'expired' => 'bg-secondary' ][$job['status']]; ?> <span class="badge <?php echo $status_class; ?>"><?php echo ucfirst($job['status']); ?></span> </td> <td> <a href="edit-job.php?id=<?php echo $job['id']; ?>" class="btn btn-sm btn-light border"><i class="bi bi-pencil"></i></a> <a href="delete-job.php?id=<?php echo $job['id']; ?>" class="btn btn-sm btn-light border text-danger" onclick="return confirm('Are you sure?')"><i class="bi bi-trash"></i></a> </td> </tr> <?php endforeach; ?> <?php endif; ?> </tbody> </table> </div> <div class="text-end mt-3"> <a href="manage-jobs.php" class="btn btn-link text-decoration-none">View All Jobs <i class="bi bi-arrow-right"></i></a> </div> </div> </div> </main> </div> </div> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script> </body> </html>
Save Changes
Cancel
Create New File
Create New Folder