Alfresco Aikau - создание списка для просмотра

Я работал над учебными пособиями Aikau на Github, но не могу понять, как создать список, который я могу передать в представление. Требование состоит в том, чтобы выбрать все задачи рабочего процесса для всех пользователей и отобразить результаты.

Я добавил следующие виджеты, которые отображают информацию об одном пользователе (жестко запрограммированном), но мне нужно просмотреть всех пользователей и отобразить все рабочие процессы.

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",
                                  }
                                }
                              ]
                            }
                          },
                        ]
                      }
                    }
                  ]
                }
              }
            ]
         }
      }
   ]
};

Окончательное решение потребует возможности сортировки столбцов и возможности щелкнуть задачу, чтобы увидеть основной рабочий процесс. Как лучше всего составить первоначальный список на основе этих требований?

Если бы мне нужно было написать виджет, который строил список, как мне связать виджет с формой? Является ли это решением для публикации/подписки, поскольку пользователь ничего не нажимает, а просто загружает страницу?

Я предполагаю, что мне нужно будет написать собственный веб-скрипт, если я использую ключевое слово «url» в опции loadDataPublishPayload? Если бы я написал веб-скрипт, каким было бы последнее выражение для возврата данных json в форму?

Мне просто нужно руководство, как лучше двигаться вперед.


person user1398017    schedule 28.08.2016    source источник


Ответы (1)


На момент написания статьи в последней выпущенной версии Aikau (1.0.83) это невозможно сделать с помощью готовых виджетов и сервисов.

Основная проблема заключается в том, что нет полного сопоставления между Aikau и средой выполнения форм на основе Share XML. Этот сообщение в блоге объясняет возникшую проблему. Однако это то, над чем мы работаем.

После того, как "alfresco/services/FormsRuntimeService" будет завершен, выполнить это упражнение будет проще. Не было бы необходимости писать дополнительные виджеты для списков, потому что существующие виджеты списков обрабатывают все требования для сортировки/разбиения на страницы (если базовый REST API поддерживает сортировку и разбиение на страницы!).

Я думаю, ваш лучший путь вперед очень зависит от того, насколько быстро потребуется это решение. Мы делаем успехи с FormsRuntimeService, но я не могу сказать, когда он будет полностью готов.

Существующие страницы в Share, на которых показаны задачи и рабочий процесс, использующие среду выполнения Share Forms, основаны на API-интерфейсах, которые возвращают HTML, жестко запрограммированный для работы с виджетами на основе Share YUI2. Surf Component / виджет YUI2 подход. Это может быть еще одна область для изучения.

Главное, что нужно сделать, это установить, существуют ли существующие REST API, которые будут соответствовать вашим основным требованиям.

person Dave Draper    schedule 30.08.2016