Alfresco Aikau - 创建视图列表

时间:2016-08-28 16:01:22

标签: alfresco alfresco-share alfresco-webscripts aikau

我一直在研究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",
                                  }
                                }
                              ]
                            }
                          },
                        ]
                      }
                    }
                  ]
                }
              }
            ]
         }
      }
   ]
};

最终解决方案需要能够对列进行排序,并能够单击任务以查看基础工作流。根据这些要求创建初始列表的最佳方法是什么?

如果我要编写一个构建列表的小部件,我该如何将小部件与表单相结合?这是一个pub / sub解决方案,因为用户没有点击任何东西 - 只是加载页面?

我认为如果我使用" url"我需要编写自定义的webscript。 loadDataPublishPayload选项下的关键字?如果我写了一个webscript,那么将json数据返回到表单的最终语句是什么?

我只需要就最佳前进方向提供一些指导。

1 个答案:

答案 0 :(得分:1)

在撰写本文时,使用最新发布的Aikau版本(1.0.83),使用开箱即用的小部件和服务无法做到这一点。

主要问题是Aikau与基于Share XML的表单运行时之间没有完整的映射。这个blog post解释了手头的问题。然而,这是我们正在努力的事情。

一旦“alfresco / services / FormsRuntimeService”完成,这将是一个更容易完成的练习。没有必要为列表编写额外的小部件,因为现有的列表小部件处理排序/分页的所有要求(如果底层REST API支持排序和分页!)。

我想你最好的前进方式很大程度上取决于需要多快的解决方案。我们正在使用FormsRuntimeService取得进展,但我不能说它何时会完全准备好。

Share中显示使用共享表单运行时的任务和工作流的现有页面依赖于返回HTML的API,该HTML是硬编码的,以与基于Share YUI2的小部件一起使用 - 它可能实现您想要的目标使用较旧的Surf Component / YUI2小部件方法。这可能是另一个值得探索的领域。

要做的主要事情是确定是否存在满足您核心要求的现有REST API