Feature: Hero-Stats dynamisch aufsteigend sortiert
Statt fixer Reihenfolge werden alle 5 Werte nach dem API-Fetch per .sort() aufsteigend geordnet und der Streifen neu aufgebaut. Damit steht immer die kleinste Zahl links, die größte rechts — unabhängig davon wie die Zahlen wachsen. SW by-v1000, APP_VER 1000
This commit is contained in:
parent
64127bf395
commit
2caab31797
4 changed files with 28 additions and 32 deletions
|
|
@ -3,7 +3,7 @@
|
|||
Router, State-Management, Navigation, Initialisierung.
|
||||
============================================================ */
|
||||
|
||||
const APP_VER = '999'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen
|
||||
const APP_VER = '1000'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen
|
||||
const APP_VERSION = '1.6.0'; // ← semantische Version, wird bei make release gesetzt
|
||||
const IS_STAGING = location.hostname === 'staging.banyaro.app';
|
||||
// Cache-Bust-Parameter nach Update-Reload sofort entfernen
|
||||
|
|
|
|||
|
|
@ -741,17 +741,7 @@
|
|||
<span class="badge">Made in Germany</span>
|
||||
<span class="badge">Offline-fähig</span>
|
||||
</div>
|
||||
<div class="hero-stats" id="hero-stats" style="display:none">
|
||||
<strong id="stat-users">…</strong> Hundemenschen
|
||||
<span class="sep">·</span>
|
||||
<strong id="stat-dogs">…</strong> Hunde
|
||||
<span class="sep">·</span>
|
||||
<strong id="stat-km">…</strong> km Gassi-Wege
|
||||
<span class="sep">·</span>
|
||||
<strong id="stat-kotbeutel">…</strong> Mülleimer für Kotbeutel
|
||||
<span class="sep">·</span>
|
||||
<strong id="stat-diary">…</strong> Tagebuch-Einträge
|
||||
</div>
|
||||
<div class="hero-stats" id="hero-stats" style="display:none"></div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
|
|
@ -1576,30 +1566,36 @@
|
|||
fetch('/api/stats/public')
|
||||
.then(function(r) { return r.json(); })
|
||||
.then(function(d) {
|
||||
var ids = {
|
||||
users: ['stat-users', 'big-users'],
|
||||
dogs: ['stat-dogs', 'big-dogs'],
|
||||
km: ['stat-km', 'big-km'],
|
||||
forum_posts: [null, 'big-posts'],
|
||||
};
|
||||
function set(id, val) {
|
||||
var el = document.getElementById(id);
|
||||
if (el) el.textContent = fmt.format(val);
|
||||
}
|
||||
set('stat-users', d.users);
|
||||
set('stat-dogs', d.dogs);
|
||||
set('stat-km', d.km);
|
||||
set('big-users', d.users);
|
||||
set('big-dogs', d.dogs);
|
||||
set('big-km', d.km);
|
||||
set('big-posts', d.forum_posts);
|
||||
set('big-diary', d.diary_entries);
|
||||
set('stat-diary', d.diary_entries);
|
||||
set('stat-kotbeutel', d.kotbeutel);
|
||||
set('big-kotbeutel', d.kotbeutel);
|
||||
// Stats-Band (weiter unten)
|
||||
set('big-users', d.users);
|
||||
set('big-dogs', d.dogs);
|
||||
set('big-km', d.km);
|
||||
set('big-posts', d.forum_posts);
|
||||
set('big-diary', d.diary_entries);
|
||||
set('big-kotbeutel', d.kotbeutel);
|
||||
|
||||
// Hero-Streifen: aufsteigend nach Wert sortiert, dynamisch aufgebaut
|
||||
var heroStats = document.getElementById('hero-stats');
|
||||
if (heroStats && d.users > 0) heroStats.style.display = 'flex';
|
||||
if (!heroStats || !d.users) return;
|
||||
|
||||
var items = [
|
||||
{ val: d.users, label: 'Hundemenschen' },
|
||||
{ val: d.dogs, label: 'Hunde' },
|
||||
{ val: d.km, label: 'km Gassi-Wege' },
|
||||
{ val: d.diary_entries, label: 'Tagebuch-Einträge' },
|
||||
{ val: d.kotbeutel, label: 'Mülleimer für Kotbeutel'},
|
||||
];
|
||||
items.sort(function(a, b) { return a.val - b.val; });
|
||||
|
||||
heroStats.innerHTML = items.map(function(item, i) {
|
||||
return (i > 0 ? '<span class="sep">·</span>' : '') +
|
||||
'<strong>' + fmt.format(item.val) + '</strong> ' + item.label;
|
||||
}).join('');
|
||||
heroStats.style.display = 'flex';
|
||||
})
|
||||
.catch(function() {});
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
Offline-Cache + Push Notifications + Tile-Cache
|
||||
============================================================ */
|
||||
|
||||
const CACHE_VERSION = 'by-v999';
|
||||
const CACHE_VERSION = 'by-v1000';
|
||||
const CACHE_STATIC = `${CACHE_VERSION}-static`;
|
||||
const CACHE_TILES = 'ban-yaro-tiles-v1'; // bleibt über SW-Updates erhalten
|
||||
const CACHE_API = 'ban-yaro-api-v1'; // API-Response-Cache
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue