Textsystem: Bis-Strich mit Leerzeichen (Zahl – Zahl) per Agent-Sweep
562 Ersetzungen in 50 Dateien: Halbgeviertstrich zwischen zwei Ziffern (= "bis"-Bereich) bekommt Leerzeichen davor/danach (3–4 -> 3 – 4). Regex /([0-9])\s*–\s*(?=[0-9])/ auf Rohtext (format-erhaltend, CRLF/Einrueckung unveraendert), Bindestriche in Woertern und Minuszeichen unangetastet, alle JSON weiter gueltig. Energiemanager-Zeitbloecke sind Display-Labels (kein Logik-Key) -> safe. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+7
-7
@@ -641,7 +641,7 @@ function _liveBarColor(pct, goodWhen) {
|
||||
if (goodWhen === 'mid') return '#9a9a9a';
|
||||
return pct >= 60 ? '#5a8a5e' : pct >= 30 ? '#c9913a' : '#c07a6b';
|
||||
}
|
||||
// Mini-Balken UNTER der Zahl (Cockpit „Aktuell"). pct 0–100.
|
||||
// Mini-Balken UNTER der Zahl (Cockpit „Aktuell"). pct 0 – 100.
|
||||
function _liveMiniBar(pct, color) {
|
||||
pct = Math.max(0, Math.min(100, pct||0));
|
||||
return '<div style="margin-top:3px;height:3px;border-radius:99px;background:rgba(0,0,0,.06);overflow:hidden">'
|
||||
@@ -1145,7 +1145,7 @@ async function renderLiveCockpit() {
|
||||
html += '</div></div>';
|
||||
|
||||
// === C) Klassen-Fleiß über Zeit + Zeitraum-Filter ===
|
||||
var rangeBtns = [['day','Tag','Heute · 25 Stunden 0–24 · Schulkernzeit 8–13 Uhr hervorgehoben'],
|
||||
var rangeBtns = [['day','Tag','Heute · 25 Stunden 0 – 24 · Schulkernzeit 8 – 13 Uhr hervorgehoben'],
|
||||
['week','Woche','Aktuelle Kalenderwoche · Mo–So · heutiger Tag markiert'],
|
||||
['month','Monat','Letzte 30 Tage · alle Tage sichtbar'],
|
||||
['year','Schuljahr','Aktuelles Schuljahr · ab Schulanfang (Land-abh.) bis Schulende']];
|
||||
@@ -1882,8 +1882,8 @@ function _renderKlimaCompareBody(klimaRows) {
|
||||
html += '</tbody></table></div>';
|
||||
html += '<div style="margin-top:.7rem;font-size:.65rem;color:#8a8a8a;display:flex;gap:.7rem;flex-wrap:wrap">'
|
||||
+ '<span><span style="display:inline-block;width:10px;height:10px;border-radius:2px;background:#5a8a5e;vertical-align:middle;margin-right:.25rem"></span>≥ 75 — gut</span>'
|
||||
+ '<span><span style="display:inline-block;width:10px;height:10px;border-radius:2px;background:#c9913a;vertical-align:middle;margin-right:.25rem"></span>50–74 — mittel</span>'
|
||||
+ '<span><span style="display:inline-block;width:10px;height:10px;border-radius:2px;background:#c07a6b;vertical-align:middle;margin-right:.25rem"></span>25–49 — schwach</span>'
|
||||
+ '<span><span style="display:inline-block;width:10px;height:10px;border-radius:2px;background:#c9913a;vertical-align:middle;margin-right:.25rem"></span>50 – 74 — mittel</span>'
|
||||
+ '<span><span style="display:inline-block;width:10px;height:10px;border-radius:2px;background:#c07a6b;vertical-align:middle;margin-right:.25rem"></span>25 – 49 — schwach</span>'
|
||||
+ '<span><span style="display:inline-block;width:10px;height:10px;border-radius:2px;background:#a04a3a;vertical-align:middle;margin-right:.25rem"></span>< 25 — kritisch</span>'
|
||||
+ '</div>';
|
||||
html += '</div>';
|
||||
@@ -2043,7 +2043,7 @@ async function renderLiveSummary() {
|
||||
|
||||
// Auto-Zoom: minStart / maxEnd über ALLE Sessions ermitteln, dann auf volle
|
||||
// Stundenränder runden und 10 min Polster. Wenn niemand aktiv war,
|
||||
// zeigen wir 08–14 Uhr als Standard-Bereich.
|
||||
// zeigen wir 08 – 14 Uhr als Standard-Bereich.
|
||||
var minMs = Infinity, maxMs = -Infinity;
|
||||
students.forEach(function(s){
|
||||
(s.sessions||[]).forEach(function(sess){
|
||||
@@ -2664,7 +2664,7 @@ function ivBuildOverview(cockpit, weeks, studentsCount, matrix){
|
||||
var m=IV_META[key];
|
||||
h+='<div class="iv-card" style="--iva:var('+m[2]+')"><div class="iv-chead"><span class="iv-ic"><svg viewBox="0 0 24 24">'+IV_ICON[key]+'</svg></span><div class="iv-ct"><h4>'+m[0]+'</h4><p>'+m[1]+'</p></div><span class="iv-cn num">'+rows.length+'</span></div>';
|
||||
if(rows.length){
|
||||
h+='<div class="iv-cols"><span></span><span title="Ø der letzten 3 Läufe, 0–100">Erfolg</span><span title="arbeitet gerade? blinkt live">Aktiv</span><span title="aktive Zeit pro Woche">Verlauf</span><span title="Tage seit dem letzten Lauf">Zuletzt</span><span></span></div>';
|
||||
h+='<div class="iv-cols"><span></span><span title="Ø der letzten 3 Läufe, 0 – 100">Erfolg</span><span title="arbeitet gerade? blinkt live">Aktiv</span><span title="aktive Zeit pro Woche">Verlauf</span><span title="Tage seit dem letzten Lauf">Zuletzt</span><span></span></div>';
|
||||
rows.forEach(function(r){
|
||||
h+='<button class="iv-prow" onclick="ivOpenStudent('+r.sid+')"><span class="iv-nm">'+esc(r.name)+'</span><span style="display:contents">'+ivErf(r.erf)+ivAkt(r.status)+ivSpark(r.secs,maxSec,IV_WEEK_CAP)+'</span>'+ivZuletzt(r.days)+'<svg class="iv-chev" viewBox="0 0 24 24"><path d="m9 6 6 6-6 6"/></svg></button>';
|
||||
});
|
||||
@@ -3865,7 +3865,7 @@ function renderFleiss() {
|
||||
html += '<div style="height:'+maxBarHeight+'px;display:flex;align-items:flex-end;justify-content:center"><span style="display:block;width:60%;height:1px;border-top:1px dashed rgba(0,0,0,.10)"></span></div>';
|
||||
return;
|
||||
}
|
||||
var hPct = _fleissBar(b.sum, sumMax, scale); // 0–100 %
|
||||
var hPct = _fleissBar(b.sum, sumMax, scale); // 0 – 100 %
|
||||
var hPx = Math.max(2, Math.round(hPct / 100 * maxBarHeight));
|
||||
// Tooltip: Datum/Bucket + Modul-Aufteilung
|
||||
var titleLines = [esc(f.buckets[idx]) + ' · ' + _fleissFmtTime(b.sum)];
|
||||
|
||||
Reference in New Issue
Block a user