refactor(manager): expose direct filter keys from backend#317
Conversation
c38e4d9 to
7e0c4cb
Compare
|
Спасибо, что взялся за #314 — подход правильный. PHPStan на 3 контроллерах чист, тест 🟢 Что хорошо
🟡 До мержа1. Inconsistent fallback в
|
Keep manager grid filter serialization aligned with backend handlers so new direct filters do not require duplicated frontend constants.
Move shared addFilterParam logic into useGridFilterParams, tighten OrdersController direct-filter constants, and extend DirectFilterKeysTest to validate FIELD_MAP against DIRECT_FILTER_KEYS via reflection. Closes modx-pro#314
7e0c4cb to
d635ad4
Compare
|
Все три замечания закрыты:
Проверки:
Закрывает issue #314 полностью + bonus DRY в Мержим. |
Minor release: 3 new features in admin (#154 option columns, #157 select/combo inline-edit, #301 ms3-repeater extra field), 1 refactor (#317 direct_filter_keys backend contract), and ~11 fixes covering install reliability (#270, #294, #307, #308, #313, #318), processor extra-field persistence (#297, #298), Manager API null payload semantics (#289, #310, advisory for third-party API clients), CSV multi-value option import (#312), class_key auto-injection (#305, #306, #315), customer notification email source (#218, #320), customers search autofill (#286, #319), orders grid drafts toggle (#302, #303), and schema XML sync with msOptionGroup (#322). See CHANGELOG.md and docs/changelog.txt for full details.
Описание
Выносит список прямых ключей фильтров менеджерских гридов на backend и отдаёт его вместе с конфигом грида. Это убирает дублирование между Vue-гридами и PHP-контроллерами: frontend теперь решает, отправлять параметр как
keyилиfilter_key, на основеdirect_filter_keysиз/api/mgr/grid-config/{grid_key}.Для заказов дополнительно переиспользуется общий обработчик direct-фильтров в списке и статистике, а stats-запрос подключает
Addressпри адресных фильтрах, чтобыfilter_customer,filter_emailиfilter_phoneне ломали расчёт.Тип изменений
Связанные Issues
Closes #314
Как это было протестировано?
Конфигурация тестирования:
betaПроверки:
php -l core/components/minishop3/src/Controllers/Api/Manager/OrdersController.phpphp -l core/components/minishop3/src/Controllers/Api/Manager/CustomersController.phpphp -l core/components/minishop3/src/Controllers/Api/Manager/GridConfigController.phpphp -l core/components/minishop3/tests/DirectFilterKeysTest.phpphp core/components/minishop3/tests/DirectFilterKeysTest.phpnpx eslint src/components/OrdersGrid.vue src/components/CustomersGrid.vuegit diff --checkСкриншоты (если применимо)
Не применимо: изменение контракта API и сериализации фильтров без визуальных изменений.
Чеклист
Дополнительные заметки
Новые комментарии и лексиконы не требуются: сложная пользовательская логика и новые UI-строки не добавлялись. CHANGELOG не обновлялся, так как в проектных правилах записи добавляются при подготовке релиза.
PHPStan не запускался; для PHP выполнены синтаксическая проверка и статический regression-тест без MODX-окружения.