【问题标题】:Alfresco Aikau - creating list for viewAlfresco Aikau - 创建查看列表
【发布时间】:2016-08-28 16:01:21
【问题描述】:

我一直在研究 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,将 json 数据返回到表单的最后语句是什么?

我只是需要一些关于最佳前进方向的指导。

【问题讨论】:

    标签: alfresco alfresco-share alfresco-webscripts aikau


    【解决方案1】:

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

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

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

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

    Share 中显示使用 Share Forms Runtime 的任务和工作流的现有页面依赖于返回经过硬编​​码的 HTML 以与基于 Share YUI2 的小部件一起使用的 API - 它可能实现您想要的使用较旧的 Surf Component / YUI2 小部件方法。这可能是另一个值得探索的领域。

    主要要做的是确定是否有现有的 REST API 可以满足您的核心要求

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-29
      • 2012-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多