Skip to content

feat(grid): add select/combo editor types for category products inline edit#157

Open
Ibochkarev wants to merge 1 commit intobetafrom
feat/155-inline-edit-select-combo
Open

feat(grid): add select/combo editor types for category products inline edit#157
Ibochkarev wants to merge 1 commit intobetafrom
feat/155-inline-edit-select-combo

Conversation

@Ibochkarev
Copy link
Member

Описание

Добавлена поддержка select и combo редакторов для inline-редактирования в таблице товаров категории (issue #155). Расширяет базовую реализацию из PR #134.

Select — для полей с фиксированным набором значений (например, made_in):

  • editor_type: 'select' в настройках поля
  • editor_options: [{label, value}, ...] — JSON-массив вариантов
  • PrimeVue Select при inline-редактировании

Combo — для полей-ссылок на сущности (например, vendor_id → msVendor):

  • editor_type: 'combo' с editor_combo_endpoint (API для загрузки опций)
  • PrimeVue Select с опциями из API, showClear для сброса nullable-полей
  • Аналог ms3.combo.Vendor из ExtJS

Тип изменений

  • Новая функциональность (non-breaking change)
  • Исправление бага (non-breaking change)
  • Breaking change (изменение, ломающее обратную совместимость)
  • Рефакторинг (без изменения функциональности)
  • Документация
  • Другое (опишите):

Связанные Issues

Closes #155

Как это было протестировано?

  • Ручное тестирование
  • Автоматические тесты (PHPStan, ESLint)
  • Тестирование на разных версиях PHP/MODX

Проверено:

  • Добавление поля с editor_type: select и editor_options в настройках грида
  • Добавление поля с editor_type: combo и editor_combo_endpoint (например, /api/mgr/references/vendors)
  • Inline-редактирование полей made_in (select) и vendor_id (combo)
  • Валидация пустого endpoint при combo
  • Toast при ошибке загрузки combo-опций
  • Сброс значения через showClear для combo

Конфигурация тестирования:

  • MiniShop3: текущая beta
  • MODX: 3.x
  • PHP: 8.x

Скриншоты (если применимо)

До После
Только text, number, boolean + Select (статические опции) и Combo (API)

Чеклист

  • Код соответствует стилю проекта
  • Добавлены/обновлены комментарии в сложных местах
  • Изменения не ломают существующую функциональность
  • Лексиконы добавлены на двух языках (ru/en)
  • PHPStan проходит без новых ошибок
  • ESLint проходит без ошибок (для JS/Vue изменений)
  • Обновлён CHANGELOG.md (для значимых изменений)

Дополнительные заметки

  • GridConfigService сохраняет editor_type, editor_options, editor_combo_endpoint в config
  • ReferencesController::getVendors возвращает {vendors: [{id, name}]} — совместимо с normalizeComboResponse
  • ProductDataService::$allowedUpdateFields уже включает vendor_id, made_in

…e edit

- Add editor_type: select with editor_options for static options (e.g. made_in)
- Add editor_type: combo with editor_combo_endpoint for API-loaded options (e.g. vendor_id)
- Validate editor_combo_endpoint when combo type is selected
- Add showClear for combo Select to allow clearing nullable fields
- Toast notification on combo options load failure
- Lexicons: editor_type_select, editor_type_combo, editor_options, editor_combo_endpoint, editor_combo_endpoint_required, combo_options_load_failed

Refs #155
@Ibochkarev Ibochkarev marked this pull request as ready for review March 16, 2026 10:41
@Ibochkarev Ibochkarev requested a review from biz87 March 16, 2026 10:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: inline edit — select/combo editor type for category products grid

1 participant