我一直在研究Github上的Aikau教程,但我不知道如何创建一个可以传递给视图的列表。要求是为所有用户选择所有工作流任务并显示结果。
我已经添加了以下小部件,显示一个用户的详细信息(硬编码),但我需要循环通过所有用户和显示所有工作流程。
model.jsonModel = {
services: [
"alfresco/services/CrudService"
],
widgets:[
{
name: "alfresco/lists/AlfSortablePaginatedList",
config: {
loadDataPublishTopic: "ALF_CRUD_GET_ALL",
loadDataPublishPayload: {
url: "api/task-instances?authority=abeecher"
},
itemsProperty: "data",
widgets: [
{
name: "alfresco/lists/views/AlfListView",
config: {
additionalCssClasses: "bordered",
widgetsForHeader: [
{
name: "alfresco/lists/views/layouts/HeaderCell",
config: {
label: "Workflow ID",
sortable: true,
sortValue: "id"
}
},
{
name: "alfresco/lists/views/layouts/HeaderCell",
config: {
label: "Description"
}
},
{
name: "alfresco/lists/views/layouts/HeaderCell",
config: {
label: "Status"
}
},
{
name: "alfresco/lists/views/layouts/HeaderCell",
config: {
label: "Due Date",
sortable: true,
sortValue: "properties.bpm_dueDate"
}
},
{
name: "alfresco/lists/views/layouts/HeaderCell",
config: {
label: "Created By"
}
},
{
name: "alfresco/lists/views/layouts/HeaderCell",
config: {
label: "Assigned To",
sortable: true,
sortValue: "owner.firstName"
}
},
{
name: "alfresco/lists/views/layouts/HeaderCell",
config: {
label: "Tag1"
}
},
{
name: "alfresco/lists/views/layouts/HeaderCell",
config: {
label: "Tag2"
}
},
{
name: "alfresco/lists/views/layouts/HeaderCell",
config: {
label: "Tag3"
}
}
],
widgets: [
{
name: "alfresco/lists/views/layouts/Row",
config: {
widgets: [
{
name: "alfresco/lists/views/layouts/Cell",
config: {
additionalCssClasses: "mediumpad",
widgets: [
{
name: "alfresco/renderers/Property",
config: {
propertyToRender: "id",
}
}
]
}
},
{
name: "alfresco/lists/views/layouts/Cell",
config: {
widgets: [
{
name: "alfresco/renderers/Property",
config: {
propertyToRender: "workflowInstance.message",
}
}
]
}
},
{
name: "alfresco/lists/views/layouts/Cell",
config: {
widgets: [
{
name: "alfresco/renderers/Property",
config: {
propertyToRender: "state",
}
}
]
}
},
{
name: "alfresco/lists/views/layouts/Cell",
config: {
widgets: [
{
name: "alfresco/renderers/Property",
config: {
propertyToRender: "properties.bpm_dueDate",
}
}
]
}
},
{
name: "alfresco/lists/views/layouts/Cell",
config: {
widgets: [
{
name: "alfresco/renderers/Property",
config: {
propertyToRender: "workflowInstance.initiator.firstName" ,
}
}
]
}
},
{
name: "alfresco/lists/views/layouts/Cell",
config: {
widgets: [
{
name: "alfresco/renderers/Property",
config: {
propertyToRender: "owner.firstName",
}
}
]
}
},
]
}
}
]
}
}
]
}
}
]
};最终的解决方案将需要能够对列进行排序,并能够单击任务以查看底层工作流。根据这些要求创建初始列表的最佳方式是什么?
如果我要编写一个小部件来构建列表,我如何将该小部件耦合到表单?这是不是一个发布/订阅解决方案,因为用户没有点击任何东西--只是加载页面?
我假设如果我在loadDataPublishPayload选项下使用"url“关键字,我将需要编写一个自定义的webscript?如果我确实写了一个webscript,那么将json数据返回到表单的最后一条语句是什么?
我只需要一些关于最好的前进道路的指导。
发布于 2016-08-30 16:27:03
在撰写本文时,使用最新发布的Aikau版本(1.0.83)还不能使用开箱即用的小部件和服务来实现这一点。
主要的问题是在Aikau和共享基于XML的表单运行时之间没有完整的映射。这个blog post解释了手头的问题。然而,这是我们正在努力的事情。
一旦完成了"alfresco/services/FormsRuntimeService“,这将是一个更容易完成的练习。不需要为列表编写额外的小部件,因为现有的列表小部件可以处理排序/分页的所有要求(如果底层REST API支持排序和分页!)。
我猜你最好的前进方式取决于需要这个解决方案的速度有多快。我们在FormsRuntimeService上取得了进展,但我不能说它什么时候才能完全准备好。
Share中的现有页面显示了使用Share Forms运行时的任务和工作流,它们依赖于返回HTML,这些API是硬编码的,以便与基于Share YUI2的小部件一起使用-使用旧的Surf组件/ YUI2小部件方法可能会实现您想要的结果。这可能是另一个需要探索的领域。
主要要做的是确定现有的REST API是否可以满足您的核心需求
https://stackoverflow.com/questions/39193152
复制相似问题