从 multi-select 调用回购操作
Invoking repo actions from multi-select
我已经使用各种指南(包括 Jeff Potts 非常棒的指南)成功创建了一个 UI 动作,并且它的功能完全符合预期 - 但我想将该动作添加到 multi-select 工具也是如此。很难找到很多文档。
我尝试过的一些事情:
试图找出是否有适用的 actionGroup - 但似乎没有。
尝试将 multi-select 标签添加到我的 share-config-custom.xml 来定义项目 - 它出现了,但显然我似乎无法使用操作 ID 来引用那个动作。
我的下一步是尝试创建一个带有 registerAction 函数的 js 文件,我能够做到并拥有它 运行(我可以看到 console.log 转储)但是我真的不知道如何从那里调用我的回购操作)。
我怎样才能完成这个任务?
调用存储库自定义的函数已经存在action.This函数在下面的文件中定义。
share-war\components\documentlibrary\actions.js
您可以参考以下代码来调用存储库操作。
onActionSimpleRepoAction: function dlA_onActionSimpleRepoAction(record, owner)
{
//ACE-2470 : Clone: Clicking multiple times the simple Workflow approval menu item gives unexpected results.
if (owner.title.indexOf("_deactivated") == -1)
{
// Get action params
var params = this.getAction(record, owner).params,
displayName = record.displayName,
namedParams = ["function", "action", "success", "successMessage", "failure", "failureMessage", "async"],
repoActionParams = {};
for (var name in params)
{
if (params.hasOwnProperty(name) && !Alfresco.util.arrayContains(namedParams, name))
{
repoActionParams[name] = params[name];
}
}
//Deactivate action
var ownerTitle = owner.title;
owner.title = owner.title + "_deactivated";
var async = params.async ? "async=" + params.async : null;
// Prepare genericAction config
var config =
{
success:
{
event:
{
name: "metadataRefresh",
obj: record
}
},
failure:
{
message: this.msg(params.failureMessage, displayName),
fn: function showAction()
{
owner.title = ownerTitle;
},
scope: this
},
webscript:
{
method: Alfresco.util.Ajax.POST,
stem: Alfresco.constants.PROXY_URI + "api/",
name: "actionQueue",
queryString: async
},
config:
{
requestContentType: Alfresco.util.Ajax.JSON,
dataObj:
{
actionedUponNode: record.nodeRef,
actionDefinitionName: params.action,
parameterValues: repoActionParams
}
}
};
// Add configured success callbacks and messages if provided
if (YAHOO.lang.isFunction(this[params.success]))
{
config.success.callback =
{
fn: this[params.success],
obj: record,
scope: this
};
}
if (params.successMessage)
{
config.success.message = this.msg(params.successMessage, displayName);
}
// Acd configured failure callback and message if provided
if (YAHOO.lang.isFunction(this[params.failure]))
{
config.failure.callback =
{
fn: this[params.failure],
obj: record,
scope: this
};
}
if (params.failureMessage)
{
config.failure.message = this.msg(params.failureMessage, displayName);
}
// Execute the repo action
this.modules.actions.genericAction(config);
}
},
我已经使用各种指南(包括 Jeff Potts 非常棒的指南)成功创建了一个 UI 动作,并且它的功能完全符合预期 - 但我想将该动作添加到 multi-select 工具也是如此。很难找到很多文档。
我尝试过的一些事情:
试图找出是否有适用的 actionGroup - 但似乎没有。
尝试将 multi-select 标签添加到我的 share-config-custom.xml 来定义项目 - 它出现了,但显然我似乎无法使用操作 ID 来引用那个动作。
我的下一步是尝试创建一个带有 registerAction 函数的 js 文件,我能够做到并拥有它 运行(我可以看到 console.log 转储)但是我真的不知道如何从那里调用我的回购操作)。
我怎样才能完成这个任务?
调用存储库自定义的函数已经存在action.This函数在下面的文件中定义。
share-war\components\documentlibrary\actions.js
您可以参考以下代码来调用存储库操作。
onActionSimpleRepoAction: function dlA_onActionSimpleRepoAction(record, owner)
{
//ACE-2470 : Clone: Clicking multiple times the simple Workflow approval menu item gives unexpected results.
if (owner.title.indexOf("_deactivated") == -1)
{
// Get action params
var params = this.getAction(record, owner).params,
displayName = record.displayName,
namedParams = ["function", "action", "success", "successMessage", "failure", "failureMessage", "async"],
repoActionParams = {};
for (var name in params)
{
if (params.hasOwnProperty(name) && !Alfresco.util.arrayContains(namedParams, name))
{
repoActionParams[name] = params[name];
}
}
//Deactivate action
var ownerTitle = owner.title;
owner.title = owner.title + "_deactivated";
var async = params.async ? "async=" + params.async : null;
// Prepare genericAction config
var config =
{
success:
{
event:
{
name: "metadataRefresh",
obj: record
}
},
failure:
{
message: this.msg(params.failureMessage, displayName),
fn: function showAction()
{
owner.title = ownerTitle;
},
scope: this
},
webscript:
{
method: Alfresco.util.Ajax.POST,
stem: Alfresco.constants.PROXY_URI + "api/",
name: "actionQueue",
queryString: async
},
config:
{
requestContentType: Alfresco.util.Ajax.JSON,
dataObj:
{
actionedUponNode: record.nodeRef,
actionDefinitionName: params.action,
parameterValues: repoActionParams
}
}
};
// Add configured success callbacks and messages if provided
if (YAHOO.lang.isFunction(this[params.success]))
{
config.success.callback =
{
fn: this[params.success],
obj: record,
scope: this
};
}
if (params.successMessage)
{
config.success.message = this.msg(params.successMessage, displayName);
}
// Acd configured failure callback and message if provided
if (YAHOO.lang.isFunction(this[params.failure]))
{
config.failure.callback =
{
fn: this[params.failure],
obj: record,
scope: this
};
}
if (params.failureMessage)
{
config.failure.message = this.msg(params.failureMessage, displayName);
}
// Execute the repo action
this.modules.actions.genericAction(config);
}
},