Skip to content

Commit 145c7ab

Browse files
committed
automatic sync assets for page project (266 datasets)
1 parent 3b1bc36 commit 145c7ab

2 files changed

Lines changed: 376 additions & 145 deletions

File tree

docs/README.md

Lines changed: 187 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -4,90 +4,178 @@
44

55
https://flagopen.github.io/RoboCOIN-DataManager/
66

7+
**Version:** v1.1
8+
79
## Project Overview
810

9-
RoboCOIN dataset visualization and download tool, supporting filtering, preview, selection, and dataset export.
11+
RoboCOIN dataset visualization and download tool, supporting advanced filtering, preview, selection, and dataset export. Features a modern, responsive interface with virtual scrolling for handling large datasets efficiently.
1012

1113
## Project Structure
1214

1315
```
14-
robocoin-html/
16+
DataManage/
1517
├── docs/
1618
│ ├── assets/ # Resource files
17-
│ │ ├── dataset_info/ # Dataset metadata (98 YAML files)
19+
│ │ ├── dataset_info/ # Dataset metadata (266 YAML files)
1820
│ │ ├── info/ # Index files
1921
│ │ │ ├── consolidated_datasets.json # Consolidated dataset information
20-
│ │ │ └── data_index.json # Dataset index
21-
│ │ ├── thumbnails/ # Thumbnail files (*.jpg, provided by assets/thumbnails)
22-
│ │ └── videos/ # Video files (98 MP4s)
22+
│ │ │ ├── data_index.json # Dataset index
23+
│ │ │ └── robot_aliases.json # Robot display name mappings
24+
│ │ ├── thumbnails/ # Thumbnail images (*.jpg)
25+
│ │ └── videos/ # Video files (*.mp4)
2326
│ │
24-
│ ├── css/ # Style files (modular)
25-
│ │ ├── variables.css # CSS variable definitions
26-
│ │ ├── base.css # Base styles
27-
│ │ ├── layout.css # Layout styles
28-
│ │ ├── header.css # Header styles
29-
│ │ ├── filter.css # Filter styles
30-
│ │ ├── video-grid.css # Video grid styles
31-
│ │ ├── selection-panel.css # Selection panel styles
32-
│ │ ├── modal.css # Modal styles
33-
│ │ ├── animations.css # Animation definitions
34-
│ │ ├── responsive.css # Responsive styles
27+
│ ├── css/ # Modular style files
28+
│ │ ├── core/ # Core styles
29+
│ │ │ ├── variables.css # CSS variable definitions
30+
│ │ │ ├── base.css # Base styles
31+
│ │ │ ├── layout.css # Layout styles
32+
│ │ │ └── header.css # Header styles
33+
│ │ ├── filter/ # Filter component styles
34+
│ │ │ ├── filter-control-bar.css
35+
│ │ │ ├── filter-dropdown.css
36+
│ │ │ ├── filter-options.css
37+
│ │ │ └── filter-tooltip.css
38+
│ │ ├── video/ # Video component styles
39+
│ │ │ ├── video-card.css
40+
│ │ │ ├── video-grid.css
41+
│ │ │ ├── video-hover-overlay.css
42+
│ │ │ ├── video-info.css
43+
│ │ │ ├── video-panel.css
44+
│ │ │ ├── video-thumbnail.css
45+
│ │ │ └── video-toolbar.css
46+
│ │ ├── selection/ # Selection panel styles
47+
│ │ │ ├── selection-panel-base.css
48+
│ │ │ ├── selection-list.css
49+
│ │ │ ├── selection-item.css
50+
│ │ │ ├── selection-footer.css
51+
│ │ │ └── selection-hub-buttons.css
52+
│ │ ├── components/ # Reusable components
53+
│ │ │ ├── modal.css
54+
│ │ │ └── toast.css
55+
│ │ ├── animations/ # Animation definitions
56+
│ │ │ └── animations.css
57+
│ │ ├── responsive/ # Responsive design
58+
│ │ │ ├── responsive-desktop.css
59+
│ │ │ ├── responsive-tablet.css
60+
│ │ │ ├── responsive-mobile.css
61+
│ │ │ └── responsive-print.css
3562
│ │ └── style.css # CSS entry point
3663
│ │
37-
│ ├── js/ # JavaScript files (modular)
64+
│ ├── js/ # Modular JavaScript files
3865
│ │ ├── modules/ # Feature modules
66+
│ │ │ ├── @filter/ # Filter module group
67+
│ │ │ │ ├── filter-manager.js
68+
│ │ │ │ ├── filter-renderer.js
69+
│ │ │ │ ├── filter-state.js
70+
│ │ │ │ ├── filter-search.js
71+
│ │ │ │ ├── filter-hierarchy.js
72+
│ │ │ │ ├── data.js
73+
│ │ │ │ └── index.js
3974
│ │ │ ├── config.js # Configuration management
4075
│ │ │ ├── data-manager.js # Data management
41-
│ │ │ ├── filter-manager.js # Filter management
42-
│ │ │ ├── video-grid.js # Video grid
43-
│ │ │ ├── selection-panel.js # Selection panel
76+
│ │ │ ├── video-grid.js # Video grid with virtual scrolling
77+
│ │ │ ├── selection-panel.js # Selection panel with virtual scrolling
78+
│ │ │ ├── download-manager.js # Download command generation
79+
│ │ │ ├── robot-aliases.js # Robot name alias management
4480
│ │ │ ├── ui-utils.js # UI utilities
4581
│ │ │ ├── event-handlers.js # Event handling
46-
│ │ │ └── virtual-scroll.js # Virtual scrolling
47-
│ │ ├── app.js # Main application
48-
│ │ ├── main.js # Entry file
49-
│ │ ├── templates.js # HTML templates
50-
│ │ └── types.js # Type definitions
82+
│ │ │ ├── virtual-scroll.js # Virtual scrolling utilities
83+
│ │ │ ├── dom-utils.js # DOM manipulation utilities
84+
│ │ │ ├── error-notifier.js # Error handling
85+
│ │ │ └── toast-manager.js # Toast notifications
86+
│ │ ├── app.js # Main application coordinator
87+
│ │ ├── main.js # Application entry point
88+
│ │ ├── templates.js # HTML template generator
89+
│ │ └── types.js # TypeScript-like type definitions
5190
│ │
5291
│ ├── index.html # Main page
5392
│ ├── favicon.ico # Website icon
54-
│ ├── README.md # Project documentation
55-
│ └── REFACTORING.md # Refactoring documentation
93+
│ ├── README.md # Project documentation (English)
94+
│ └── README.zh.md # Project documentation (Chinese)
5695
5796
└── README.md # Root directory documentation
5897
```
5998

