Dashboard
Recent Cases
View AllNo recent cases found
| Case ID | Description | Category | Priority | Progress | Submitter | Assignee | Created | Actions |
|---|---|---|---|---|---|---|---|---|
| 50 ? '...' : ''); ?> |
|
createCase($description, $category, $caseType, $priority, $progress, $attachments, $user['username']); if ($result) { $_SESSION['message'] = "✅ Case created successfully with ID: {$result['caseId']}"; if ($result['assignee']) { $_SESSION['message'] .= " Assigned to: {$result['assignee']}"; } } else { $_SESSION['error'] = "Failed to create case"; } } catch (Exception $e) { $_SESSION['error'] = 'Error creating case: ' . $e->getMessage(); } } header('Location: index.php'); exit; case 'update_case': $caseId = $_POST['case_id'] ?? ''; $updates = []; if (!empty($_POST['progress'])) { $updates['progress'] = $_POST['progress']; } if (!empty($_POST['assignee'])) { $updates['assignee'] = $_POST['assignee']; } if (!empty($_POST['comments'])) { $updates['comments'] = $_POST['comments']; } if (empty($updates)) { $_SESSION['error'] = 'No updates provided'; } else { try { $result = $ticketModel->updateCase($caseId, $updates, $user['username']); if ($result) { $_SESSION['message'] = "Case $caseId updated successfully"; } else { $_SESSION['error'] = "Failed to update case"; } } catch (Exception $e) { $_SESSION['error'] = 'Error updating case: ' . $e->getMessage(); } } header('Location: index.php'); exit; case 'approve_case': $caseId = $_POST['case_id'] ?? ''; if ($caseId) { $result = $ticketModel->approveCase($caseId, $user['username']); if ($result) { $_SESSION['message'] = "✅ Case $caseId approved successfully!"; } else { $_SESSION['error'] = "Failed to approve case"; } } header('Location: index.php'); exit; case 'delete_case': $caseId = $_POST['case_id'] ?? ''; if ($caseId) { $result = $ticketModel->deleteCase($caseId, $user['username']); if ($result) { $_SESSION['message'] = "Case $caseId deleted successfully!"; } else { $_SESSION['error'] = "Failed to delete case"; } } header('Location: index.php'); exit; } } } // Handle AJAX requests if (isset($_GET['action'])) { // CORRECTED: Added missing closing parenthesis switch ($_GET['action']) { case 'get_case': $caseId = $_GET['id'] ?? ''; if ($caseId) { header('Content-Type: application/json'); $case = $ticketModel->getCaseById($caseId); if ($case) { echo json_encode($case); } else { echo json_encode(['error' => 'Case not found']); } exit; } break; case 'get_user': $username = $_GET['username'] ?? ''; if ($username) { header('Content-Type: application/json'); $user = $userModel->getUserInfo($username); if ($user) { echo json_encode($user); } else { echo json_encode(['error' => 'User not found']); } exit; } break; case 'get_categories': header('Content-Type: application/json'); echo json_encode([ 'IT Case' => ['Software', 'Hardware', 'Network', 'CNET Case', 'Email Issue', 'Printer Issue', 'System Access'], 'Maintenance Case' => ['General Service', 'Electric Case', 'COFFEE_MACHINE_CASE', 'REFRIGERATOR_CASE', 'HVAC', 'PLUMBING', 'OTHER_CASE'] ]); exit; case 'get_case_types': $category = $_GET['category'] ?? ''; if ($category) { header('Content-Type: application/json'); if ($category === 'IT Case') { echo json_encode([ 'Software', 'Hardware', 'Network', 'CNET Case', 'Email Issue', 'Printer Issue', 'System Access' ]); } else if ($category === 'Maintenance Case') { echo json_encode([ 'General Service', 'Electric Case', 'Coffee Machine Case', 'Refrigerator Case', 'HVAC', 'PLUMBING', 'Other Case' ]); } } exit; case 'search_kb': $query = $_GET['q'] ?? ''; if ($query) { header('content-type: application/json'); $articles = $kbModel->searchArticles($query); echo json_encode($articles); } exit; case 'search_faq': $query = $_GET['q'] ?? ''; if ($query) { header('content-type: application/json'); $faqs = $feedbackModel->searchFAQ($query); // CORRECTED: was $this->feedbackModel echo json_encode($faqs); } exit; default: header('HTTP/1.0 404 Not Found'); echo json_encode(['error' => 'Endpoint not found']); exit; } } // Get cases for AJAX requests if (isset($_GET['get_cases'])) { $username = $_GET['username'] ?? ''; $role = $_GET['role'] ?? ''; $department = $_GET['department'] ?? ''; if ($username && $role) { header('Content-Type: application/json'); $cases = $ticketModel->getCases($username, $role, $department); echo json_encode($cases); } else { echo json_encode([]); } exit; } // Handle knowledge base search from AJAX if (isset($_GET['search_kb'])) { $query = $_GET['search'] ?? ''; if ($query) { header('Content-Type: application/json'); $articles = $kbModel->searchArticles($query); echo json_encode($articles); } else { echo json_encode([]); } } // Dummy data for dashboard - replace with actual data fetching $totalCases = 150; $inProgressCases = 25; $doneCases = 110; $closedCases = 15; $recentCases = []; // This should be populated by a model call like $ticketModel->getRecentCases(); $technicians = []; // This should be populated by a model call like $userModel->getUsersByRole('Technician'); ?>
No recent cases found
| Case ID | Description | Category | Priority | Progress | Submitter | Assignee | Created | Actions |
|---|---|---|---|---|---|---|---|---|
| 50 ? '...' : ''); ?> |
|