Казалось бы, простое требованиеПользовательские (отдельные) формы метаданных под открытым небом доля
мне нужна форма, содержащая 4 поля (TextField, власть, дата и x2), что ведет себя точно так же как и форму редактирования метаданных, поля представляющий 4 свойства на узле.
Эта форма, однако, должна быть доступна в виде отдельного пользовательского интерфейса из формы редактирования метаданных, предпочтительно в виде действия UI; кнопку со значком в DocLibActions и всплывающую форму при нажатии.
Возникли проблемы
Моя проблема с использованием механизма действия UI, является то, что я не могу связать поля со свойствами. Поэтому при каждом открытии формы текущие значения, доступные на узле, не загружаются. Кроме того, соответствующие ограничения не применяются автоматически. Я не могу придумать другой способ реализовать это требование.
Действие UI путь
Начиная его как действие пользовательского интерфейса, я попытался получить доступ к узлу в FTL управления настраиваемого поля с помощью переменной form.destination
модели, удерживающий noderef. Однако, когда я хотел получить свойства узла с этим, оказалось, что объект companyhome
, необходимый для этого, в ftl недоступен для элемента управления формой.
Затем я приступил к написанию пользовательского веб-сайта java, который возвращает 4 свойства, которые мне нужны, используя данный nodeRef и вызывается из моего настраиваемого поля с помощью javascript. Это дает следующие два вопроса:
- Я должен передать извлекаемые значения полей формы сам, представляя совершенно вызов для
date.ftl
управления, но гораздо больше даже контрольauthority.ftl
. - Вызов веб-страницы с клиентской стороны javascript добавляет еще один раунд.
Текущее определение формы
<config evaluator="string-compare" condition="my-action">
<forms>
<form>
<field-visibility>
<show id="textProperty" />
<show id="authorityProperty" />
<show id="dateProperty1" />
<show id="dateProperty2" />
</field-visibility>
<appearance>
<set id="generalSet" appearance="bordered-panel" label="General" />
<field id="textProperty" label="textProp" set="generalSet">
<control template="/org/alfresco/components/form/controls/propertyBasedTextfield.ftl">
<control-param name="propertyProvider">/alfresco/service/mark/custom/nodeProperties</control-param>
</control>
</field>
<field id="authorityProp" label="Authority" set="generalSet" >
<control template="/org/alfresco/components/form/controls/authority.ftl" >
<control-param name="compactMode">true</control-param>
</control>
</field>
<field id="dateProperty1" label="Date 1" set="generalSet">
<control template="/org/alfresco/components/form/controls/date.ftl" />
</field>
<field id="dateProperty2" label="Date 2" set="generalSet">
<control template="/org/alfresco/components/form/controls/date.ftl" />
</field>
</appearance>
</form>
</forms>
</config>
Как лучше идти о реализации этого требования? Обратите внимание, что использование действия пользовательского интерфейса не является обязательным; Я могу реализовать это так, как хочу.
Вы хотите добавить 2-ю правую форму в doclib? если да, то посмотрели ли вы, как alfresco выполнила действие по умолчанию? – alfrescian