Fix: Add auth header to loadCollections and loadTags

This commit is contained in:
David L 2026-01-13 15:30:56 +10:00
parent 88f133bf6c
commit d9c91f42be

View file

@ -400,12 +400,17 @@ async function deleteModel(modelId) {
// Collections Functions // Collections Functions
async function loadCollections() { async function loadCollections() {
try { try {
const response = await fetch(`${API_BASE}/collections`); const headers = {};
if (authToken) {
headers['Authorization'] = `Bearer ${authToken}`;
}
const response = await fetch(`${API_BASE}/collections`, { headers });
const data = await response.json(); const data = await response.json();
allCollections = data.collections; allCollections = data.collections || [];
const collectionsList = document.getElementById('collectionsList'); const collectionsList = document.getElementById('collectionsList');
if (data.collections.length > 0) { if (data.collections && data.collections.length > 0) {
collectionsList.innerHTML = data.collections.map(collection => ` collectionsList.innerHTML = data.collections.map(collection => `
<li> <li>
<a href="#" onclick="loadAllModels('', '', ${collection.id}); return false;"> <a href="#" onclick="loadAllModels('', '', ${collection.id}); return false;">
@ -420,10 +425,14 @@ async function loadCollections() {
// Update upload modal collection select // Update upload modal collection select
const uploadCollectionSelect = document.getElementById('uploadCollection'); const uploadCollectionSelect = document.getElementById('uploadCollection');
uploadCollectionSelect.innerHTML = '<option value="">None</option>' + uploadCollectionSelect.innerHTML = '<option value="">None</option>' +
data.collections.map(c => `<option value="${c.id}">${escapeHtml(c.name)}</option>`).join(''); (data.collections ? data.collections.map(c => `<option value="${c.id}">${escapeHtml(c.name)}</option>`).join('') : '');
} catch (error) { } catch (error) {
console.error('Error loading collections:', error); console.error('Error loading collections:', error);
const collectionsList = document.getElementById('collectionsList');
if (collectionsList) {
collectionsList.innerHTML = '<li class="loading">Error loading collections</li>';
}
} }
} }
@ -471,12 +480,17 @@ function showCollections() {
// Tags Functions // Tags Functions
async function loadTags() { async function loadTags() {
try { try {
const response = await fetch(`${API_BASE}/tags`); const headers = {};
if (authToken) {
headers['Authorization'] = `Bearer ${authToken}`;
}
const response = await fetch(`${API_BASE}/tags`, { headers });
const data = await response.json(); const data = await response.json();
allTags = data.tags; allTags = data.tags || [];
const tagsList = document.getElementById('tagsList'); const tagsList = document.getElementById('tagsList');
if (data.tags.length > 0) { if (data.tags && data.tags.length > 0) {
const topTags = data.tags.sort((a, b) => b.model_count - a.model_count).slice(0, 10); const topTags = data.tags.sort((a, b) => b.model_count - a.model_count).slice(0, 10);
tagsList.innerHTML = topTags.map(tag => ` tagsList.innerHTML = topTags.map(tag => `
<span class="tag" style="background-color: ${tag.color}" onclick="loadAllModels('', '${escapeHtml(tag.name)}', '')"> <span class="tag" style="background-color: ${tag.color}" onclick="loadAllModels('', '${escapeHtml(tag.name)}', '')">
@ -488,6 +502,10 @@ async function loadTags() {
} }
} catch (error) { } catch (error) {
console.error('Error loading tags:', error); console.error('Error loading tags:', error);
const tagsList = document.getElementById('tagsList');
if (tagsList) {
tagsList.innerHTML = '<span class="loading">Error loading tags</span>';
}
} }
} }