Bild-Proxy (same-origin, defeats hotlink protection) + klareres Reset-Feedback
This commit is contained in:
+6
-5
@@ -1,4 +1,4 @@
|
||||
const C24 = u => u; // check24 proxy urls already absolute
|
||||
const IMG = u => '/img?u=' + encodeURIComponent(u); // route images through same-origin proxy
|
||||
const REG = {
|
||||
kroatien:{flag:'🇭🇷',name:'Kroatien',color:'var(--kro)',mk:'#e8643c'},
|
||||
kanaren:{flag:'🇮🇨',name:'Kanaren',color:'var(--kan)',mk:'#f1a23b'},
|
||||
@@ -119,7 +119,7 @@ let STATE = {votes:{}};
|
||||
|
||||
/* ---------- hero ---------- */
|
||||
document.getElementById('herobg').style.backgroundImage =
|
||||
"url('"+byId('bluesun').imgs[0]+"')";
|
||||
"url('"+IMG(byId('bluesun').imgs[0])+"')";
|
||||
|
||||
/* ---------- voter selector ---------- */
|
||||
const whoEl = document.getElementById('who');
|
||||
@@ -166,7 +166,7 @@ function avgFor(id){
|
||||
return {avg:n?sum/n:0,n,per};
|
||||
}
|
||||
function cardHTML(o){
|
||||
const imgs=o.imgs.map((s,i)=>`<img src="${s}" class="${i===0?'on':''}" loading="lazy" alt="${o.name}" onerror="this.remove()">`).join('');
|
||||
const imgs=o.imgs.map((s,i)=>`<img src="${IMG(s)}" class="${i===0?'on':''}" loading="lazy" alt="${o.name}" onerror="this.closest('.ph')&&this.remove()">`).join('');
|
||||
const dots=o.imgs.length>1?`<div class="dots">${o.imgs.map((_,i)=>`<span class="dot ${i===0?'on':''}"></span>`).join('')}</div>`:'';
|
||||
const nav=o.imgs.length>1?'<div class="nav l"></div><div class="nav r"></div>':'';
|
||||
const rate=o.rate?`<span class="crate"><b>${o.rate}</b> ${o.rlabel}${o.bew?(' · '+o.bew+' Bew.'):''}</span>`:(o.bew?`<span class="crate">${o.bew} Bewertungen</span>`:'');
|
||||
@@ -256,10 +256,11 @@ async function sendVote(option,stars){
|
||||
try{const r=await fetch('/api/vote',{method:'POST',headers:{'Content-Type':'application/json'},
|
||||
body:JSON.stringify({voter:me_,option,stars})});STATE=await r.json();renderVotes();}catch(e){}
|
||||
}
|
||||
function flashSaved(){const s=document.getElementById('saved');s.classList.add('on');setTimeout(()=>s.classList.remove('on'),1400);}
|
||||
function flashSaved(msg){const s=document.getElementById('saved');s.textContent=msg||'✓ gespeichert';s.classList.add('on');setTimeout(()=>s.classList.remove('on'),1800);}
|
||||
document.getElementById('resetBtn').onclick=async()=>{
|
||||
if(!confirm('Wirklich ALLE Bewertungen von Till, Lea und Astrid zurücksetzen?'))return;
|
||||
try{const r=await fetch('/api/reset',{method:'POST'});STATE=await r.json();renderVotes();flashSaved();}catch(e){}
|
||||
try{const r=await fetch('/api/reset',{method:'POST'});STATE=await r.json();renderVotes();flashSaved('✓ Alle Bewertungen gelöscht');}
|
||||
catch(e){alert('Zurücksetzen fehlgeschlagen – bitte nochmal versuchen.');}
|
||||
};
|
||||
|
||||
function renderAll(){renderWho();renderRecos();renderRegions();}
|
||||
|
||||
Reference in New Issue
Block a user