6099
## Core Features
61100

62-
### 1. Dataset Filtering
63-
- Multi-dimensional filtering: Scene, Robot, End-effector, Action, Object
64-
- Hierarchical filters (supports object hierarchy)
65-
- Real-time search functionality
66-
- Filter Finder (filter option search)
67-
68-
### 2. Dataset Preview
69-
- Video auto-play
70-
- Hover information overlay
71-
- Detail modal dialog
72-
- Thumbnail loading (provided from assets/thumbnails directory, not auto-generated)
101+
### 1. Advanced Dataset Filtering
102+
- **Multi-dimensional filtering**: Scene, Robot, End-effector, Action, Object
103+
- **Hierarchical filters**: Supports object hierarchy with expandable/collapsible groups
104+
- **Filter Finder**: Search filter options with keyboard navigation (Ctrl+F)
105+
- Real-time highlighting of matching options
106+
- Navigate through matches with arrow keys
107+
- Match counter display
108+
- **Real-time dataset search**: Search datasets by name in the main search box
109+
- **Filter state management**: Active filter count display and easy reset
110+
- **Robot alias support**: Friendly display names for robot models
111+
112+
### 2. Rich Dataset Preview
113+
- **Video auto-play on hover**: Videos automatically play when hovering over cards
114+
- **Hover information overlay**: Quick preview of dataset metadata
115+
- **Detail modal dialog**: Comprehensive dataset information including:
116+
- Dataset metadata (scene, robot, action, objects)
117+
- Version information
118+
- Codebase version
119+
- Download links
120+
- **Thumbnail loading**: Fast thumbnail display for quick browsing
121+
- **Video controls**: Play/pause controls in video cards
73122

74123
### 3. Selection and Management
75-
- Multi-select/Single-select
76-
- Shopping cart functionality
77-
- Batch operations (add/remove/clear)
78-
- Selection state persistence
79-
80-
### 4. Export Functionality
81-
- JSON format export
82-
- Python download command generation
83-
- Support for ModelScope/HuggingFace sources
84-
- Import saved selections
124+
- **Multi-select support**: Click cards to select/deselect multiple datasets
125+
- **Batch operations**:
126+
- Select all filtered datasets
127+
- Deselect all datasets
128+
- Add selected items to cart
129+
- Remove selected items from cart
130+
- Clear entire cart
131+
- **Shopping cart (Batch Downloader)**:
132+
- Virtual scrolling for large selections
133+
- Individual item removal
134+
- Real-time count updates
135+
- **Selection state persistence**: Maintains selection state during filtering
136+
137+
### 4. Export and Download
138+
- **JSON export/import**:
139+
- Export selection list as JSON file
140+
- Import previously saved selections
141+
- **Python download command generation**:
142+
- Generate ready-to-use download commands
143+
- Support for both ModelScope and HuggingFace hubs
144+
- One-click copy to clipboard
145+
- Batch download support for multiple datasets
85146

