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, поэтому обновляется весь блок списка.