mirror of
https://github.com/KarnerF/SMPlusGui.git
synced 2026-10-06 07:00:24 +02:00
Fix JS syntax error (duplicate ternary); use global _smG array for onclick; no more escaping issues
This commit is contained in:
1 parent
51d79aceed
commit
2734b79267
1 file changed
+25
-37
@@ -1784,75 +1784,63 @@ static void fn(struct mg_connection *c, int ev, void *ev_data) {
|
||||
"var gd=res[0],id=res[1];"
|
||||
"if(!gl)return;"
|
||||
"var imgs=id&&id.images?id.images:[];"
|
||||
/* title_id from mount_point: /mnt/shadowmnt/PPSA20515_name_hash -> PPSA20515 */
|
||||
"function smTid(img){"
|
||||
"var mp=(img.mount_point||'').split('/').pop();"
|
||||
"var t=mp.split('_')[0];"
|
||||
"return(t.length===9&&/^[A-Za-z]{4}\\d{5}$/.test(t))?t:'';"
|
||||
"}"
|
||||
"function smTid(mp){var b=(mp||'').split('/').pop(),t=b.split('_')[0];"
|
||||
"return(t.length===9&&/^[A-Za-z]{4}[0-9]{5}$/.test(t))?t:'';}"
|
||||
"window._smG=[];"
|
||||
"if(gd&&!gd.error&&!gd.status&&gd.games&&gd.games.length){"
|
||||
"_gpR=0;renderGamesList(gl,gd.games);"
|
||||
"}else if(imgs.length){"
|
||||
"var h='';"
|
||||
"imgs.forEach(function(img){"
|
||||
"var tid=smTid(img);"
|
||||
"var h='';window._smG=[];"
|
||||
"imgs.forEach(function(img,i){"
|
||||
"var tid=smTid(img.mount_point);"
|
||||
"window._smG.push({tid:tid,path:img.path||'',mounted:img.mounted});"
|
||||
"var fn=(img.path||'').split('/').pop();"
|
||||
"var sz=img.size?(img.size>1073741824?(img.size/1073741824).toFixed(2)+' GB':(img.size/1048576).toFixed(0)+' MB'):'?';"
|
||||
"var mn=img.mounted"
|
||||
"?'<span style=\"color:#10b981;font-size:.75rem;\">● aktiv</span>'"
|
||||
"var mn=img.mounted?'<span style=\"color:#10b981;font-size:.75rem;\">● aktiv</span>'"
|
||||
":'<span style=\"color:var(--dim);font-size:.75rem;\">○ inaktiv</span>';"
|
||||
"var ba=tid?(img.mounted"
|
||||
"?'<button onclick=\"unmountGame(\\\''+tid+'\\\')\" style=\"background:transparent;border:1px solid #f87171;border-radius:4px;color:#f87171;padding:3px 10px;cursor:pointer;font-size:.75rem;\">Unmount</button>'"
|
||||
":'<button onclick=\"mountGame(\\\''+tid+'\\\')\" style=\"background:transparent;border:1px solid var(--accent);border-radius:4px;color:var(--accent);padding:3px 10px;cursor:pointer;font-size:.75rem;white-space:nowrap;\">Mount</button>')"
|
||||
":'<button onclick=\"manualMount(\\\''+img.path+'\\\')\" style=\"background:transparent;border:1px solid var(--accent);border-radius:4px;color:var(--accent);padding:3px 10px;cursor:pointer;font-size:.75rem;white-space:nowrap;\">Mount</button>';"
|
||||
"var ba=img.mounted"
|
||||
"?'<button onclick=\"_smUnmount('+i+')\" style=\"background:transparent;border:1px solid #f87171;border-radius:4px;color:#f87171;padding:3px 10px;cursor:pointer;font-size:.75rem;\">Unmount</button>'"
|
||||
":'<button onclick=\"_smMount('+i+')\" style=\"background:transparent;border:1px solid var(--accent);border-radius:4px;color:var(--accent);padding:3px 10px;cursor:pointer;font-size:.75rem;white-space:nowrap;\">Mount</button>';"
|
||||
"h+='<div style=\"display:flex;align-items:center;gap:10px;padding:8px 4px;border-bottom:1px solid var(--border);\">';"
|
||||
"h+='<img src=\"/api/game/icon?title_id='+tid+'\" width=\"48\" height=\"48\"';"
|
||||
"h+=' style=\"border-radius:8px;object-fit:cover;flex-shrink:0;background:#1e2a42;\"';"
|
||||
"h+=' onerror=\"this.style.display=\\'none\\'\">';"
|
||||
"h+=(tid?'<img src=\"/api/game/icon?title_id='+tid+'\" width=\"48\" height=\"48\" style=\"border-radius:8px;object-fit:cover;flex-shrink:0;background:#1e2a42;\" onerror=\"this.style.display=\\'none\\'\">':\"\");"
|
||||
"h+='<div style=\"flex:1;min-width:0;\">';"
|
||||
"h+='<div style=\"font-size:.83rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;\">'+fn+'</div>';"
|
||||
"h+='<div style=\"font-family:var(--mono);font-size:.7rem;color:var(--dim);\">'+tid+'<span style=\"color:var(--dim);font-size:.65rem;\"> — '+sz+'</span></div>';"
|
||||
"h+='</div>';"
|
||||
"h+='<div style=\"display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0;\">'+mn+ba+'</div></div>';"
|
||||
"h+='<div style=\"font-family:var(--mono);font-size:.7rem;color:var(--dim);\">'+(tid||'')+'<span style=\"font-size:.65rem;\"> — '+sz+'</span></div>';"
|
||||
"h+='</div><div style=\"display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0;\">'+mn+ba+'</div></div>';"
|
||||
"});gl.innerHTML=h;"
|
||||
"}else if(!gd||gd.error||gd.status){"
|
||||
"gl.innerHTML='<p class=\"hint\" style=\"color:#f87171;\">SM API nicht erreichbar</p>';"
|
||||
"}else{"
|
||||
"gl.innerHTML='<p class=\"hint\">Keine Spiele gefunden</p>';"
|
||||
"gl.innerHTML=((!gd||gd.error||gd.status)?'<p class=\"hint\" style=\"color:#f87171;\">SM API nicht erreichbar</p>':'<p class=\"hint\">Keine Spiele gefunden</p>');"
|
||||
"}"
|
||||
"if(!il)return;"
|
||||
"if(!id||id.error||id.status){"
|
||||
"il.innerHTML='<p class=\"hint\" style=\"color:#f87171;font-size:.78rem;\">'+(id&&id.error?id.error:'nicht erreichbar')+'</p>';return;}"
|
||||
"if(!id||id.error||id.status){il.innerHTML='<p class=\"hint\" style=\"color:#f87171;\">'+(id&&id.error?id.error:'nicht erreichbar')+'</p>';return;}"
|
||||
"if(!id.images||!id.images.length){il.innerHTML='<p class=\"hint\">Keine Image-Dateien gefunden</p>';return;}"
|
||||
"var ih='<table style=\"width:100%%;border-collapse:collapse;font-size:.78rem;\">';"
|
||||
"ih+='<tr style=\"border-bottom:1px solid var(--border);color:var(--dim);font-size:.7rem;\">';"
|
||||
"ih+='<th style=\"text-align:left;padding:4px 8px;\">Datei / Pfad</th>';"
|
||||
"ih+='<th style=\"padding:4px 8px;\">Typ</th><th style=\"padding:4px 8px;\">Gr\\u00f6\\u00dfe</th>';"
|
||||
"ih+='<th style=\"padding:4px 8px;\">Mount</th><th style=\"padding:4px 8px;\"></th></tr>';"
|
||||
"id.images.forEach(function(img){"
|
||||
"ih+='<th style=\"padding:4px 8px;\">Mount</th></tr>';"
|
||||
"id.images.forEach(function(img,i){"
|
||||
"var parts=(img.path||'').split('/');"
|
||||
"var fn=parts.pop()||img.path;"
|
||||
"var dir=parts.join('/')||'/';"
|
||||
"var ext=fn.indexOf('.')>-1?fn.split('.').pop().toUpperCase():'';"
|
||||
"var sz=img.size?(img.size>1073741824?(img.size/1073741824).toFixed(2)+' GB':(img.size/1048576).toFixed(0)+' MB'):'?';"
|
||||
"var st=img.mounted?'<span style=\"color:#10b981;\">● aktiv</span>':'<span style=\"color:var(--dim);\">○</span>';"
|
||||
"var itid=smTid(img);"
|
||||
"var ipath=img.path||'';"
|
||||
"var iba=img.mounted"
|
||||
"?(itid?'<button onclick=\"unmountGame(\\\''+itid+'\\\')\" style=\"background:transparent;border:1px solid #f87171;border-radius:4px;color:#f87171;padding:2px 8px;cursor:pointer;font-size:.7rem;\">Unmount</button>':'<span style=\"color:#10b981;font-size:.7rem;\">●</span>')"
|
||||
":(itid?'<button onclick=\"mountGame(\\\''+itid+'\\\')\" style=\"background:transparent;border:1px solid var(--accent);border-radius:4px;color:var(--accent);padding:2px 8px;cursor:pointer;font-size:.7rem;\">Mount</button>':'<button onclick=\"manualMount(\\\''+ipath+'\\\')\" style=\"background:transparent;border:1px solid var(--accent);border-radius:4px;color:var(--accent);padding:2px 8px;cursor:pointer;font-size:.7rem;\">Mount</button>');"
|
||||
"?(itid?'<button onclick=\"unmountGame(\\\''+itid+'\\\')\" style=\"background:transparent;border:1px solid #f87171;border-radius:4px;color:#f87171;padding:2px 8px;cursor:pointer;font-size:.7rem;\">Unmount</button>':'<span style=\"color:#10b981;font-size:.7rem;\">● aktiv</span>')"
|
||||
":'<button onclick=\"manualMount(\\\''+ipath+'\\\')\" style=\"background:transparent;border:1px solid var(--accent);border-radius:4px;color:var(--accent);padding:2px 8px;cursor:pointer;font-size:.7rem;\">Mount</button>';"
|
||||
"?'<button onclick=\"_smUnmount('+i+')\" style=\"background:transparent;border:1px solid #f87171;border-radius:4px;color:#f87171;padding:2px 8px;cursor:pointer;font-size:.7rem;\">Unmount</button>'"
|
||||
":'<button onclick=\"_smMount('+i+')\" style=\"background:transparent;border:1px solid var(--accent);border-radius:4px;color:var(--accent);padding:2px 8px;cursor:pointer;font-size:.7rem;\">Mount</button>';"
|
||||
"ih+='<tr style=\"border-bottom:1px solid var(--border);\">';"
|
||||
"ih+='<td style=\"padding:6px 8px;\"><span style=\"font-family:var(--mono);font-size:.76rem;\">'+fn+'</span>';"
|
||||
"ih+='<br><span style=\"font-family:var(--mono);font-size:.65rem;color:var(--dim);\">'+dir+'</span></td>';"
|
||||
"ih+='<td style=\"padding:6px 8px;text-align:center;font-family:var(--mono);font-size:.7rem;\">'+ext+'</td>';"
|
||||
"ih+='<td style=\"padding:6px 8px;text-align:center;\">'+sz+'</td>';"
|
||||
"ih+='<td style=\"padding:6px 8px;text-align:center;\">'+st+'</td>';"
|
||||
"ih+='<td style=\"padding:6px 8px;text-align:center;\">'+iba+'</td></tr>';"
|
||||
"ih+='<td style=\"padding:6px 8px;text-align:center;\">'+st+' '+iba+'</td></tr>';"
|
||||
"});ih+='</table>';il.innerHTML=ih;});}"
|
||||
"function loadGames(){loadGamePanel(0);}"
|
||||
"function smRawDebug(){"
|
||||
"function _smMount(i){var g=window._smG&&window._smG[i];if(!g)return;"
|
||||
"if(g.tid)mountGame(g.tid);else manualMount(g.path);}"
|
||||
"function _smUnmount(i){var g=window._smG&&window._smG[i];if(g&&g.tid)unmountGame(g.tid);}");
|
||||
H("function smRawDebug(){"
|
||||
"var dbg=document.getElementById('sm-raw-dbg');"
|
||||
"var pre=document.getElementById('sm-raw-pre');"
|
||||
"if(!dbg||!pre)return;"
|
||||
|
||||
Reference in new issue
Block a user