Files
ETPlot/gallery/assets/js/stats-manager.js
T
2026-05-08 13:05:39 +02:00

55 lines
1.7 KiB
JavaScript

/**
* Statistics manager for gallery display
*/
export class StatsManager {
constructor() {
this.updateGalleryStats();
}
/**
* Update gallery statistics display
*/
updateGalleryStats() {
// Use stats passed from Python backend if available
// Otherwise fallback to DOM counting
const gridItems = document.querySelectorAll('.grid-item');
const subdirLinks = document.querySelectorAll('a[href$="/index.html"]');
const fileCountEl = document.getElementById('fileCount');
const folderCountEl = document.getElementById('folderCount');
const totalSizeEl = document.getElementById('totalSize');
const lastUpdatedEl = document.getElementById('lastUpdated');
if (fileCountEl) fileCountEl.textContent = gridItems.length;
if (folderCountEl) folderCountEl.textContent = subdirLinks.length;
if (totalSizeEl) totalSizeEl.textContent = 'Unknown';
// Set last updated time
const now = new Date();
const timeStr = now.toLocaleTimeString([], {
hour: '2-digit',
minute: '2-digit'
});
if (lastUpdatedEl) lastUpdatedEl.textContent = timeStr;
}
/**
* Update stats with backend data
*/
updateWithBackendStats(stats) {
const fileCountEl = document.getElementById('fileCount');
const folderCountEl = document.getElementById('folderCount');
const totalSizeEl = document.getElementById('totalSize');
if (fileCountEl && stats.file_count !== undefined) {
fileCountEl.textContent = stats.file_count;
}
if (folderCountEl && stats.folder_count !== undefined) {
folderCountEl.textContent = stats.folder_count;
}
if (totalSizeEl && stats.total_size !== undefined) {
totalSizeEl.textContent = stats.total_size;
}
}
}