diff --git a/public/index.html b/public/index.html index 3819d7b..8fd2a9d 100644 --- a/public/index.html +++ b/public/index.html @@ -645,6 +645,8 @@ function setupUI() { populateGhostSelect(); loadCredits(); if(u.isAdmin) updateAdminBadge(); + // Credits-Tab sofort vorbereiten falls aktiv + if(document.getElementById('vtab-credits')?.classList.contains('active')) renderCredits(); } function setupGuestUI() { @@ -999,7 +1001,7 @@ function renderCredits() { // Partners if (!partners.length) { - partnerGrid.innerHTML = '
Noch keine Partner eingetragen.
'; + partnerGrid.innerHTML = `
${currentUser?.isAdmin ? 'Noch keine Partner eingetragen. Nutze "+ Eintrag hinzufügen" oben rechts.' : 'Noch keine Partner eingetragen.'}
`; } else { partnerGrid.innerHTML = ''; partners.forEach(c => partnerGrid.appendChild(buildCreditCard(c))); @@ -1007,15 +1009,24 @@ function renderCredits() { // Credits if (!crds.length) { - creditsGrid.innerHTML = '
Noch keine Credits eingetragen.
'; + creditsGrid.innerHTML = `
${currentUser?.isAdmin ? 'Noch keine Credits eingetragen. Nutze "+ Eintrag hinzufügen" oben rechts.' : 'Noch keine Credits eingetragen.'}
`; } else { creditsGrid.innerHTML = ''; crds.forEach(c => creditsGrid.appendChild(buildCreditCard(c))); } - // Show add button for admins + // Show add button for admins — immer neu verdrahten nach jedem render const adminBtn = document.getElementById('credits-admin-btn'); - if (adminBtn) adminBtn.style.display = (currentUser?.isAdmin) ? 'block' : 'none'; + if (adminBtn) { + adminBtn.style.display = currentUser?.isAdmin ? 'block' : 'none'; + // Event listener neu setzen (sicher mit clone-replace trick) + const oldBtn = document.getElementById('btn-add-credit'); + if (oldBtn) { + const newBtn = oldBtn.cloneNode(true); + newBtn.addEventListener('click', () => openCreditForm(null)); + oldBtn.parentNode.replaceChild(newBtn, oldBtn); + } + } } function buildCreditCard(c) {