Update dashboard widgets

This commit is contained in:
DariusIII
2026-07-20 13:07:56 +02:00
parent c2789fb333
commit 7906148f7f
16 changed files with 375 additions and 185 deletions
@@ -52,7 +52,7 @@ Alpine.data('adminDashboard', () => ({
this._scheduleRefresh();
},
_scheduleRefresh() {
const interval = Number.parseInt(this.$el.dataset.refreshInterval ?? '', 10) || (15 * 60 * 1000);
const interval = Number.parseInt(this.$el.dataset.refreshInterval ?? '', 10) || (60 * 1000);
this._refreshInterval = window.setInterval(() => this._loadDashboardData(), interval);
this._visibilityHandler = () => {
if (!document.hidden && Date.now() - this._lastRefreshAt >= interval) {
@@ -159,8 +159,8 @@ Alpine.data('adminDashboard', () => ({
{ label: 'Total Users', value: summary.total_users, theme: 'blue' },
{ label: 'Downloads Today', value: summary.downloads_today, theme: 'green' },
{ label: 'Downloads (last 7d incl. today)', value: summary.downloads_week, theme: 'purple' },
{ label: 'API Hits Today', value: summary.api_hits_today, theme: 'orange' },
{ label: 'API Hits (last 7d incl. today)', value: summary.api_hits_week, theme: 'pink' },
{ label: 'API/RSS Hits Today', value: summary.api_hits_today, theme: 'orange' },
{ label: 'API/RSS Hits (last 7d incl. today)', value: summary.api_hits_week, theme: 'pink' },
];
const summaryGrid = widget.querySelector('[data-summary-grid]');
if (summaryGrid) {
@@ -209,11 +209,11 @@ Alpine.data('adminDashboard', () => ({
}
this._renderChart('downloadsChart', 'bar', 'Downloads', stats.downloads_per_hour ?? [],
'rgba(34,197,94,0.7)', 'rgba(34,197,94,1)', false);
this._renderChart('apiHitsChart', 'line', 'API Hits', stats.api_hits_per_hour ?? [],
this._renderChart('apiHitsChart', 'line', 'API/RSS Hits', stats.api_hits_per_hour ?? [],
'rgba(168,85,247,0.2)', 'rgba(168,85,247,1)', true);
this._renderChart('downloadsMinuteChart', 'line', 'Downloads', stats.downloads_per_minute ?? [],
'rgba(34,197,94,0.2)', 'rgba(34,197,94,1)', true);
this._renderChart('apiHitsMinuteChart', 'line', 'API Hits', stats.api_hits_per_minute ?? [],
this._renderChart('apiHitsMinuteChart', 'line', 'API/RSS Hits', stats.api_hits_per_minute ?? [],
'rgba(168,85,247,0.2)', 'rgba(168,85,247,1)', true);
},
_renderSystemMetrics(metrics) {
+4 -4
View File
@@ -15,7 +15,7 @@
<div x-data="adminDashboard"
id="adminDashboard"
data-data-url="{{ route('admin.api.dashboard-data') }}"
data-refresh-interval="{{ 15 * 60 * 1000 }}">
data-refresh-interval="{{ 60 * 1000 }}">
<div class="space-y-6" data-dashboard-content>
<!-- Welcome Section -->
<div class="bg-white dark:bg-gray-800 rounded-xl shadow-sm p-6">
@@ -28,7 +28,7 @@
<p class="font-medium text-gray-700 dark:text-gray-200">
<i class="fas fa-sync-alt mr-1"></i> Last dashboard refresh: <span data-stat="last-refresh">{{ $dashboardLastRefreshedAt }}</span>
</p>
<p class="mt-1 text-xs text-green-600 dark:text-green-400">Auto-refreshes every 15 minutes</p>
<p class="mt-1 text-xs text-green-600 dark:text-green-400">Auto-refreshes every minute</p>
</div>
</div>
</div>
@@ -322,7 +322,7 @@
<div class="bg-gray-50 dark:bg-gray-900 rounded-lg p-4">
<h4 class="text-lg font-semibold text-gray-800 dark:text-gray-200 mb-4 flex items-center">
<i class="fas fa-chart-area mr-2 text-purple-600 dark:text-purple-400"></i>
API Hits (Last 7 Days - Hourly)
API/RSS Hits (Last 7 Days - Hourly)
</h4>
<div class="chart-container"><canvas id="apiHitsChart"></canvas></div>
</div>
@@ -336,7 +336,7 @@
<div class="bg-gray-50 dark:bg-gray-900 rounded-lg p-4">
<h4 class="text-lg font-semibold text-gray-800 dark:text-gray-200 mb-4 flex items-center">
<i class="fas fa-chart-line mr-2 text-purple-600 dark:text-purple-400"></i>
API Hits (Last 60 Minutes)
API/RSS Hits (Last 60 Minutes)
</h4>
<div class="chart-container"><canvas id="apiHitsMinuteChart"></canvas></div>
</div>