fix(manager): переключатель черновиков и фильтры в списке заказов#303
Conversation
|
PR прокликал на dev-стенде. Сам фикс работает корректно (чекбокс включает/выключает черновики, фильтры с Есть один блокер (формальный, не код) и пара UX-замечаний из ручного теста. 🔴 Блокер — rebase #310Ветка отрезана от Решение — 🟡 UX 1 — чекбокс не на своём уровне иерархииСейчас «Показывать черновики» лежит внутри
Когда они на одной строке — пользователь не считывает разницу. Предлагаю перенести чекбокс в шапку грида, между кнопкой
Стоимость — 5-10 строк template/CSS правок: перенести 🟡 UX 2 — состояние чекбокса не сохраняется между перезагрузкамиСейчас при каждом перезаходе на страницу чекбокс читается из Системную настройку трогать кликом из UI не стоит — это global state, побочный эффект на других менеджеров, плюс требует permission Предлагаю persistence через const STORAGE_KEY = 'ms3_orders_show_drafts'
const stored = localStorage.getItem(STORAGE_KEY)
const showDrafts = ref(
stored !== null ? stored === '1' : Boolean(ms3Config?.order_show_drafts)
)
function toggleShowDrafts() {
localStorage.setItem(STORAGE_KEY, showDrafts.value ? '1' : '0')
first.value = 0
loadOrders()
}Логика: localStorage > системная настройка > Минус: не синкается между устройствами/браузерами. Для админ-UI это приемлемо. Альтернатива более «правильная» — Минорные / на заметку1. 2. 3. Stats counter не реагирует на РезюмеЧто хорошо:
Что нужно до мержа:
После этих трёх — мержим. PR в остальном чистый, никаких глубоких проблем не нашёл. |
ae2c32c to
22bb74b
Compare
Move the show-drafts checkbox to the grid header next to stats, persist the user choice in localStorage, and add an xPDOQuery type hint on the backend.
Vue orders grid lacked a way to include draft rows despite ms3_order_show_drafts, and column filters were sent without the filter_ prefix expected by the API.
Enhanced the Vue orders grid by adding a tooltip for the order statistics, clarifying that only placed orders are counted, excluding drafts. Updated English and Russian lexicons accordingly. Improved the logic in the OrdersController to handle draft visibility more clearly.
Move the show-drafts checkbox to the grid header next to stats, persist the user choice in localStorage, and add an xPDOQuery type hint on the backend.
d81325f to
f6318e3
Compare
|
Прокликал на dev-стенде. Новая раскладка ок: чекбокс справа от статистики в обёртке PHPStan на Мержим. |



Описание
В Vue-гриде заказов добавлен чекбокс «Показывать черновики», который передаёт
show_draftsв API и позволяет видеть записи со статусом черновика без правки системной настройки MODX. Бэкенд принимает параметр запросаshow_draftsповерхms3_order_show_drafts.Исправлена передача фильтров по колонкам: динамические поля отправляются с префиксом
filter_, как ожидаетOrdersController::applyFilter()(по аналогии сCustomersGrid).Тип изменений
Связанные Issues
Closes #302
Как это было протестировано?
Конфигурация тестирования:
Проверки:
php -lдля изменённых PHP-файловnpm run lintдляOrdersGrid.vuenpm run buildдля vueManager (артефакты в gitignore)Скриншоты (если применимо)
Чеклист
Дополнительные заметки
ms3_order_show_draftsчерезms3.config.order_show_drafts.ms3_status_for_stat— это отдельная логика статистики, не общее число строк грида.