Dashboard v2: Activity + Issues panels

- Replace Kanban with new Dashboard layout
- Status bar (ANAF, Git, Cron) - collapsible
- Activity panel - Clawdbot activity log
- Issues panel - Eisenhower priority, owner filter, programs
- All sections collapsible with localStorage persistence
- issues.json for ROA work tracking
- First issue: D101 RD49→RD50 fix
- Fix notes.html index.json format handling
This commit is contained in:
Echo
2026-01-30 19:48:01 +00:00
parent 42ce6c2698
commit fdabea7271
8 changed files with 1227 additions and 620 deletions

File diff suppressed because it is too large Load Diff

29
kanban/issues.json Normal file
View File

@@ -0,0 +1,29 @@
{
"lastUpdated": "2026-01-30T17:37:00.676Z",
"programs": [
"ROACONT",
"ROAGEST",
"ROAIMOB",
"ROAFACTURARE",
"ROADEF",
"ROASTART",
"ROAPRINT",
"ROAWEB",
"Clawdbot",
"Personal",
"Altele"
],
"issues": [
{
"id": "ROA-001",
"title": "D101: Mutare impozit precedent RD49→RD50",
"description": "RD 49 = în urma inspecției fiscale\nRD 50 = impozit precedent\nFormularul nu recalculează impozitul de 16%\nRD 40 se modifică și la 4.1",
"program": "ROACONT",
"owner": "marius",
"priority": "urgent-important",
"status": "todo",
"created": "2026-01-30T15:10:00Z",
"deadline": null
}
]
}

1
kanban/notes-data Symbolic link
View File

@@ -0,0 +1 @@
../notes

View File

@@ -482,14 +482,15 @@
const notesCache = {};
let notesIndex = [];
const notesBasePath = "youtube-notes/";
const notesBasePath = "notes-data/";
const indexPath = notesBasePath + "index.json";
// Load notes index from JSON
async function loadNotesIndex() {
try {
const response = await fetch(indexPath + '?t=' + Date.now());
notesIndex = await response.json();
const data = await response.json();
notesIndex = Array.isArray(data) ? data : (data.notes || []);
console.log(`Loaded ${notesIndex.length} notes from index.json`);
} catch (e) {
console.error('Failed to load notes index:', e);