210 lines
No EOL
5.8 KiB
Markdown
210 lines
No EOL
5.8 KiB
Markdown
# UI Migration Summary
|
|
|
|
## Overview
|
|
This document summarizes the migration from `web/` directory structure to `ui/` directory structure and the introduction of `.gbui` file format for user interface templates.
|
|
|
|
## Directory Structure Changes
|
|
|
|
### Before
|
|
```
|
|
botserver/
|
|
└── web/
|
|
├── desktop/
|
|
│ └── index.html
|
|
└── html/
|
|
```
|
|
|
|
### After
|
|
```
|
|
botserver/
|
|
└── ui/
|
|
├── desktop/
|
|
│ ├── default.gbui # Full-featured interface (copy of index.html)
|
|
│ ├── single.gbui # Simplified single-page chat interface
|
|
│ └── index.html # Original file retained for compatibility
|
|
└── html/
|
|
```
|
|
|
|
## Code Changes
|
|
|
|
### 1. Module Renaming
|
|
- **Before**: `botserver/src/core/web_server/`
|
|
- **After**: `botserver/src/core/ui_server/`
|
|
|
|
### 2. Import Updates
|
|
|
|
#### lib.rs
|
|
```rust
|
|
// Before
|
|
pub use core::web_server;
|
|
|
|
// After
|
|
pub use core::ui_server;
|
|
```
|
|
|
|
#### main.rs
|
|
```rust
|
|
// Before
|
|
use botserver::core::web_server;
|
|
.route("/", get(crate::web_server::index))
|
|
|
|
// After
|
|
use botserver::core::ui_server;
|
|
.route("/", get(crate::ui_server::index))
|
|
```
|
|
|
|
### 3. Path Updates in ui_server/mod.rs
|
|
```rust
|
|
// Before
|
|
match fs::read_to_string("web/desktop/index.html")
|
|
let static_path = PathBuf::from("./web/desktop");
|
|
|
|
// After
|
|
match fs::read_to_string("ui/desktop/index.html")
|
|
let static_path = PathBuf::from("./ui/desktop");
|
|
```
|
|
|
|
### 4. Configuration Updates
|
|
|
|
#### tauri.conf.json
|
|
```json
|
|
// Before
|
|
"frontendDist": "./web/desktop"
|
|
|
|
// After
|
|
"frontendDist": "./ui/desktop"
|
|
```
|
|
|
|
#### Cargo.toml Features
|
|
```toml
|
|
# Before
|
|
default = ["web-server", ...]
|
|
desktop = [..., "web-server"]
|
|
web-server = []
|
|
minimal = ["web-server", "chat"]
|
|
lightweight = ["web-server", "chat", "drive", "tasks"]
|
|
|
|
# After
|
|
default = ["ui-server", ...]
|
|
desktop = [..., "ui-server"]
|
|
ui-server = []
|
|
minimal = ["ui-server", "chat"]
|
|
lightweight = ["ui-server", "chat", "drive", "tasks"]
|
|
```
|
|
|
|
### 5. Service Name Updates
|
|
```rust
|
|
// Before (in admin.rs)
|
|
name: "web_server".to_string()
|
|
service: "web_server".to_string()
|
|
|
|
// After
|
|
name: "ui_server".to_string()
|
|
service: "ui_server".to_string()
|
|
```
|
|
|
|
## Documentation Updates
|
|
|
|
### 1. Chapter Structure
|
|
- Renamed `chapter-04/web-interface.md` to `chapter-04/ui-interface.md`
|
|
- Renamed `chapter-09/web-automation.md` to `chapter-09/ui-automation.md`
|
|
- Added new **Chapter 10: .gbui Files Reference** with comprehensive documentation
|
|
|
|
### 2. Terminology Updates Throughout Documentation
|
|
- "Web server" → "UI server"
|
|
- "Web interface" → "UI interface"
|
|
- "Access web interface" → "Access UI interface"
|
|
- "Starting web server" → "Starting UI server"
|
|
|
|
### 3. New .gbui Documentation Structure
|
|
```
|
|
chapter-10-gbui/
|
|
├── README.md # .gbui overview and reference
|
|
├── structure.md # Template structure details
|
|
├── components.md # Component library reference
|
|
├── javascript-api.md # JavaScript API documentation
|
|
├── mobile.md # Mobile optimization guide
|
|
├── custom-templates.md # Creating custom templates
|
|
└── embedding.md # Embedding .gbui files
|
|
```
|
|
|
|
## New .gbui File Format
|
|
|
|
### Purpose
|
|
The `.gbui` (General Bots User Interface) format provides HTML-based templates for bot interfaces with:
|
|
- Built-in WebSocket communication
|
|
- Theme integration
|
|
- Responsive design
|
|
- Component library
|
|
- JavaScript API
|
|
|
|
### Available Templates
|
|
1. **default.gbui** - Full-featured desktop interface with multiple apps (Chat, Drive, Tasks, Mail)
|
|
2. **single.gbui** - Streamlined single-page chat interface with minimal footprint
|
|
|
|
### Key Features
|
|
- Template variables: `{{bot_name}}`, `{{api_endpoint}}`, `{{websocket_url}}`
|
|
- Component system with `data-gb-component` attributes
|
|
- CSS class prefix: `gb-` for all General Bots components
|
|
- Theme variables: `--gb-primary`, `--gb-secondary`, etc.
|
|
|
|
## Important Notes
|
|
|
|
### Channel Names Remain Unchanged
|
|
The term "web" as a channel identifier (alongside "whatsapp", "teams", etc.) remains unchanged in:
|
|
- Channel adapter references
|
|
- Session channel identification
|
|
- Message routing logic
|
|
|
|
These refer to the communication channel type, not the server or interface.
|
|
|
|
### UI Automation Clarification
|
|
The UI automation module now encompasses:
|
|
- **Web Automation**: Browser automation, web scraping
|
|
- **Desktop Automation**: Desktop application control
|
|
- **Mobile Automation**: Mobile app UI control
|
|
- **Screen Capture**: Cross-platform screenshot and recording capabilities
|
|
|
|
## Migration Checklist
|
|
|
|
- [x] Rename `web/` directory to `ui/`
|
|
- [x] Create `default.gbui` from `index.html`
|
|
- [x] Create `single.gbui` simplified template
|
|
- [x] Update module name from `web_server` to `ui_server`
|
|
- [x] Update all import statements
|
|
- [x] Update path references in code
|
|
- [x] Update tauri.conf.json
|
|
- [x] Update Cargo.toml features
|
|
- [x] Update service names in admin endpoints
|
|
- [x] Update documentation terminology
|
|
- [x] Create .gbui documentation chapter
|
|
- [x] Update SUMMARY.md with new chapter
|
|
|
|
## Testing Required
|
|
|
|
After migration, test:
|
|
1. UI server starts correctly on port 8080
|
|
2. Static files are served from `ui/desktop/`
|
|
3. Both .gbui templates load correctly
|
|
4. WebSocket connections work
|
|
5. Theme switching functions properly
|
|
6. Mobile responsiveness is maintained
|
|
7. Desktop app (Tauri) builds successfully
|
|
|
|
## Rollback Plan
|
|
|
|
If issues occur:
|
|
1. Rename `ui/` back to `web/`
|
|
2. Revert module name to `web_server`
|
|
3. Restore original import statements
|
|
4. Update paths back to `web/desktop`
|
|
5. Revert configuration files
|
|
6. Restore original documentation
|
|
|
|
## Benefits of Migration
|
|
|
|
1. **Clearer Naming**: "UI" better represents the interface layer
|
|
2. **.gbui Format**: Standardized template format for bot interfaces
|
|
3. **Better Documentation**: Dedicated chapter for UI templates
|
|
4. **Extensibility**: Easy to add new template types (mobile, kiosk, embedded)
|
|
5. **Consistency**: Aligns with other .gb* file formats (.gbapp, .gbot, .gbtheme, etc.) |