Назад

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: запрещена.

Параметры#

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

Необязательные#

  • Несколько ролей в одном правиле через запятую (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, поэтому обновляется весь блок списка.

См. также#