Update to v2.1.1 - Clean Design
This commit is contained in:
parent
de25b3e19c
commit
709f362194
20 changed files with 8127 additions and 191 deletions
233
CHART_INTERACTION.md
Normal file
233
CHART_INTERACTION.md
Normal file
|
|
@ -0,0 +1,233 @@
|
|||
# 🎯 Graf Tooltip Vylepšení - v2.1.1
|
||||
|
||||
## ✨ Co se změnilo
|
||||
|
||||
### PŘED
|
||||
```
|
||||
Tooltip se zobrazí JEN když najedeš přímo na datový bod (malý kolečko)
|
||||
❌ Musíš přesně trefit bod
|
||||
❌ Obtížné na mobilech
|
||||
❌ Frustrující když je hodně bodů blízko sebe
|
||||
```
|
||||
|
||||
### PO
|
||||
```
|
||||
Tooltip se zobrazí KDEKOLIV na grafu
|
||||
✅ Stačí najet myší kamkoliv na graf
|
||||
✅ Automaticky najde nejbližší data
|
||||
✅ Mnohem lepší UX!
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Technické Řešení
|
||||
|
||||
Přidal jsem **Chart.js interaction mode**:
|
||||
|
||||
```javascript
|
||||
interaction: {
|
||||
mode: 'index', // Najde všechny datasety na indexu
|
||||
intersect: false // Nemusíš trefit přesně bod
|
||||
}
|
||||
```
|
||||
|
||||
### Vysvětlení:
|
||||
- **`mode: 'index'`** - Zobrazí tooltip pro všechny datasety na daném X indexu
|
||||
- **`intersect: false`** - Tooltip se zobrazí i když nejsi přímo nad čárou
|
||||
|
||||
---
|
||||
|
||||
## 📊 Jak to funguje
|
||||
|
||||
### Single Dataset Graf (např. Total Data)
|
||||
```
|
||||
Graf: ──────●──────●──────●──────
|
||||
│ │ │ │
|
||||
Myš: │ ← zde → │ │
|
||||
│ │ │ │
|
||||
└─────┴──────┴──────┘
|
||||
Tooltip se ukáže u nejbližšího bodu
|
||||
```
|
||||
|
||||
### Multi Dataset Graf (např. Paid vs Unpaid)
|
||||
```
|
||||
Paid: ──────●──────●──────●──────
|
||||
Unpaid: ──────●──────●──────●──────
|
||||
│ │ │ │
|
||||
Myš: │ ← zde → │ │
|
||||
│ │ │ │
|
||||
|
||||
Tooltip ukáže:
|
||||
Nov 9, 05:52 PM
|
||||
━━━━━━━━━━━━━━
|
||||
💰 Paid: 1.234 GB
|
||||
📡 Unpaid: 0.567 GB
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🎨 Bonus - Formátované Hodnoty
|
||||
|
||||
Přidal jsem také custom callback pro lepší formátování:
|
||||
|
||||
```javascript
|
||||
callbacks: {
|
||||
label: function(context) {
|
||||
let label = context.dataset.label || '';
|
||||
if (label) {
|
||||
label += ': ';
|
||||
}
|
||||
if (context.parsed.y !== null) {
|
||||
label += context.parsed.y.toFixed(3) + ' GB';
|
||||
}
|
||||
return label;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**Výsledek:**
|
||||
```
|
||||
// PŘED
|
||||
Paid Data: 1.23456789
|
||||
|
||||
// PO
|
||||
Paid Data: 1.235 GB ← Vždy 3 des. místa + jednotka
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📱 Výhody
|
||||
|
||||
### Desktop
|
||||
✅ Rychlejší interakce - nemusíš lovit malé body
|
||||
✅ Přesnější - ukazuje nejbližší hodnotu
|
||||
✅ Plynulejší - tooltip plynule sleduje myš
|
||||
|
||||
### Mobile/Touch
|
||||
✅ Funguje s touch - stačí klepnout kamkoliv
|
||||
✅ Větší "hit area" - není potřeba trefit malý bod
|
||||
✅ Lepší UX na menších obrazovkách
|
||||
|
||||
---
|
||||
|
||||
## 🔄 Kde to funguje
|
||||
|
||||
Toto vylepšení je aplikováno na **VŠECHNY grafy**:
|
||||
|
||||
### Veřejný Dashboard:
|
||||
- ✅ Total Data Provided (GB)
|
||||
- ✅ Individual Account Charts
|
||||
|
||||
### Privátní Dashboard:
|
||||
- ✅ Paid vs Unpaid Data
|
||||
- ✅ Delta Chart
|
||||
- ✅ Combined Chart
|
||||
- ✅ Individual Account Charts
|
||||
|
||||
---
|
||||
|
||||
## 🧪 Vyzkoušej
|
||||
|
||||
1. **Otevři dashboard**
|
||||
2. **Najdi graf**
|
||||
3. **Jeď myší kdekoliv na grafu** (nemusíš trefit bod)
|
||||
4. **Tooltip se okamžitě ukáže** s nejbližšími daty!
|
||||
|
||||
### Test Multi-Dataset:
|
||||
Na grafu s více čarami (Paid vs Unpaid):
|
||||
- Jeď myší horizontálně přes graf
|
||||
- Tooltip ukáže **obě** hodnoty najednou
|
||||
- Vidíš data pro všechny datasety v daném čase
|
||||
|
||||
---
|
||||
|
||||
## 💡 Pro Tipy
|
||||
|
||||
### Rychlé Porovnání
|
||||
Na multi-dataset grafu můžeš rychle porovnat hodnoty:
|
||||
```
|
||||
Jeď myší zleva doprava →
|
||||
Tooltip plynule ukazuje jak se mění obě hodnoty
|
||||
```
|
||||
|
||||
### Přesné Hodnoty
|
||||
I když jsou body blízko sebe:
|
||||
```
|
||||
[●●●●●] ← Těsně u sebe
|
||||
Tooltip vždy ukáže správný nejbližší bod
|
||||
```
|
||||
|
||||
### Mobile
|
||||
Na mobilech:
|
||||
```
|
||||
Klepni kamkoliv na graf
|
||||
→ Tooltip se ukáže
|
||||
Jeď prstem po grafu
|
||||
→ Tooltip sleduje tvůj prst
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Interaction Modes
|
||||
|
||||
Pro tvou informaci, Chart.js nabízí různé režimy:
|
||||
|
||||
| Mode | Popis | Použití |
|
||||
|------|-------|---------|
|
||||
| `'point'` | Jen přesný bod | Původní chování ❌ |
|
||||
| `'nearest'` | Nejbližší bod | Stále musíš být blízko |
|
||||
| **`'index'`** | **Celý index** | **← Používáme! ✅** |
|
||||
| `'dataset'` | Celý dataset | Pro srovnání |
|
||||
| `'x'` / `'y'` | Podle osy | Specifické případy |
|
||||
|
||||
**Proč `'index'`?**
|
||||
- Nejlepší pro časové grafy
|
||||
- Ukáže všechny datasety najednou
|
||||
- Nejintuitivnější pro uživatele
|
||||
|
||||
---
|
||||
|
||||
## 📊 Příklad Output
|
||||
|
||||
### Single Chart:
|
||||
```
|
||||
Nov 21, 01:37 PM
|
||||
━━━━━━━━━━━━━━━━
|
||||
Total Data: 169.134 GB
|
||||
```
|
||||
|
||||
### Multi Chart:
|
||||
```
|
||||
Nov 21, 01:37 PM
|
||||
━━━━━━━━━━━━━━━━
|
||||
💰 Paid (GB): 123.456 GB
|
||||
📡 Unpaid (GB): 45.678 GB
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Instalace
|
||||
|
||||
Už je zahrnuté v **main_clean.py v2.1.1**!
|
||||
|
||||
```bash
|
||||
cd ~/urio
|
||||
cp /path/to/main_clean.py main.py
|
||||
pkill -f main.py
|
||||
python3 main.py
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📝 Changelog
|
||||
|
||||
### v2.1.1 - 2024-11-21
|
||||
- ✅ Added `interaction.mode = 'index'` to all charts
|
||||
- ✅ Added `interaction.intersect = false` for easier tooltip display
|
||||
- ✅ Added custom tooltip callback for formatted values (3 decimal places)
|
||||
- ✅ Improved mobile/touch experience
|
||||
- ✅ Applied to both public and private dashboard charts
|
||||
|
||||
---
|
||||
|
||||
**Výsledek: Mnohem lepší UX! Tooltip se ukáže kdekoliv najedeš myší na graf! 🎉**
|
||||
Loading…
Add table
Add a link
Reference in a new issue