122 lines
3.4 KiB
Markdown
122 lines
3.4 KiB
Markdown
# Hotkeys System - VoIdea
|
|
|
|
**Дата:** 2026-05-10
|
|
**Статус:** Backlog (часть WebUI)
|
|
|
|
---
|
|
|
|
## Обзор
|
|
|
|
Настраиваемая система горячих клавиш для быстрого управления приложением.
|
|
|
|
---
|
|
|
|
## Структура хранения
|
|
|
|
### База данных (primary)
|
|
|
|
```sql
|
|
CREATE TABLE user_hotkeys (
|
|
id UUID PRIMARY KEY,
|
|
user_id UUID REFERENCES users(id),
|
|
action VARCHAR(50) NOT NULL,
|
|
key_combination VARCHAR(100) NOT NULL,
|
|
modifier VARCHAR(20),
|
|
created_at TIMESTAMP,
|
|
updated_at TIMESTAMP
|
|
);
|
|
```
|
|
|
|
### localStorage (backup for offline)
|
|
|
|
```javascript
|
|
// Ключ: 'voidea_hotkeys'
|
|
{
|
|
"new_idea": "ctrl+n",
|
|
"save": "ctrl+s",
|
|
"search": "/"
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## Синхронизация
|
|
|
|
1. При входе → загрузить настройки из БД
|
|
2. При изменении → обновить БД и localStorage
|
|
3. При оффлайн → использовать localStorage
|
|
4. При восстановлении → sync БД → localStorage
|
|
|
|
---
|
|
|
|
## Дефолтные горячие клавиши
|
|
|
|
| Действие | Клавиша | Описание |
|
|
|----------|---------|----------|
|
|
| Новая идея | `Ctrl+N` | Создать новую идею |
|
|
| Сохранить | `Ctrl+S` | Сохранить текущее |
|
|
| Поиск | `/` | Фокус на поиск |
|
|
| Навигация вверх | `J` или `↑` | Предыдущая идея |
|
|
| Навигация вниз | `K` или `↓` | Следующая идея |
|
|
| Отправить на анализ | `Ctrl+Enter` | Запустить ИИ-анализ |
|
|
| Настройки | `Ctrl+,` | Открыть настройки |
|
|
| Помощь | `?` | Показать справку |
|
|
| Отмена | `Escape` | Закрыть модалку |
|
|
| Undo | `Ctrl+Z` | Отменить действие |
|
|
| Redo | `Ctrl+Shift+Z` | Повторить действие |
|
|
|
|
---
|
|
|
|
## UI настройки
|
|
|
|
### Страница настроек
|
|
|
|
```
|
|
├── Настройки
|
|
│ ├── Горячие клавиши
|
|
│ │ ├── Список действий
|
|
│ │ ├── Поле ввода (нажмите клавишу)
|
|
│ │ ├── Сброс на дефолт
|
|
│ │ └── Сохранить
|
|
```
|
|
|
|
### Ввод новой комбинации
|
|
|
|
1. Клик на поле ввода
|
|
2. Нажатие клавиши/комбинации
|
|
3. Автоматическое сохранение
|
|
4. Валидация (не конфликтует с системой)
|
|
|
|
---
|
|
|
|
## Обработка конфликтов
|
|
|
|
1. **Системные клавиши** (Ctrl+Alt+Del) — запрещено переназначать
|
|
2. **Браузерные** (Ctrl+T) — предупреждение
|
|
3. **Между пользователями** — индивидуально
|
|
|
|
---
|
|
|
|
## Поддерживаемые модификаторы
|
|
|
|
- `Ctrl` / `Cmd` (Mac)
|
|
- `Alt` / `Option`
|
|
- `Shift`
|
|
- Комбинации: `Ctrl+Shift+N`
|
|
|
|
---
|
|
|
|
## TODO
|
|
|
|
- [ ] Создать модель user_hotkeys
|
|
- [ ] Реализовать хуки для клавиш
|
|
- [ ] Добавить UI настроек
|
|
- [ ] Синхронизация БД ↔ localStorage
|
|
- [ ] Обработка конфликтов
|
|
- [ ] Тесты
|
|
- [ ] Документация для пользователей
|
|
|
|
---
|
|
|
|
*Создано: 2026-05-10*
|
|
*Часть WebUI (Block 4)* |