36 Commits

Author SHA1 Message Date
Andrey Epifancev
d518961365 Merge remote-tracking branch 'origin/feat/275-aurora-1894-error-border-toast' into feat/276-aurora-1892-negative-amounts
# Conflicts:
#	web/src/components/RealtimeTable/Cell/Cell/Cell.jsx
2026-11-01 12:42:29 +04:00
Andrey Epifancev
fa586c85cc feat(table): отрицательные суммы красным и правило «минус запрещён» (AURORA-1892)
Cell.jsx: formatNumber вынесен в utils/numberFormat.js и возвращает
{ text, isNegative }; отрицательные числа выделяются цветом (#C62828 на
светлом фоне, #FFCDD2 на тёмном) и font-weight 600, ноль остаётся «-».

constants/validation.js: фабрика nonNegativeRule и общий список
nonNegativeColumnKeys (план, бронь на 2026/2027, факт по месяцам и СПОД,
сумма платежа, предельная стоимость договора/ЦКК, сателлиты АХР
Аренда/Коммунальные/Безопасность, АХР Лимиты целиком). Корректировки и
переносы (adj_*, base_correction, revision_*, seq_*, target_change,
transfer_*) не включены — там минус — нормальная операция. Запрет
мягкий: подсветка и запись в «Контроль ошибок» через существующий
useValidationRules/isCellInvalid, сохранение не блокируется.

EditCell.jsx: handleSave предупреждает toast.warning при сохранении
отрицательного числа в защищённой колонке, значение всё равно
сохраняется. useValidationRules и RealtimeTable прокидывают
человекочитаемый заголовок колонки для текста предупреждения.

Тесты (node --test): numberFormat.test.js, validationUtils.test.js —
новые, 10/10 зелёных.
2026-11-01 12:20:06 +04:00
Andrey Epifancev
83cb364a9e fix(realtime): красная рамка у ошибки ячейки, тост без Server error:undefined (AURORA-1894)
Cell.jsx: порядок спреда стилей — base → editable/not-editable → locked →
invalid (INVALID_STYLES последним), чтобы красная рамка 2px не перетиралась
EDITABLE_STYLES у вводимых ячеек с ошибкой.

utils/wsErrorUtils.js: getWsErrorMessage(error) — строка возвращается как
есть, объект берёт message || detail, известные технические префиксы
(computed_field:, role_not_allowed:, window_closed:, org_not_assigned)
заменяются понятным текстом, прочее отдаётся без "Server error:".

RealtimeContext.js: toast.error(getWsErrorMessage(data.error)) вместо
`Server error:${data.error.message}` || '', которое всегда давало undefined
для ошибок-строк (|| не срабатывает на непустой строке).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-01 12:10:16 +04:00
aep
cda8f12492 Merge pull request 'AURORA-1838: updateCells без клонирования всего дерева' (#223) from feat/212-aurora-1838-ws-immutable-update into test 2026-11-01 09:38:39 +03:00
Andrey Epifancev
17dddc21d3 perf(realtime): updateCells без structuredClone и мутации входа
Копируются только строки на пути к затронутой, остальные сохраняют идентичность;
без изменений возвращается тот же data. Отсутствующие в row.data ключи теперь
вставляются (нужно для AURORA-1844/1848). Тесты с паритетом к прежней реализации.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-28 18:10:30 +04:00
Andrey Epifancev
bdb00afc5a test(table): хелпер createFixedRowVirtualizerOptions без чтения layout
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 18:10:21 +04:00
PotapovaA
f3539a5f36 новые своды для проектов 2026-10-01 18:20:30 +03:00
PotapovaA
b4ba58a8d8 переезд на новую версию либы 2026-09-24 15:11:09 +03:00
PotapovaA
3e7f44f8d4 правки для таблицы 2026-09-10 16:33:25 +03:00
PotapovaA
df6ea39194 исключила 1-3 кв для проверки 2026-08-13 17:43:14 +03:00
PotapovaA
5e106e7bab add validation 2026-08-12 16:03:50 +03:00
PotapovaA
8fec7f9c86 fix 2026-08-11 16:32:28 +03:00
PotapovaA
72f2c67bdc исправления от линтера 2026-08-06 17:44:49 +03:00
ad7a58594d booking-fix: бронь берется из других полей, поправил список колонок, которые можно добавлять в этапы, даты редактируются в российском формате, отдаются метаданные по редактируемым колонкам 2026-08-06 11:50:27 +03:00
42c766cac9 Merge pull request '[AURORA-1225] - логические ограничения для столбцов (требования №1 и требования №2)' (#65) from AURORA-1225 into test
Reviewed-on: #65
Reviewed-by: PotapovaA <potapovaanna113@mail.ru>
2026-08-03 12:39:14 +03:00
65ecb164f3 [AURORA-1225] - логические ограничения для столбцов (требования №1 и требования №2) 2026-08-03 11:15:34 +03:00
PotapovaA
ce8c57881c fix маппинга + fix добавлении строки 2026-07-31 17:42:29 +03:00
5498bf4935 Merge pull request 'fix-form-4' (#56) from fix-form-4 into test
Reviewed-on: #56
2026-07-29 14:57:44 +03:00
PotapovaA
0acf66b2b5 небольшие правки 2026-07-29 14:22:18 +03:00
b23f2d0d1c Merge pull request '[AURORA-1076] - скрытие колонок при создании и редактировании этапа' (#55) from AURORA-1076 into test
Reviewed-on: #55
Reviewed-by: PotapovaA <potapovaanna113@mail.ru>
2026-07-29 12:38:15 +03:00
c9410edb80 Merge branch 'test' into AURORA-1076 2026-07-28 18:33:45 +03:00
PotapovaA
64302ea127 Merge branch 'test' into form-4-add-row 2026-07-28 18:26:59 +03:00
ca7472213a [AURORA-1076] - скрытие колонок при создании и редактировании этапа 2026-07-28 18:24:28 +03:00
PotapovaA
8c978b4e33 добавлене программ, проектов в 4 форме 2026-07-28 16:03:52 +03:00
0b451b2499 [AURORA-894] - фикс удаления строк 2026-07-28 09:50:35 +03:00
PotapovaA
562707f418 исправила копирование данных 2026-07-22 14:48:34 +03:00
PotapovaA
dc621a1223 фикс sort-order при удалении/добавлении 2026-07-17 17:18:26 +03:00
PotapovaA
c34825d113 форма 4 2026-07-16 15:49:49 +03:00
PotapovaA
8c88acab49 модалка для выбора всп 2026-06-26 17:48:22 +03:00
PotapovaA
bafae2ca58 формула для исполнителей 2026-06-22 13:33:32 +03:00
PotapovaA
10909a1122 new stage 2026-06-18 15:55:15 +03:00
PotapovaA
56833f454b исправила иерархию, блокировка ячеек, виртуализация строк 2026-05-29 18:38:05 +03:00
PotapovaA
fcece07c64 удаление строки 2026-05-29 13:51:47 +03:00
PotapovaA
99e7a445cf добавление строки 2026-05-29 11:23:25 +03:00
PotapovaA
52de655149 ws для ячеек 2026-05-28 12:12:16 +03:00
PotapovaA
24a59fb853 front new 2026-05-18 17:33:45 +03:00