secubox-openwrt/luci-app-system-hub/htdocs/luci-static/resources
CyberMind-FR 9a4753e343 feat: add auto-refresh, auto-scroll, and compact header to system logs
Enhanced system logs viewer with live updates and improved UX

🎨 Compact Header Design
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Replaced large header with compact inline design:
- Single line header with title + Live indicator
- Inline statistics badges (Total, Errors, Warnings)
- 60% less vertical space
- Cleaner, more professional look

Before:
┌─────────────────────────────────────┐
│ 📋 System Logs                      │
│ View and filter system logs...      │
│                                     │
│ [100] [5]   [12]                   │
│ Total Errors Warnings               │
└─────────────────────────────────────┘

After:
┌─────────────────────────────────────┐
│ 📋 System Logs ● Live   [100][5][12]│
└─────────────────────────────────────┘

⟳ Auto-Refresh (Every 5 seconds)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Features:
- Automatic log polling every 5 seconds
- Live green dot indicator (● Live)
- Toggle button to enable/disable
- Updates stats in real-time
- No manual refresh needed

Implementation:
```javascript
poll.add(L.bind(function() {
    if (this.autoRefresh) {
        return API.getLogs(this.lineCount, '').then(function(result) {
            this.logs = result && result.logs ? result.logs : [];
            this.updateLogDisplay();
            this.updateStats();
        });
    }
}, this), 5);  // Poll every 5 seconds
```

↓ Auto-Scroll (Scroll to bottom)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Features:
- Automatically scrolls to latest logs
- Toggle button to enable/disable
- Useful for monitoring live activity
- Smooth scrolling behavior

Implementation:
```javascript
if (this.autoScroll) {
    setTimeout(function() {
        logWrapper.scrollTop = logWrapper.scrollHeight;
    }, 100);
}
```

🎛️ New Controls
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Added toggle buttons:
1. ⟳ Auto-Refresh - Enable/disable live updates
   - Primary button when active (green)
   - Secondary button when inactive (gray)

2. ↓ Auto-Scroll - Enable/disable auto-scrolling
   - Primary button when active (green)
   - Secondary button when inactive (gray)

Both features enabled by default for best UX.

🔧 Bug Fixes
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Fixed empty logs issue:
- API returns: { logs: [...] }
- Changed: this.logs = result.logs (instead of result)
- Added null checks: result && result.logs ? result.logs : []

📊 Real-time Stats Updates
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

New updateStats() function:
- Updates Total, Errors, Warnings counts
- Updates filter tab counts
- Called on every refresh
- Smooth live updates

 UX Improvements
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

1. Compact header saves screen space
2. Live indicator shows auto-refresh status
3. Auto-scroll keeps latest logs visible
4. Real-time stats always up-to-date
5. Easy toggle controls
6. Better empty state message

🚀 Perfect for:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

- Real-time system monitoring
- Debugging active issues
- Security event monitoring
- Service startup monitoring
- Live troubleshooting sessions

Testing:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 Auto-refresh works (5 second intervals)
 Auto-scroll works (scrolls to bottom)
 Toggle buttons work (enable/disable)
 Stats update in real-time
 Logs display correctly
 Filter tabs work
 Search works
 Download works
 Deployed to router
 Permissions fixed (644)
 Services restarted

Files Modified:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

* luci-app-system-hub/htdocs/luci-static/resources/view/system-hub/logs.js
  - Added 'poll' dependency (+1 line)
  - Added autoRefresh and autoScroll properties (+2 lines)
  - Created renderCompactHeader() function (+27 lines)
  - Added auto-refresh polling (+8 lines)
  - Added auto-refresh toggle button (+13 lines)
  - Added auto-scroll toggle button (+10 lines)
  - Added updateStats() function (+18 lines)
  - Fixed data parsing (result.logs) (+3 lines)
  - Removed manual refresh button (simplified)
  - Total: +82 lines, better UX

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-26 21:18:16 +01:00
..
system-hub feat: apply Design System v0.3.0 to all 15 SecuBox modules 2025-12-26 20:15:33 +01:00
view/system-hub feat: add auto-refresh, auto-scroll, and compact header to system logs 2025-12-26 21:18:16 +01:00