Voeg thematische kleurplaten en creatieve niveaus toe (v0.4.65-beta) #3

Open
bes-r wants to merge 207 commits from bes-r/kleurplaten-v0-4-65 into main AGit
2 changed files with 10 additions and 5 deletions
Showing only changes of commit 8a3bf1e8fc - Show all commits

View file

@ -24,6 +24,7 @@
<button class="tbtn ghost" id="btnFolders">📁</button> <button class="tbtn ghost" id="btnFolders">📁</button>
<button class="tbtn ghost" id="btnSave">💾 <span data-i18n="saveBoard"></span></button> <button class="tbtn ghost" id="btnSave">💾 <span data-i18n="saveBoard"></span></button>
<button class="tbtn ghost" id="btnUser">👤 <span id="userLbl"></span></button> <button class="tbtn ghost" id="btnUser">👤 <span id="userLbl"></span></button>
<button class="tbtn ghost" id="btnSettings" style="display:none;">⚙️</button>
<button class="tbtn ghost" id="btnAdmin" style="display:none;">👥</button> <button class="tbtn ghost" id="btnAdmin" style="display:none;">👥</button>
<div id="langToggle"> <div id="langToggle">
<button data-lang="nl">NL</button> <button data-lang="nl">NL</button>

View file

@ -373,6 +373,9 @@ const roleKey = r => r==="super" ? "roleSuper" : r==="admin" ? "roleAdmin" : r==
function updateUserUI(){ function updateUserUI(){
document.getElementById("userLbl").textContent = currentUser ? currentUser.displayName : T("login"); document.getElementById("userLbl").textContent = currentUser ? currentUser.displayName : T("login");
document.getElementById("btnUser").classList.toggle("on", !!currentUser); document.getElementById("btnUser").classList.toggle("on", !!currentUser);
const settingsBtn = document.getElementById("btnSettings");
settingsBtn.style.display = currentUser ? "" : "none";
settingsBtn.title = T("settingsTitle");
const adminBtn = document.getElementById("btnAdmin"); const adminBtn = document.getElementById("btnAdmin");
adminBtn.style.display = can("admin.access") ? "" : "none"; adminBtn.style.display = can("admin.access") ? "" : "none";
adminBtn.title = T("beheer"); adminBtn.title = T("beheer");
@ -399,17 +402,18 @@ async function loadSchools(){
list.map(x=>`<option value="${x.id}">${x.name.replace(/</g,"&lt;")}</option>`).join(""); list.map(x=>`<option value="${x.id}">${x.name.replace(/</g,"&lt;")}</option>`).join("");
}catch(e){ sel.innerHTML = `<option value="">${T("schoolSel")}</option>`; } }catch(e){ sel.innerHTML = `<option value="">${T("schoolSel")}</option>`; }
} }
document.getElementById("btnUser").addEventListener("click", ()=>{ function openSettings(){
if(currentUser){
settingsMsg.textContent = ""; settingsMsg.classList.remove("ok"); settingsMsg.textContent = ""; settingsMsg.classList.remove("ok");
settingsWrap.classList.add("open"); settingsWrap.classList.add("open");
return;
} }
document.getElementById("btnUser").addEventListener("click", ()=>{
if(currentUser){ openSettings(); return; }
loginMsg.textContent = ""; loginMsg.classList.remove("ok"); loginMsg.textContent = ""; loginMsg.classList.remove("ok");
switchLoginTab("login"); switchLoginTab("login");
loadSchools(); loadSchools();
loginWrap.classList.add("open"); loginWrap.classList.add("open");
}); });
document.getElementById("btnSettings").addEventListener("click", openSettings);
loginWrap.addEventListener("click", e=>{ if(e.target===loginWrap) loginWrap.classList.remove("open"); }); loginWrap.addEventListener("click", e=>{ if(e.target===loginWrap) loginWrap.classList.remove("open"); });
settingsWrap.addEventListener("click", e=>{ if(e.target===settingsWrap) settingsWrap.classList.remove("open"); }); settingsWrap.addEventListener("click", e=>{ if(e.target===settingsWrap) settingsWrap.classList.remove("open"); });