tgx:record-actions#
Служебный атрибут для контроля доступных action-кнопок в runtime DOM-редактировании.
Синтаксис#
<div tgx:record-actions="admin,editor -> edit; admin -> delete"></div>
Пример 1: минимум (копипаст для старта)#
<div tgx:record-actions="admin,editor -> edit; admin -> delete"></div>
Пример 2: реальный сценарий#
<section tgx:record-actions="owner -> edit,move,delete; editor -> edit">
...
</section>
Пример 3: комбинированный сценарий#
<section tgx:repeat="/products/*?filter[status]=active -> product"
tgx:record-actions="owner,admin -> edit,move,delete; editor -> edit"
tgx:record-label="Товар">
<h3><< product.title >></h3>
</section>
Разбор#
Используйте картуrole -> actions с явным разделением ролей и действий. Директива задает, какие операции интерфейс редактирования может показать для конкретной роли в зоне записи.
Когда использовать#
- Когда нужно управлять поведением блока прямо в шаблоне, не дублируя логику в нескольких местах.
- Когда важно сделать поведение страницы предсказуемым для пользователя в реальных сценариях.
Поведение в runtime#
- Тип: служебный атрибут.
- В sandbox директива
tgx:record-actions: запрещена.
Параметры#
Обязательные#
tgx:record-actions— строка правилrole -> actions.
Необязательные#
- Несколько ролей в одном правиле через запятую (
owner,admin -> edit,move). - Несколько правил через
.
По умолчанию#
- Явных значений по умолчанию у правила нет: поведение определяется тем, что вы описали в строке.
Типы#
- DSL-строка: роли и действия задаются текстом (
edit,move,deleteи т.д.).
Частые ошибки#
- Оставлять delete для широких ролей без проверки
- Смешивать разные форматы описания правил в одном атрибуте
- Путать
tgx:record-actionsсtgx:dom-actions(они не полностью взаимозаменяемы)
Проверка перед публикацией#
- Проверены роли, которым действительно нужен
delete - Для каждой роли указан минимально необходимый набор действий
- В паре с
tgx:dom-fieldsограничены редактируемые поля
Пересечение: tgx:repeat + tgx:record-actions + tgx:dom-actions#
Для repeat-зон рекомендуется разделять уровни:<section tgx:repeat="... -> item"
tgx:record-actions="admin, owner -> edit,duplicate,move,delete">
<article tgx:dom-actions="admin, owner -> edit,duplicate,move">
...
</article>
</section>
- Ставьте
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, поэтому обновляется весь блок списка.