mirror of
https://github.com/StuffAnThings/qbit_manage.git
synced 2025-10-12 23:08:31 +08:00
Add comprehensive documentation system that displays markdown content directly in the web UI configuration forms. Each configuration section now includes collapsible documentation panels that fetch and render relevant markdown files from the docs directory. - Add DocumentationViewer component with markdown rendering and GitHub-style alerts - Implement /api/docs endpoint to serve documentation files securely - Add documentation sections to all configuration schemas (qbt, settings, commands, etc.) - Include responsive tables, code copy buttons, and proper styling for dark/light themes - Fix Docker installation example to use relative config path - Enhance form rendering to support documentation field types with lazy loading |
||
---|---|---|
.. | ||
css | ||
img | ||
js | ||
index.html | ||
README.md |
qBit Manage Web UI
Overview
The qBit Manage Web UI provides a modern interface for configuring and managing qBit Manage. It offers real-time editing of YAML configuration files through an intuitive visual interface, eliminating the need for manual file editing.
Project Structure
web-ui/
├── css/ # Stylesheets
│ ├── components/ # Component-specific styles
│ ├── main.css # Global styles
│ ├── responsive.css # Responsive layouts
│ └── themes.css # Theme definitions
├── img/ # Application images and icons
├── js/ # Application logic
│ ├── api.js # Backend communication
│ ├── app.js # Main application
│ ├── components/ # UI components
│ ├── config-schemas/ # Configuration schemas
│ └── utils/ # Helper functions
└── index.html # Application entry point
Key Features
- Visual Configuration Editor: Intuitive forms for editing YAML configurations
- Real-time Validation: Instant feedback on configuration errors
- Undo/Redo History: Track and revert changes with history management
- Theme Support: Light/dark mode with system preference detection
- Responsive Design: Works on desktop and mobile devices
- YAML Preview: Real-time preview of generated configuration
Configuration Sections
The UI organizes configuration into logical sections:
- Commands: Manage script execution workflows
- qBittorrent Connection: Configure qBittorrent API access
- Settings: Application preferences and behavior
- Directory Paths: Define important filesystem locations
- Categories: Torrent category management
- Category Changes: Bulk category modification rules
- Tracker Configuration: Per-tracker settings
- No Hard Links: Category-specific hardlink handling
- Share Limits: Ratio and seeding time rules
- Recycle Bin: Deleted torrent management
- Orphaned Files: Cleanup of unregistered files
- Notifications: Alert configuration
- Logs: View application logs
Technical Architecture
Frontend Components
- ConfigForm.js: Dynamic form generator based on JSON schemas
- CommandPanel.js: Interface for executing management commands
- LogViewer.js: Real-time log display component
- HistoryManager.js: Undo/Redo functionality implementation
API Integration
The UI communicates with the backend through a RESTful API:
sequenceDiagram
participant UI as Web UI
participant API as FastAPI Backend
participant QBM as qBit Manage
UI->>API: HTTP Request (GET/POST)
API->>QBM: Process Configuration
QBM-->>API: YAML Validation
API-->>UI: Response with Status
Key API endpoints:
GET /api/configs
: List available configurationsPUT /api/configs/{filename}
: Update configuration filePOST /api/run-command
: Execute management commandsGET /api/logs
: Stream application logs
Error handling includes:
- JWT authentication
- Automatic retry on network failures
- Websocket support for real-time updates
Usage Notes
- Ensure the qBit Manage backend is running
- Open
index.html
in a modern browser - Select a configuration file from the dropdown
- Navigate sections using the sidebar
- Use the preview button to see generated YAML
- Save changes when complete
Keyboard Shortcuts:
Ctrl+S
: Save current configurationCtrl+R
: Toggle Run Commands modalCtrl+Z
: Undo last changeCtrl+Y
: Redo last changeCtrl+/
: Toggle Help modalCtrl+P
orCmd+P
: Toggle YAML previewEscape
: Close modals/panels