Skip to content

Commit 8886de0

Browse files
committed
fix(changelog): split 1.7.0 and 1.8.0 release notes
1 parent 488b710 commit 8886de0

1 file changed

Lines changed: 32 additions & 19 deletions

File tree

CHANGELOG.md

Lines changed: 32 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,38 @@
1919

2020
### 🚀 Версия 1.8.0-beta1
2121

22-
**Тип релиза:** MINOR (beta) — Order Tabs Registry, модульные роуты аддонов, inline-edit, миграция галереи на Vue, баг-фиксы
22+
**Тип релиза:** MINOR (beta) — Order Tabs Registry, модульные роуты аддонов, баг-фиксы
23+
24+
---
25+
26+
#### ✨ Добавлено
27+
28+
**MS3OrderTabsRegistry — кастомные вкладки в окне заказа (#166, #167):**
29+
- `window.MS3OrderTabsRegistry.register()` — регистрация Vue и ExtJS вкладок на странице заказа без правки ядра
30+
- Pre-mount очередь: плагины через `msOnManagerCustomCssJs` могут регистрировать табы до маунта Vue
31+
- Общие пропсы для плагин-табов: `orderId`, `order`, `config`, `isCreateMode`
32+
- `hideOnCreate` — скрытие вкладки в режиме создания заказа
33+
- Защита reserved keys (info, products, address, history), валидация конфига, snapshot очереди
34+
- Ленивый маунт ExtJS-панелей при первом открытии вкладки, cleanup в `onBeforeUnmount`
35+
- Утилита `orderPluginTab.js` — валидация и нормализация конфига
36+
37+
**Модульная регистрация роутов для аддонов — `core/config/ms3.routes.d/` (#169):**
38+
- Загрузка фрагментов `*.php` из `ms3.routes.d/web/` и `ms3.routes.d/manager/` (алфавитный порядок) после системных и custom-файлов, до `build()`; переопределение по ключу `METHOD:PATTERN`
39+
- Метод `Router::loadRoutesFromDirectory()`, путь `Router::coreAddonRoutesDirectory('manager'|'web')` с проверкой аргумента; `api.php` и `Processors\Api\Index` грузят web-фрагменты; `Processors\Api\Router` (встроенная админка) — только manager-фрагменты
40+
- Resolver создаёт каталоги при установке; примеры `example-addon.php.dist` в компоненте для копирования в `core/config/`
41+
42+
#### 🐛 Исправлено
43+
44+
- **Пустая строка в decimal/int Extra Fields ломала сохранение товара (#170):** пустое значение кастомного поля (например `wholesale_price`) вызывало MySQL ошибку `Incorrect decimal value`, `save()` возвращал `false` и категории/опции/ссылки молча не сохранялись — хардкод каста `price`/`old_price`/`weight` заменён на универсальный цикл по `_fieldMeta` для всех `float`, `integer` и `boolean` полей
45+
- **Чекбокс «Скрыть дочерние ресурсы» не сохранялся в категориях (#161, #160):** `hide_children_in_tree` не обрабатывался в `handleCheckBoxes()` процессоров `Category/Update` и `Category/Create` — unchecked-состояние не передавалось в POST и значение сбрасывалось
46+
- **`publish_document` передавался как bool вместо int в контроллерах (#160):** `canPublish` не приводился к `(int)` в массиве JS-конфига — MODX JS использует строгое сравнение `=== 1`, из-за чего флаг мог не срабатывать. Исправлено во всех 4 контроллерах
47+
- **Кнопки «Дублировать» и «Опубликовать» не отображались в гриде товаров категории (#143, #163):** миграция обновляет конфиг колонки `actions` в `ms3_grid_fields` — добавлены действия `duplicate` и `publish` (логика уже была в Vue-компоненте)
48+
49+
---
50+
51+
### 🚀 Версия 1.7.0-beta1
52+
53+
**Тип релиза:** MINOR (beta) — inline-edit, форматированные плейсхолдеры, миграция галереи на Vue, баг-фиксы
2354

2455
---
2556

@@ -62,20 +93,6 @@
6293
- При создании заказа кастомные поля передаются в события `msOnBeforeCreateOrder` / `msOnCreateOrder` через параметр `customFields`, после чего очищаются
6394
- Чекбоксы на фронтенде отправляют состояние `input.checked` (`'1'`/`'0'`) вместо статического атрибута `value`
6495

65-
**MS3OrderTabsRegistry — кастомные вкладки в окне заказа (#166, #167):**
66-
- `window.MS3OrderTabsRegistry.register()` — регистрация Vue и ExtJS вкладок на странице заказа без правки ядра
67-
- Pre-mount очередь: плагины через `msOnManagerCustomCssJs` могут регистрировать табы до маунта Vue
68-
- Общие пропсы для плагин-табов: `orderId`, `order`, `config`, `isCreateMode`
69-
- `hideOnCreate` — скрытие вкладки в режиме создания заказа
70-
- Защита reserved keys (info, products, address, history), валидация конфига, snapshot очереди
71-
- Ленивый маунт ExtJS-панелей при первом открытии вкладки, cleanup в `onBeforeUnmount`
72-
- Утилита `orderPluginTab.js` — валидация и нормализация конфига
73-
74-
**Модульная регистрация роутов для аддонов — `core/config/ms3.routes.d/` (#169):**
75-
- Загрузка фрагментов `*.php` из `ms3.routes.d/web/` и `ms3.routes.d/manager/` (алфавитный порядок) после системных и custom-файлов, до `build()`; переопределение по ключу `METHOD:PATTERN`
76-
- Метод `Router::loadRoutesFromDirectory()`, путь `Router::coreAddonRoutesDirectory('manager'|'web')` с проверкой аргумента; `api.php` и `Processors\Api\Index` грузят web-фрагменты; `Processors\Api\Router` (встроенная админка) — только manager-фрагменты
77-
- Resolver создаёт каталоги при установке; примеры `example-addon.php.dist` в компоненте для копирования в `core/config/`
78-
7996
#### 🐛 Исправлено
8097

8198
- **Не удалялись опции товара в админке (#148, #149):** форма отправляла `options-color[]`, но `substr($key, 8)` давал ключ `color[]` вместо `color` — опция не матчилась и не удалялась. Парсинг вынесен в `Utils::extractOptionKey()` с `rtrim('[]')`. Также исправлена обработка пустого массива опций в `OptionSyncService`
@@ -92,10 +109,6 @@
92109
- **Некорректные URL в ЛК заказов клиента (#141):** кнопка «Сбросить» фильтра и ссылки пагинации вели на корень сайта (`/?`) из-за `<base href>` в шаблоне MODX — URL формируются server-side через `makeUrl()` + `http_build_query()`, пагинация сохраняет фильтр по статусу. Добавлены недостающие SVG-иконки в спрайт (`icon-arrow-left`, `icon-truck`, `icon-credit-card`, `icon-message`), исправлен `fill``stroke` для Feather-иконок в деталях заказа
93110
- **Некорректные URL и хардкод английских сообщений в ЛК адресов (#142):** кнопки «Добавить адрес», «Редактировать», «Отмена» вели на корень сайта — URL формируются server-side через `makeUrl()` + `http_build_query()`. API-контроллер `CustomerAddressController` содержал хардкод английских строк вместо лексиконов — все сообщения заменены на `$this->modx->lexicon()`, добавлено 7 ключей в ru/en лексиконы
94111
- **Отсутствие ключа `desc` в свойствах сниппетов и источников при сборке пакета (#127):** добавлена инициализация `desc` пустой строкой если ключ отсутствует в определении свойства — устраняет warning/ошибку в `resolver_04_sources` и `resolver_08_snippet_properties`
95-
- **Пустая строка в decimal/int Extra Fields ломала сохранение товара (#170):** пустое значение кастомного поля (например `wholesale_price`) вызывало MySQL ошибку `Incorrect decimal value`, `save()` возвращал `false` и категории/опции/ссылки молча не сохранялись — хардкод каста `price`/`old_price`/`weight` заменён на универсальный цикл по `_fieldMeta` для всех `float`, `integer` и `boolean` полей
96-
- **Чекбокс «Скрыть дочерние ресурсы» не сохранялся в категориях (#161, #160):** `hide_children_in_tree` не обрабатывался в `handleCheckBoxes()` процессоров `Category/Update` и `Category/Create` — unchecked-состояние не передавалось в POST и значение сбрасывалось
97-
- **`publish_document` передавался как bool вместо int в контроллерах (#160):** `canPublish` не приводился к `(int)` в массиве JS-конфига — MODX JS использует строгое сравнение `=== 1`, из-за чего флаг мог не срабатывать. Исправлено во всех 4 контроллерах
98-
- **Кнопки «Дублировать» и «Опубликовать» не отображались в гриде товаров категории (#143, #163):** миграция обновляет конфиг колонки `actions` в `ms3_grid_fields` — добавлены действия `duplicate` и `publish` (логика уже была в Vue-компоненте)
99112

100113
#### ⚠️ Breaking changes
101114

0 commit comments

Comments
 (0)