Lehrer-Live: laufende Klima-Balken farbig (Ampel) + "Heute bereits erledigt" zeigt alle heutigen Durchgaenge
- klima game-2d/3d: GGS_LIVE_STATE liefert laufenden Punktestand (score, gleiche Formel wie Endbewertung) - live.php summary: laufende Sessions jeder Sim bekommen Ampel-Score (nicht mehr nur Farmer) -> Tag-Ansicht faerbt laufende Balken statt grau - teacher.html _renderInactiveToday: zeigt jetzt ALLE heute abgeschlossenen Laeufe (auch von gerade aktiven Schueler:innen); nur das laufende Spiel bleibt oben. Titel -> "Heute bereits erledigt" Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+8
-6
@@ -1378,18 +1378,20 @@ async function _renderInactiveToday(activeSet) {
|
||||
if (!data || data.error || !Array.isArray(data.students)) return '';
|
||||
var groups = [];
|
||||
data.students.forEach(function(s){
|
||||
if (activeSet && activeSet[s.studentId]) return; // gerade online → oben
|
||||
var sess = (s.sessions||[]).filter(function(x){ return x.startMs; });
|
||||
if (!sess.length) return; // heute nichts gespielt
|
||||
if (sess.some(function(x){ return x.isLive || x.success==='running'; })) return; // läuft noch → oben
|
||||
// Alle HEUTE abgeschlossenen Durchgänge (das gerade laufende Spiel steht
|
||||
// oben in der Live-Liste und wird hier ausgelassen). Auch für Schüler:innen,
|
||||
// die gerade online sind — ihre schon fertigen Läufe sollen sichtbar bleiben.
|
||||
var sess = (s.sessions||[]).filter(function(x){ return x.startMs && !x.isLive && x.success!=='running'; });
|
||||
if (!sess.length) return; // heute nichts abgeschlossen
|
||||
sess.sort(function(a,b){ return (a.startMs||0)-(b.startMs||0); }); // chronologisch
|
||||
var lastEnd = 0; sess.forEach(function(x){ if((x.endMs||0)>lastEnd) lastEnd = x.endMs||0; });
|
||||
groups.push({ s:s, sess:sess, lastEnd:lastEnd });
|
||||
});
|
||||
if (!groups.length) return '';
|
||||
groups.sort(function(a,b){ return b.lastEnd - a.lastEnd; }); // zuletzt aktive Person oben
|
||||
var html = '<div class="card" style="margin-top:.8rem"><div class="card-h">Heute bereits aktiv · '+groups.length+'</div>';
|
||||
html += '<p style="font-size:.7rem;color:#8a8a8a;margin-bottom:.5rem">Heute schon gearbeitet, gerade aber offline — alle Aktivitäten mit Uhrzeit und Leistung.</p>';
|
||||
var totalRuns = groups.reduce(function(n,g){ return n + g.sess.length; }, 0);
|
||||
var html = '<div class="card" style="margin-top:.8rem"><div class="card-h">Heute bereits erledigt · '+groups.length+' Schüler*innen · '+totalRuns+' Durchgänge</div>';
|
||||
html += '<p style="font-size:.7rem;color:#8a8a8a;margin-bottom:.5rem">Alle heute abgeschlossenen Durchgänge (Weltküche, Klima, Farmer …) mit Uhrzeit und Leistung. Gerade laufende Spiele stehen oben.</p>';
|
||||
html += '<div style="overflow-x:auto"><table style="width:100%;border-collapse:collapse;font-size:.74rem">';
|
||||
html += '<thead><tr style="background:#f7f6f3;border-bottom:2px solid rgba(0,0,0,.08)">'
|
||||
+ '<th style="text-align:left;padding:.4rem .5rem;white-space:nowrap">Schüler*in</th>'
|
||||
|
||||
Reference in New Issue
Block a user