Назад

tgx:dom-actions#

Правила разрешенных DOM-действий в редакторе.

Синтаксис#

<div tgx:dom-actions="admin -> edit,move,delete"></div>

Пример 1: минимум (копипаст для старта)#

<div tgx:dom-actions="admin -> edit,move,delete"></div>

Пример 2: реальный сценарий#

<div tgx:dom-actions="admin,editor -> edit; admin -> delete"></div>

Разбор#

Используется панелью для inline DOM-редактирования.

Когда использовать#

  • Когда нужно ограничить, какие элементы и какие поля можно править через визуальный DOM-редактор.
  • Когда важно явно зафиксировать безопасный список редактируемых атрибутов вместо режима "можно всё".

Поведение в runtime#

  • Тип: пользовательская директива.
  • В sandbox директива tgx:dom-actions: запрещена.

Параметры#

Обязательные#

  • tgx:dom-actions — правила доступа к действиям редактора DOM.

Типы#

  • Строка DSL-правил: role -> edit,move,delete; ....

Частые ошибки#

  • Не открывайте права delete или @href для неадминских ролей без отдельной проверки.
  • Держите карту полей минимальной, чтобы не расширять поверхность изменений в DOM-редакторе.
  • Проверяйте суффикс :type: неверный тип не применится и редактор покажет обычное текстовое поле.

Проверка перед публикацией#

  • Пример корректно отрабатывает в рабочем шаблоне/тестовой странице проекта.
  • Значения по умолчанию обработаны (|fallback) там, где данные могут отсутствовать.

Пересечение: tgx:repeat + tgx:record-actions + tgx:dom-actions#

В repeat-сценариях используйте tgx:dom-actions на внутреннем узле карточки, а tgx:record-actions оставляйте на контейнере repeat.
<div tgx:repeat="... -> item" tgx:record-actions="admin -> edit,delete,move">
  <article tgx:dom-actions="admin -> edit,duplicate,move">
    ...
  </article>
</div>
  • Ставьте tgx:record-actions на контейнер repeat, а tgx:dom-actions — на внутренний узел карточки.
  • Для wildcard-пути (.../) item-endpoint для record-actions нормализуется в .../<id> (без ).
  • Если в query уже есть select, runtime автоматически добавит id для действий edit/update/delete/move/duplicate.
  • DOM-редактирование в repeat работает по селектору шаблонного узла: изменение применяется к прототипу и отражается на всех повторенных элементах.
  • После DOM-действий в repeat swap направляется на контейнер repeat, поэтому обновляется весь блок списка.

См. также#