add number of search results

This commit is contained in:
lelo 2026-01-26 17:20:05 +00:00
parent c855bfdbc1
commit 9b3d594f1d
2 changed files with 17 additions and 6 deletions

View File

@ -108,6 +108,7 @@ def searchcommand():
sql += " WHERE " + " AND ".join(conditions) sql += " WHERE " + " AND ".join(conditions)
cursor.execute(sql, params) cursor.execute(sql, params)
raw_results = cursor.fetchall() raw_results = cursor.fetchall()
total_results = len(raw_results)
# Process results # Process results
results = [] results = []
@ -135,5 +136,5 @@ def searchcommand():
results.sort(key=lambda x: x.get(key, 0), reverse=True) results.sort(key=lambda x: x.get(key, 0), reverse=True)
# Limit results # Limit results
results = results[:100] results = results[:20]
return jsonify(results=results) return jsonify(results=results, total=total_results)

View File

@ -6,12 +6,16 @@ function initSearch() {
// Function to render search results from a response object // Function to render search results from a response object
function renderResults(data) { function renderResults(data) {
const resultsDiv = document.getElementById('results'); const resultsDiv = document.getElementById('results');
resultsDiv.innerHTML = '<h5>Suchergebnisse:</h5>'; const results = Array.isArray(data.results) ? data.results : [];
const total = Number.isFinite(data.total) ? data.total : results.length;
const shown = results.length;
const remaining = Math.max(0, total - shown);
resultsDiv.innerHTML = `<h5>${total} Treffer</h5>`;
const audioExts = ['.mp3', '.wav', '.ogg', '.m4a', '.flac']; const audioExts = ['.mp3', '.wav', '.ogg', '.m4a', '.flac'];
if (data.results && data.results.length > 0) { if (results.length > 0) {
data.results.forEach(file => { results.forEach(file => {
const card = document.createElement('div'); const card = document.createElement('div');
const filenameWithoutExtension = file.filename.split('.').slice(0, -1).join('.'); const filenameWithoutExtension = file.filename.split('.').slice(0, -1).join('.');
const parentFolder = file.relative_path.split('/').slice(0, -1).join('/'); const parentFolder = file.relative_path.split('/').slice(0, -1).join('/');
@ -35,10 +39,16 @@ function initSearch() {
`; `;
resultsDiv.appendChild(card); resultsDiv.appendChild(card);
}); });
if (remaining > 0) {
const more = document.createElement('p');
more.className = 'text-muted';
more.textContent = `und weitere ${remaining} Treffer`;
resultsDiv.appendChild(more);
}
attachEventListeners(); attachEventListeners();
attachSearchFolderButtons(); attachSearchFolderButtons();
} else { } else {
resultsDiv.innerHTML = '<p>No results found.</p>'; resultsDiv.innerHTML = `<h5>${total} Treffer</h5><p>Keine Treffer gefunden.</p>`;
} }
} }