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) {