Как переопределить некоторую логику выбора на основе ajax?

Alfresco Community v5.2 (также и другие версии) включает некоторые предварительно настроенные рабочие процессы, доступные на странице /share/page/start-workflow

Меня интересует "Рассмотреть и одобрить (один или несколько рецензентов) - назначить задачу рецензирования нескольким рецензентам".

Собственно, если быть более точным - в логике присваивания.

Например, я хочу сделать некоторые настройки - Настройка экрана задачи пользователя

Я хочу отображать элементы в таблице, а не в списке. Для этого мне нужно понять, как они появляются в списке.

В файле share-config-custom.xml Я могу найти путь к шаблонам.

Например, для bpm:workflowDueDate это будет:

...
<field id="bpm:workflowDueDate" set="info" label-id="workflow.field.due">
  <control template="/org/alfresco/components/form/controls/info.ftl" />
</field>
...

Но для bpm:assignees шаблон не указан:

...
<field id="bpm:assignee" label-id="workflow.field.reviewer" set="assignee" />
...

Я предполагаю, что есть некоторые внутренние компоненты, которые выполняют большую часть логики.

Как я могу переопределить логику выбора на основе AJAX?

Буду очень признателен за информацию. Спасибо всем.

1 ответ

Решение

Если элемент управления формой не предоставлен в конфигурации формы общего доступа, Alfresco Share использует некоторые значения по умолчанию в зависимости от типа поля.

bpm: assignee - это связь с личным узлом, поэтому я ожидаю, что по умолчанию он указывает на association.ftl!

Я предлагаю скопировать этот файл в новый, скажем, src/main/amp/alfresco/site-webscripts/${project.groupId}/form/controls/custom-association.ftl

а затем в вашем share-config-custom.xml скопируйте конфиг формы для задачи с одним небольшим обновлением:

...
<field id="bpm:assignee" label-id="workflow.field.reviewer" set="assignee" >
  <control template="/${project.groupId}/form/controls/custom-association.ftl" />
</field>
...

и тогда вы можете спокойно возиться с custom-association.ftl потому что это почти никогда не хорошая идея переопределить настройки по умолчанию!


ОБНОВЛЕНИЕ: значение этого элемента управления представляет собой список nodeRef, ссылающихся на узлы выбранных пользователей. Это объект сценария Java ObjectFinder, который управляет вещами за сценой, вызывает специальную конечную точку для извлечения всех видов данных, которые должны быть показаны, а затем соответствующим образом манипулирует DOM! Возможно, вы захотите взглянуть на object-finder.js и picker.inc.ftl

Другие вопросы по тегам