diff --git a/app/Controllers/DashboardController.php b/app/Controllers/DashboardController.php index 3b69ca9..af38d60 100644 --- a/app/Controllers/DashboardController.php +++ b/app/Controllers/DashboardController.php @@ -43,9 +43,13 @@ class DashboardController extends Controller // Format domains for display $formattedRecentDomains = \App\Helpers\DomainHelper::formatMultiple($recentDomains); $formattedExpiringDomains = \App\Helpers\DomainHelper::formatMultiple($expiringThisMonth); + + // Get global stats for dashboard cards + $globalStats = \App\Helpers\LayoutHelper::getGlobalStats(); $this->view('dashboard/index', [ 'stats' => $stats, + 'globalStats' => $globalStats, 'recentDomains' => $formattedRecentDomains, 'expiringThisMonth' => $formattedExpiringDomains, 'expiringCount' => count($allExpiringDomains), diff --git a/app/Models/Domain.php b/app/Models/Domain.php index 8d90b09..e99edf5 100644 --- a/app/Models/Domain.php +++ b/app/Models/Domain.php @@ -127,6 +127,7 @@ class Domain extends Model 'inactive' => 0, ]; + // Get status counts for active domains only $sql = "SELECT status, COUNT(*) as count FROM domains WHERE is_active = 1 GROUP BY status"; $stmt = $this->db->query($sql); $results = $stmt->fetchAll(); @@ -137,6 +138,14 @@ class Domain extends Model $stats[strtolower($row['status'])] = $row['count']; } + // Get count of inactive domains (is_active = 0) + $inactiveStmt = $this->db->query("SELECT COUNT(*) as count FROM domains WHERE is_active = 0"); + $inactiveResult = $inactiveStmt->fetch(); + $stats['inactive'] = $inactiveResult['count'] ?? 0; + + // Add inactive count to total + $stats['total'] += $stats['inactive']; + return $stats; } @@ -167,6 +176,14 @@ class Domain extends Model } return false; } + // Handle inactive filter (based on is_active field) + if ($filters['status'] === 'inactive') { + return $domain['is_active'] == 0; + } + // Handle available and error status filters + if ($filters['status'] === 'available' || $filters['status'] === 'error') { + return $domain['status'] === $filters['status']; + } return $domain['status'] === $filters['status']; }); } diff --git a/app/Views/domains/index.php b/app/Views/domains/index.php index bc8e4be..a8d6867 100644 --- a/app/Views/domains/index.php +++ b/app/Views/domains/index.php @@ -68,6 +68,8 @@ $currentFilters = $filters ?? ['search' => '', 'status' => '', 'group' => '', 's + +