diff --git a/lagebild/lagebild.js b/lagebild/lagebild.js index aa7f90b..0816171 100644 --- a/lagebild/lagebild.js +++ b/lagebild/lagebild.js @@ -207,13 +207,32 @@ var Lagebild = { /* ===== TIMELINE STRIP ===== */ renderTimeline: function() { var snaps = this.data.available_snapshots || []; - var current = { - id: 'current', - article_count: this.data.incident.article_count, - fact_check_count: this.data.incident.factcheck_count, - created_at: this.data.generated_at - }; - var all = [current].concat(snaps); + var lagebildUpdated = (this.data.current_lagebild.updated_at || '').replace(' ', 'T'); + var newestSnap = snaps.length > 0 ? snaps[0] : null; + var newestSnapTime = newestSnap ? newestSnap.created_at.replace(' ', 'T') : ''; + + var all; + if (!newestSnap || lagebildUpdated !== newestSnapTime) { + // Neues Lagebild seit letztem Snapshot – eigenen current-Eintrag zeigen + var current = { + id: 'current', + article_count: this.data.incident.article_count, + fact_check_count: this.data.incident.factcheck_count, + created_at: this.data.generated_at + }; + all = [current].concat(snaps); + } else { + // Lagebild identisch mit neuestem Snapshot – kein Geister-Eintrag, + // stattdessen Snapshot als "current" mit aktuellen Live-Counts markieren + var merged = {}; + for (var key in newestSnap) { + if (newestSnap.hasOwnProperty(key)) merged[key] = newestSnap[key]; + } + merged.id = 'current'; + merged.article_count = this.data.incident.article_count; + merged.fact_check_count = this.data.incident.factcheck_count; + all = [merged].concat(snaps.slice(1)); + } // Group by date var groups = {};