我想在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}")