mirror of
https://github.com/NNTmux/newznab-tmux.git
synced 2026-08-28 17:01:16 +00:00
Update dashboard widgets
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user