VARICA
digital proposal bureau
VARICA / Документация v2

Хранение шаблона

Шаблон — редактируемая заготовка КП внутри одной организации. Он хранится в `templates` и содержит как пользовательское содержимое, так и техническое состояние редактора.

Что такое шаблон

Шаблон — редактируемая заготовка КП внутри одной организации. Он хранится в templates и содержит как пользовательское содержимое, так и техническое состояние редактора.

Что сохраняется

Часть Назначение
Название Имя в списке шаблонов и читаемая часть публичного token
Тема (subject) Заголовок создаваемой страницы и PDF; тоже может содержать маски
body_template Итоговая HTML/CSS-верстка, из которой будет создан snapshot
GrapesJS project JSON Внутреннее состояние компонентов для повторного открытия в редакторе
CSS Стили проекта редактора
JSON переменных Служебный список/метаданные переменных шаблона
Статус Черновик или активный шаблон

Источником редактирования является GrapesJS project JSON вместе с CSS. body_template — экспортируемая верстка, по которой затем рендерится КП.

Сохранение и dirty state

Редактор строит снимок из текущих значимых частей: ID шаблона, имени, темы и HTML тела. Этот снимок сравнивается с lastSavedSnapshot.

  • снимки совпадают — изменений нет;
  • снимки различаются — пользователь увидит предупреждение о несохранённых изменениях;
  • после успешного сохранения новый снимок становится lastSavedSnapshot.

Это защищает от потери изменений при выборе другого шаблона, создании нового, импорте или уходе из редактора.

Копия шаблона

Команда «Создать копию» создаёт самостоятельный шаблон с новым ID и названием с суффиксом — копия. После этого копия редактируется независимо: изменение оригинала не переписывает её и наоборот.

Шаблон и публичная страница

При создании КП сервер не сохраняет ссылку на живой шаблон. Он рендерит его и пишет результат в generated_pages.rendered_subject и generated_pages.rendered_body.

Следствие: исправить уже отправленное КП редактированием шаблона нельзя. Нужно создать новую страницу из обновлённого шаблона.

Что нельзя считать частью шаблона

  • счётчик открытий;
  • результат по CRM-сущности;
  • события открытия и PDF;
  • баланс и списание;
  • внешний source_entity_id.

Это данные конкретной созданной страницы, а не шаблона.