Тема и палитра CRM: crm:theme → <html data-theme data-pal>, запоминание до следующего crm:theme

This commit is contained in:
EugeneTes
2026-10-15 10:04:11 +00:00
parent 25fb88f48e
commit 6f73f90fa8
2 changed files with 25 additions and 2 deletions

View File

@@ -26,6 +26,7 @@
- **CRM → вики `crm:context`:** `{ type: "crm:context", version: 1, link_template: "https://<crm>/#/module/<id>?path={path}&ws={ws}" }`. Принимается только с origin из `Crm__Origins`. Формат терпимый: `link_template` (или `linkTemplate`) ищется в самом сообщении `crm:context` или `crm:auth`, а также во вложенных `context` / `crm_context` / `crm`. Шаблон без `{path}` или не http(s) игнорируется.
- **Кнопка «Скопіювати посилання»** (страница и папка): ссылка по `link_template`, `{path}` = `/p/<id>` или `/f/<id>`, `{ws}` = `workspace.id` из CRM (оба через `encodeURIComponent`). Пока шаблона нет — прямая ссылка `https://wiki-crm.tes.gd/p/<id>`. Копирование с запасным путём (textarea + `execCommand`).
- **CRM → вики `crm:theme`:** `{ type: "crm:theme", version: 1, theme: "light"|"dark", palette: "<имя>" }` — в ответ на `crm:ready`/`crm:refresh` и при каждой смене темы или палитры. Только с origin из `Crm__Origins` и от `window.parent`. Вики ставит `<html data-theme data-pal>` (`palette` по умолчанию `classic`), остальное делают стили `tvorymo-ui.css`. Последняя тема запоминается в `localStorage`, чтобы при загрузке не мигала системная.
- **Вики → CRM `crm:navigate`:** `{ type: "crm:navigate", version: 1, path }` при каждом переходе (страница, папка, главная, назад/вперёд) и один раз после первого `crm:auth`. Только в iframe и только на origin CRM.
- **Вне iframe:** для `/p/<id>` и `/f/<id>` кнопка «Відкрити в CRM» по env `CRM_LINK_TEMPLATE` (`{ws}` пустой). `CRM_AUTO_REDIRECT=true` — сразу `location.replace` туда. Без шаблона всё как раньше. Оба значения отдаёт `GET /api/config` (`crmLinkTemplate`, `crmAutoRedirect`).