86147
### 5. Performance Optimization
87-
- Virtual scrolling (supports large datasets)
88-
- Lazy loading videos
89-
- IntersectionObserver optimization
90-
- Element caching and reuse
148+
- **Virtual scrolling**:
149+
- Efficient rendering for large datasets (266+ datasets)
150+
- Applied to both video grid and selection panel
151+
- Element caching and reuse
152+
- **Lazy loading**:
153+
- Videos load only when visible
154+
- IntersectionObserver-based optimization
155+
- Progressive loading with progress indicator
156+
- **Optimized rendering**:
157+
- Minimal DOM manipulation
158+
- Efficient event handling
159+
- Smooth animations and transitions
160+
161+
### 6. User Experience
162+
- **Responsive design**:
163+
- Desktop, tablet, and mobile layouts
164+
- Print-friendly styles
165+
- Adaptive UI components
166+
- **Loading indicators**:
167+
- Progress bar during dataset loading
168+
- Loading overlay with spinner
169+
- Dataset count display
170+
- **Toast notifications**:
171+
- Success/error feedback
172+
- Non-intrusive notifications
173+
- **Global banner**:
174+
- Important announcements
175+
- Auto-dismissible on interaction
176+
- **Keyboard shortcuts**:
177+
- Ctrl+F for Filter Finder
178+
- Arrow keys for navigation
91179

92180
## Quick Start
93181

@@ -104,39 +192,66 @@ robocoin-html/
104192

105193
### 1. Filter Datasets
106194

107-
Click the **Filters** button to open the filter panel:
108-
- Select scene type
109-
- Select robot model
110-
- Select end-effector
111-
- Select action type
112-
- Select object (supports hierarchical selection)
195+
Click the **"Filter datasets"** button to open the filter panel:
196+
- **Select filter categories**: Scene, Robot, End-effector, Action, Object
197+
- **Hierarchical selection**: Expand/collapse object groups for hierarchical filtering
198+
- **Filter Finder**:
199+
- Press `Ctrl+F` or click the search box in the filter panel
200+
- Type to search filter options
201+
- Use ↑/↓ arrow keys or navigation buttons to move between matches
202+
- Matching options are highlighted automatically
203+
- **View active filters**: The filter button shows the count of active filters
204+
- **Reset filters**: Click "Reset filters" to clear all active filters
113205

114206
### 2. Search Datasets
115207

116-
Use the top search box to search datasets by name.
208+
- Use the **search box** in the top toolbar to search datasets by name
209+
- Search works in real-time and filters the displayed datasets
210+
- Click the **×** button to clear the search
117211

118212
### 3. Select Datasets
119213

120-
- Click cards to select/deselect
121-
- Use **select all** / **deselect** for batch operations
122-
- Selected cards will be highlighted
214+
- **Single selection**: Click on a video card to select/deselect it
215+
- **Batch selection**:
216+
- Click **"Select all datasets"** to select all currently filtered datasets
217+
- Click **"Deselect all datasets"** to clear all selections
218+
- **Visual feedback**: Selected cards are highlighted with a border
219+
- **Selection count**: The toolbar shows the number of selected datasets
123220

124-
### 4. Manage Shopping Cart
221+
### 4. Manage Shopping Cart (Batch Downloader)
125222

126-
- Click **🛒 add** to add selected items to cart
127-
- Click **🗑️ remove** to remove selected items from cart
128-
- Click **🔄 clear** to clear the cart
223+
The selection panel on the right side shows your shopping cart:
224+
- **Add to cart**: Selected datasets can be added to the cart (managed automatically)
225+
- **View cart items**: Scroll through the cart list (supports virtual scrolling)
226+
- **Remove items**: Click the remove button on individual items
227+
- **Cart count**: See how many datasets are in your cart
129228

130229
### 5. Export Download Commands
131230

132-
1. Select Hub source (ModelScope or HuggingFace)
133-
2. Click **📋 Copy & Checkout ⬇️** to copy the command
134-
3. Execute the command in terminal to download datasets
231+
1. **Select Hub source**:
232+
- Toggle between **HuggingFace** and **ModelScope** using the hub switch button
233+
- The current hub is indicated by the active state
234+
2. **Generate command**:
235+
- The download command is automatically generated based on cart contents
236+
- View the command in the code output area
237+
3. **Copy command**:
238+
- Click **"Copy & Checkout"** to copy the command to clipboard
239+
- Execute the command in your terminal to download datasets
135240

136241
### 6. Import/Export Selections
137242

138-
- Click **📤 export .json** to export selection list
139-
- Click **📋 import .json** to import saved list
243+
- **Export JSON**:
244+
- Click **"Export JSON"** to save your current cart as a JSON file
245+
- Useful for sharing selections or saving for later
246+
- **Import JSON**:
247+
- Click **"Import JSON"** to load a previously saved selection file
248+
- Restores your cart from the JSON file
249+
250+
### 7. View Dataset Details
251+
252+
- **Hover preview**: Hover over a video card to see quick information
253+
- **Detail modal**: Click on a video card to open a detailed information modal
254+
- **Video playback**: Videos auto-play on hover (desktop) or on click (mobile)
140255

141256
## Contributing
142257

0 commit comments

Comments
 (0)