Можно ли сделать средство выбора документов по умолчанию библиотекой документов в открытом доступе?

У меня есть копия Association.ftl, которую я использую для элемента управления, добавленного в форму расширенного поиска в общем доступе. К сожалению, при открытии по умолчанию отображается homehome, а я бы предпочел, чтобы по умолчанию отображалась библиотека документов соответствующего сайта. Я прочитал эту вики, а также попытался изменить parentNodeRef значение в javascript, чтобы по крайней мере добавить сайты в путь без успеха.

Элемент управления конфигурацией формы общего доступа:

<config evaluator="model-type" condition="cm:content">
    <forms>
        <!-- Search form -->
        <form id="search">
            <field-visibility>
                <show id="cm:name" force="true" />
                <show id="space" force="true" />
            </field-visibility>
            <appearance>
                <field id="cm:name" label-id="prop.search.cm_name" />
                <field id="space" label-id="prop.search.cm_search_in_folder" >
                    <control template="/org/alfresco/components/form/controls/space.ftl">
                        <control-param name="startLocation">{doclib}</control-param>
                    </control>
                </field>
            </appearance>
        </form>
    </forms>
</config>

Файл управления freemarker:

<#include "common/picker.inc.ftl" />

<#assign controlId = fieldHtmlId + "-cntrl">

<script type="text/javascript">//<![CDATA[
(function()
{
   <@renderPickerJS field "picker" />
   picker.setOptions(
   {
   <#if field.control.params.showTargetLink??>
      showLinkToTarget: ${field.control.params.showTargetLink},
      <#if page?? && page.url.templateArgs.site??>
         targetLinkTemplate: "${url.context}/page/site/${page.url.templateArgs.site!""}/document-details?nodeRef={nodeRef}",
      <#else>
         targetLinkTemplate: "${url.context}/page/document-details?nodeRef={nodeRef}",
      </#if>
   </#if>
   <#if field.control.params.allowNavigationToContentChildren??>
      allowNavigationToContentChildren: ${field.control.params.allowNavigationToContentChildren},
   </#if>
      itemType: "cm:folder",
      multipleSelectMode: false,
      parentNodeRef: "alfresco://company/home/sites", //<== Not the default path
   <#if field.control.params.rootNode??>
      rootNode: "${field.control.params.rootNode}",
   </#if>
      itemFamily: "node",
      displayMode: "${field.control.params.displayMode!"items"}"
   });
})();
//]]></script>

<div class="form-field">
   <#if form.mode == "view">
      <div id="${controlId}" class="viewmode-field">
         <span class="viewmode-label">${field.label?html}:</span>
         <span id="${controlId}-currentValueDisplay" class="viewmode-value current-values"></span>
      </div>
   <#else>
      <label for="${controlId}">${field.label?html}:</label>

      <div id="${controlId}" class="object-finder">

         <div id="${controlId}-currentValueDisplay" class="current-values"></div>

            <input type="hidden" id="${fieldHtmlId}" name="-" value="${field.value?html}" />
            <input type="hidden" id="${controlId}-added" name="${field.name}_added" />
            <input type="hidden" id="${controlId}-removed" name="${field.name}_removed" />
            <div id="${controlId}-itemGroupActions" class="show-picker"></div>

            <@renderPickerHTML controlId />
      </div>
   </#if>
</div>

person Dark Star1    schedule 21.11.2013    source источник
comment
StartLocation работает нормально, попробуйте это с этим: /app:company_home/app:dictionary и посмотрите, изменит ли он ваше начальное местоположение. если это не так, значит, что-то не так с вашим сборщиком   -  person Tahir Malik    schedule 21.11.2013
comment
самое близкое, что я мог бы сделать, это сделать это по умолчанию для {sitehome}, но не смог сделать это по умолчанию для библиотеки документов сайта   -  person Dark Star1    schedule 25.12.2013


Ответы (1)


В вики довольно ясно о том, как это сделать:

Укажите параметр startLocation для средства выбора в конфигурации форм, поскольку вы хотите использовать библиотеку документов сайта, с которого пользователь выполняет поиск, я бы порекомендовал вам реализовать NodeLocator, как описано в вики:

https://wiki.alfresco.com/wiki/NodeLocatorService

На самом деле, похоже, что это уже было реализовано для вас и, кажется, находится в исходном коде alfresco:

http://svn.alfresco.com/repos/alfresco-open-mirror/alfresco/COMMUNITYTAGS/V4.2e/root/projects/repository/source/java/org/alfresco/repo/site/DocLibNodeLocator.java

Однако я не могу найти объявление bean-компонента, поэтому вам, возможно, придется добавить его в свои определения spring-bean (или скопировать исходный код в собственную реализацию), чтобы иметь возможность использовать его правильно.

person billerby    schedule 27.03.2014