Alfresco dojo/jquery для поиска / сортируемый стол

Я создал пользовательскую страницу, в которой перечислены все открытые рабочие процессы. Я следовал учебнику Джеффа Поттса, который дошел до меня, но сейчас я пытаюсь превратить мой стол в более динамичный стол без какого-либо успеха.

Файл js виджета выглядит так

define(["dojo/_base/declare",
    "dijit/_WidgetBase",
    "alfresco/core/Core",
    "alfresco/core/CoreXhr",
    "dojo/dom-construct",
    "dojo/_base/array",
    "dijit/_TemplatedMixin",
    "dojo/text!./templates/AjaxWidget.html",
    ],
    function(declare, _Widget, Core, AlfCoreXhr, domConstruct, array, _Templated, template) {
    return declare([_Widget, Core, AlfCoreXhr, _Templated], {
        templateString: template,
        cssRequirements: [{cssFile:"./css/AjaxWidget.css"}],
        i18nRequirements: [ {i18nFile: "./i18n/AjaxWidget.properties"} ],

        buildRendering: function example_widgets_AjaxWidget__buildRendering() {
            this.widgetTitle       = this.message('widgetTitle');
            this.columnName        = this.message('columnName');
            this.columnDescription = this.message('columnDescription');
            this.inherited(arguments);
        },

        postCreate: function example_widgets_AjaxWidget__postCreate() {
            var url1 = Alfresco.constants.PROXY_URI + "api/people";
            this.serviceXhr({url : url1,
                             method: "GET",
                             successCallback: this._getTasksPerUser,
                             callbackScope: this});
        },


        _getTasksPerUser: function example_widgets_AjaxWidget__getTasksPerUser(response, config) {
                var parentNode = this.containerNode;
                var wfUsers = [];
                array.forEach( response.people, function(person) {
                    wfUsers.push(person.userName);
               });
               for (var wfUser in wfUsers) {
                    var url2 = Alfresco.constants.PROXY_URI + "api/task-instances?authority=" + wfUsers[wfUser];
                    this.serviceXhr({url : url2,
                               method: "GET",
                               successCallback: this._onSuccessCallback,
                               callbackScope: this});
                }

        },



_onSuccessCallback:
            function example_widgets_AjaxWidget__onSuccessCallback(response, config) {
                var parentNode = this.containerNode;
                array.forEach( response.data, function(item) {
                    var row = domConstruct.create( "tr", {}, parentNode );
                    domConstruct.create( "td", { innerHTML: item.workflowInstance.id }, row);
                    domConstruct.create( "td", { innerHTML: item.workflowInstance.message }, row);
                    domConstruct.create( "td", { innerHTML: item.state }, row);
                    domConstruct.create( "td", { innerHTML: item.properties.bpm_dueDate }, row);
                    domConstruct.create( "td", { innerHTML: item.workflowInstance.initiator.firstName + " " + item.workflowInstance.initiator.lastName }, row);
                    domConstruct.create( "td", { innerHTML: item.owner.firstName + " " + item.owner.lastName }, row);
                });
        }
    });
});

и HTML-шаблон

<div class="ajax-widget">
<h1>${widgetTitle}</h1>
 <div class="div1">
  <table>
      <thead>
          <tr>
            <th>Workflow ID</th>
            <th>Description</th>
            <th>Status</th>
            <th>Due Date</th>
            <th>Created By</th>
            <th>Assigned To</th>
          </tr>
      </thead>
      <tbody data-dojo-attach-point="containerNode"></tbody>
  </table>

Я попытался использовать библиотеки jquery List.js и DataTables.js без какого-либо успеха. Причина, по которой я хочу использовать любую из этих библиотек, заключается в том, что они предлагают функциональность, которая мне нужна. Есть ли эквивалент додзё, который легко реализовать. Я весь во внимании.

Мой первый вопрос: я использую самый эффективный способ для достижения этого результата? Кажется, что Alfresco сильно изменился за последние 5 лет, и трудно понять, какие уроки / посты все еще актуальны сегодня.

Я попытался добавить эти библиотеки с помощью пакета dojo, но когда я смотрю на исходный код, я не вижу, доступны ли они, и когда я использую ключевое слово require[] в файле js, это, похоже, не дает эффекта.

Если я собираюсь сделать правильный путь, как бы я сделал свой стол сортируемым и доступным для поиска. Если я лаю не на том дереве, пожалуйста, укажите мне правильное направление.

Спасибо - все предложения приветствуются:-)

1 ответ

Учебник, на который вы ссылаетесь, был написан в отношении версии Aikau, встроенной в Alfresco 4.2. Инфраструктура пользовательского интерфейса Aikau теперь абстрагирована от своего собственного проекта на Github, который работает в своем собственном цикле выпуска, так что вы можете вносить исправления и функции между выпусками Alfresco (как правило, новая версия выпускается каждую неделю).

Существует также полное руководство по настройке и работе с Aikau, и есть специальная глава по сортировке и разбивке на страницы списков.

В этом блоге рассказывается, как можно использовать новые версии Aikau с Share. Если вы столкнетесь с какими-либо ошибками, вы можете поднять проблемы на GitHub, и если у вас есть вопросы по их использованию, пометьте их "Aikau" в Stackru, и я увижу их и постараюсь ответить на них.

Другие вопросы по тегам