Dashboard
-Echo Work · Productivitate și proiecte
+Echo Work · Productivitate și proiecte
+diff --git a/TOOLS.md b/TOOLS.md index 1876708..aefd564 100644 --- a/TOOLS.md +++ b/TOOLS.md @@ -31,11 +31,17 @@ python3 tools/email_send.py "dest@email.com" "Subiect" "Corp mesaj" - **API:** `kanban/api.py` - **Update task:** `python3 kanban/update_task.py` -### YouTube Notes -- **Folder:** `notes/youtube/` +### Notes (toate tipurile) +- **Folder:** `notes/` (subdirectoare: `youtube/`, `retete/`, etc.) - **Update index:** `python3 tools/update_notes_index.py` +- **Pagina web:** https://moltbot.tailf7372d.ts.net/echo/notes.html - **Tags domeniu:** `@work`, `@health`, `@growth`, `@sprijin`, `@scout` +**IMPORTANT:** Când salvez orice notă (rețete, youtube, etc.), trebuie să: +1. Salvez în subdirectorul potrivit din `notes/` +2. Rulez `python3 tools/update_notes_index.py` pentru a actualiza indexul +3. Dau link-ul către pagina notes.html + ### Git - **Repo:** ~/clawd → gitea.romfast.ro/romfast/clawd - **Commit script:** `python3 tools/git_commit.py --push` diff --git a/kanban/index.html b/kanban/index.html index fd99942..da5d965 100644 --- a/kanban/index.html +++ b/kanban/index.html @@ -15,7 +15,7 @@ } .page-header { - margin-bottom: var(--space-5); + margin-bottom: var(--space-4); } .page-title { @@ -30,11 +30,131 @@ color: var(--text-muted); } + /* Status bar */ + .status-bar { + background: var(--bg-surface); + border: 1px solid var(--border); + border-radius: var(--radius-lg); + margin-bottom: var(--space-4); + overflow: hidden; + } + + .status-header { + display: flex; + align-items: center; + gap: var(--space-3); + padding: var(--space-3) var(--space-4); + background: linear-gradient(135deg, rgba(34, 197, 94, 0.15), rgba(22, 163, 74, 0.1)); + border-bottom: 1px solid var(--border); + cursor: pointer; + user-select: none; + } + + .status-header:hover { + filter: brightness(1.05); + } + + .status-title { + display: flex; + align-items: center; + gap: var(--space-2); + font-weight: 600; + font-size: var(--text-sm); + color: var(--text-primary); + } + + .status-title svg { + width: 16px; + height: 16px; + color: #22c55e; + } + + .status-summary { + flex: 1; + font-size: var(--text-xs); + color: var(--text-muted); + text-align: right; + } + + .status-toggle { + width: 16px; + height: 16px; + color: var(--text-muted); + transition: transform var(--transition-fast); + } + + .status-bar.collapsed .status-toggle { + transform: rotate(-90deg); + } + + .status-bar.collapsed .status-content { + display: none; + } + + .status-content { + padding: var(--space-3) var(--space-4); + } + + .status-row { + display: flex; + flex-wrap: wrap; + gap: var(--space-4); + margin-bottom: var(--space-2); + } + + .status-item { + display: flex; + align-items: center; + gap: var(--space-1); + font-size: var(--text-sm); + } + + .status-label { + color: var(--text-muted); + } + + .status-value { + font-weight: 600; + color: var(--text-primary); + } + + .status-value.ok { color: #22c55e; } + .status-value.warning { color: #f59e0b; } + .status-value.error { color: #ef4444; } + + .status-time { + font-size: var(--text-xs); + color: var(--text-muted); + margin-left: var(--space-1); + } + + .cron-row { + display: flex; + align-items: center; + gap: var(--space-2); + font-size: var(--text-sm); + padding-top: var(--space-2); + border-top: 1px solid var(--border); + } + + .cron-label { + color: var(--text-muted); + } + + .cron-list { + color: var(--text-secondary); + } + + .cron-done { + color: var(--text-muted); + text-decoration: line-through; + } + /* Two-column dashboard */ .dashboard-grid { display: grid; grid-template-columns: 1fr 1fr; - gap: var(--space-5); + gap: var(--space-4); } @media (max-width: 900px) { @@ -57,6 +177,18 @@ justify-content: space-between; padding: var(--space-3) var(--space-4); border-bottom: 1px solid var(--border); + cursor: pointer; + user-select: none; + } + + .panel-header:hover { + filter: brightness(1.05); + } + + .panel-header-left { + display: flex; + align-items: center; + gap: var(--space-2); } .panel-title { @@ -73,14 +205,37 @@ height: 18px; } + .panel-toggle { + width: 16px; + height: 16px; + color: var(--text-muted); + transition: transform var(--transition-fast); + } + + .panel.collapsed .panel-toggle { + transform: rotate(-90deg); + } + + .panel.collapsed .panel-body { + display: none; + } + .panel-actions { display: flex; gap: var(--space-2); } + .panel-count { + font-size: var(--text-xs); + color: var(--text-muted); + background: var(--bg-elevated); + padding: 2px 8px; + border-radius: var(--radius-sm); + } + .panel-body { padding: var(--space-3); - max-height: 600px; + max-height: 500px; overflow-y: auto; } @@ -189,11 +344,11 @@ /* Issues panel */ .issues-panel .panel-header { - background: linear-gradient(135deg, rgba(34, 197, 94, 0.15), rgba(22, 163, 74, 0.1)); + background: linear-gradient(135deg, rgba(249, 115, 22, 0.15), rgba(234, 88, 12, 0.1)); } .issues-panel .panel-title svg { - color: #22c55e; + color: #f97316; } .issues-filters { @@ -222,7 +377,7 @@ } .priority-group { - margin-bottom: var(--space-4); + margin-bottom: var(--space-3); } .priority-header { @@ -234,6 +389,11 @@ color: var(--text-muted); margin-bottom: var(--space-2); cursor: pointer; + padding: var(--space-1) 0; + } + + .priority-header:hover { + color: var(--text-secondary); } .priority-header svg { @@ -491,25 +651,6 @@ margin-bottom: var(--space-3); opacity: 0.5; } - - /* Old kanban link */ - .legacy-link { - font-size: var(--text-xs); - color: var(--text-muted); - text-decoration: none; - display: flex; - align-items: center; - gap: var(--space-1); - } - - .legacy-link:hover { - color: var(--accent); - } - - .legacy-link svg { - width: 12px; - height: 12px; - }
@@ -523,10 +664,6 @@ Dashboard - - - Kanban - Notes @@ -544,18 +681,55 @@Echo Work · Productivitate și proiecte
+Echo Work · Productivitate și proiecte
+