This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>NFOGuard - Database Management</title>
|
||||
<link rel="stylesheet" href="/static/css/styles.css?v=2.9.10-version-strings-fix">
|
||||
<link rel="stylesheet" href="/static/css/styles.css?v=2.10.0-skipped-tracking">
|
||||
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet">
|
||||
</head>
|
||||
<body>
|
||||
@@ -12,7 +12,7 @@
|
||||
<!-- Header -->
|
||||
<header class="app-header">
|
||||
<div class="header-content">
|
||||
<h1><i class="fas fa-shield-alt"></i> NFOGuard <span style="font-size: 0.5em; color: #888;">v2.9.10-version-strings-fix</span></h1>
|
||||
<h1><i class="fas fa-shield-alt"></i> NFOGuard <span style="font-size: 0.5em; color: #888;">v2.10.0-skipped-tracking</span></h1>
|
||||
<p>Database Management & Reporting</p>
|
||||
</div>
|
||||
<div class="auth-status" id="auth-status" style="display: none;">
|
||||
@@ -93,6 +93,17 @@
|
||||
<small>Last 7 days</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="stat-card" style="cursor: pointer;" onclick="showSkippedItems()">
|
||||
<div class="stat-icon" style="background: linear-gradient(135deg, #f39c12 0%, #e67e22 100%);">
|
||||
<i class="fas fa-ban"></i>
|
||||
</div>
|
||||
<div class="stat-info">
|
||||
<h3 id="skipped-total">-</h3>
|
||||
<p>Skipped Items</p>
|
||||
<small id="skipped-breakdown">- movies, - episodes</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="dashboard-charts">
|
||||
@@ -127,6 +138,7 @@
|
||||
<option value="">All Movies</option>
|
||||
<option value="true">With Dates</option>
|
||||
<option value="false">Missing Dates</option>
|
||||
<option value="skipped">Skipped</option>
|
||||
</select>
|
||||
<select id="movies-filter-source">
|
||||
<option value="">All Sources</option>
|
||||
@@ -711,6 +723,6 @@
|
||||
<!-- Toast Notifications -->
|
||||
<div class="toast-container" id="toast-container"></div>
|
||||
|
||||
<script src="/static/js/app.js?v=2.9.10-version-strings-fix"></script>
|
||||
<script src="/static/js/app.js?v=2.10.0-skipped-tracking">
|
||||
</body>
|
||||
</html>
|
||||
@@ -141,6 +141,24 @@ function updateDashboardStats() {
|
||||
document.getElementById('no-valid-source-total').textContent = `${moviesWithoutDates} movies, ${episodesWithoutDates} episodes without dates`;
|
||||
|
||||
document.getElementById('recent-activity').textContent = dashboardData.recent_activity_count || 0;
|
||||
|
||||
// Skipped items
|
||||
const skippedMovies = dashboardData.movies_skipped || 0;
|
||||
const skippedEpisodes = dashboardData.episodes_skipped || 0;
|
||||
const skippedTotal = dashboardData.total_skipped || (skippedMovies + skippedEpisodes);
|
||||
document.getElementById('skipped-total').textContent = skippedTotal;
|
||||
document.getElementById('skipped-breakdown').textContent = `${skippedMovies} movies, ${skippedEpisodes} episodes`;
|
||||
}
|
||||
|
||||
function showSkippedItems() {
|
||||
// Switch to Movies tab and filter to show only skipped items
|
||||
switchTab('movies');
|
||||
// Set the filter dropdown to "skipped"
|
||||
const moviesFilter = document.getElementById('movies-filter-date');
|
||||
if (moviesFilter) {
|
||||
moviesFilter.value = 'skipped';
|
||||
refreshMovies();
|
||||
}
|
||||
}
|
||||
|
||||
function updateDashboardCharts() {
|
||||
@@ -196,20 +214,27 @@ async function loadMovies(page = 1) {
|
||||
|
||||
const search = document.getElementById('movies-search').value;
|
||||
const imdbSearch = document.getElementById('movies-imdb-search').value;
|
||||
const hasDate = document.getElementById('movies-filter-date').value;
|
||||
const dateFilter = document.getElementById('movies-filter-date').value;
|
||||
const sourceFilter = document.getElementById('movies-filter-source').value;
|
||||
|
||||
|
||||
const skip = (page - 1) * 100;
|
||||
console.log(`DEBUG: loadMovies called with page=${page}, calculated skip=${skip}`);
|
||||
|
||||
|
||||
const params = new URLSearchParams({
|
||||
skip: skip,
|
||||
limit: 100
|
||||
});
|
||||
|
||||
|
||||
if (search) params.append('search', search);
|
||||
if (imdbSearch) params.append('imdb_search', imdbSearch);
|
||||
if (hasDate) params.append('has_date', hasDate);
|
||||
|
||||
// Handle different filter values
|
||||
if (dateFilter === 'skipped') {
|
||||
params.append('skipped', 'true');
|
||||
} else if (dateFilter) {
|
||||
params.append('has_date', dateFilter);
|
||||
}
|
||||
|
||||
if (sourceFilter) params.append('source_filter', sourceFilter);
|
||||
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user