如何在Alfresco中的工作流形式上添加自定义操作以重命名文档名称



我想在alfresco共享中添加文档名称重命名操作。有什么方法可以做到吗?

如果可能的话,请提供所需的步骤和示例代码nipet。

请回复某个之前这样做。

预先感谢。

您需要做的第一件事是定义屏幕截图的工作流任务表单的表单配置。XML。表单配置应像下面的形式。

    <config evaluator="task-type" condition="**NAME OF YOUR TASK**">
    <forms>
        <form>
            <field-visibility>
                <!-- **FIELDS WHICH YOU WANT TO MAKE VISIBLE** -->
                <show id="wf:requiredApprovePercent" />
                <show id="bpm:workflowDueDate" />
                <show id="bpm:workflowPriority" />
                <show id="packageItems" />
                <show id="bpm:sendEMailNotifications" />
                <show id="bpm:comment" />
            </field-visibility>
            <appearance>
                <!-- **FIELDS WHICH FOR WHICH YOU WANT TO CUSTOMIZE TEMPLATE** -->
                <field id="bpm:workflowPriority" label-id="workflow.field.priority">
                    <control template="/org/alfresco/components/form/controls/workflow/priority.ftl" />
                </field>
                <field id="bpm:sendEMailNotifications">
                    <control template="/org/alfresco/components/form/controls/workflow/email-notification.ftl" />
                </field>
                <field id="bpm:comment" label-id="workflow.field.comment">
                    <control template="/org/alfresco/components/form/controls/textarea.ftl" />
                </field>
            </appearance>
        </form>
    </forms>
</config>

定义了此内容后,您需要自定义packageItems字段的模板并为其创建一个新的字段模板。您可以从现有模板" org alfresco components components form form workflow workflow packageflow packageitems.ftl"中获取引用"

ftl模板上方包含一个又有一个ftl库,称为cousection.ftl。

您还需要在该文件中进行更改。LET稍后再进行。

现在,您需要创建一个应扩展object-finder.js.的javascript文件,以在下面的链接中很好地解释了该文件。

http://alfrescoblog.com/2014/05/28/alfresco-share-custom-custom-object-finder-js/

创建扩展文件后,它应该具有以下内容类似于下面的内容。您仍然需要根据您的要求自定义以下功能。您需要添加编码以添加铅笔图标和处理OnClick事件的编码。

(function() {
var Dom = YAHOO.util.Dom, Event = YAHOO.util.Event;
   var $html = Alfresco.util.encodeHTML,
      $hasEventInterest = Alfresco.util.hasEventInterest,
      $combine = Alfresco.util.combinePaths;
Alfresco.PackageItemsObjectFinder = function Alfresco_PackageItemsObjectFinder(
        htmlId, currentValueHtmlId) {
    Alfresco.PackageItemsObjectFinder.superclass.constructor.call(this,
            htmlId, currentValueHtmlId);
    // Re-register with our own name
    this.name = "Alfresco.PackageItemsObjectFinder";
    Alfresco.util.ComponentManager.reregister(this);
    return this;
};
YAHOO.extend(Alfresco.PackageItemsObjectFinder, Alfresco.ObjectFinder, {
          fnRenderCellListItemName: function ObjectFinder_fnRenderCellListItemName()
          {
             var scope = this;
             return function ObjectFinder_fnRenderCellListItemName(elCell, oRecord, oColumn, oData)
             {
                var item = oRecord.getData(),
                   titles =  item.title ? $html(item.title) : scope.msg("label.none"),
                   modifiedOn = item.modified ? Alfresco.util.formatDate(Alfresco.util.fromISO8601(item.modified)) : null,
                   title = $html(item.name);
                if (scope.options.showLinkToTarget && scope.options.targetLinkTemplate !== null)
                {
                   var link;
                   if (YAHOO.lang.isFunction(scope.options.targetLinkTemplate))
                   {
                      link = scope.options.targetLinkTemplate.call(scope, oRecord.getData());
                   }
                   else
                   {
                      //Discard template, build link from scratch
                      var linkTemplate = (item.site) ? Alfresco.constants.URL_PAGECONTEXT + "site/{site}/document-details?nodeRef={nodeRef}" : Alfresco.constants.URL_PAGECONTEXT + "document-details?nodeRef={nodeRef}";
                      link = YAHOO.lang.substitute(linkTemplate,
                      {
                         nodeRef : item.nodeRef,
                         site : item.site
                      });
                   }
                   title = '<a href="' + link + '">' + $html(item.displayName?item.displayName:item.name) + '</a>';
                }
                var template = '<h3 class="name">' + title + '</h3>';
                template += '<div class="description">' + "Title" + ': ' + titles + '</div>';
                template += '<div class="viewmode-label">' + scope.msg("form.control.object-picker.modified-on") + ': ' + (modifiedOn ? modifiedOn : scope.msg("label.none")) + '</div>';
                elCell.innerHTML = template;
             };
          }
});

}(((;

扩展此信息后,您需要在协会FTL文件中提供此扩展类的参考。

cassiciation文件的更改将如下所示。

var ${picker} = new Alfresco.PackageItemsObjectFinder("${controlId}", "${fieldHtmlId}")

而不是

var ${picker} = new Alfresco.ObjectFinder("${controlId}", "${fieldHtmlId}")

最新更新