2016-08-25 4 views
0

열려있는 모든 워크 플로를 나열하는 사용자 지정 페이지를 만들었습니다. 필자는 지금까지 제프 폿츠 (Jeff Potts)의 튜토리얼을 따라 갔지만 지금은 내 테이블을 어떤 역동적 인 테이블로 바꾸려고 노력하고 있습니다.Alfresco dojo/jquery 검색/정렬 테이블

는 위젯의 js 파일은 내가 어떤없이 List.js 및 DataTables.js JQuery와 라이브러리를 사용하여 시도

<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> 

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 템플릿과 같다 성공. 이러한 라이브러리 중 하나를 사용하고자하는 이유는 내가 상자에서 요구하는 기능을 제공하기 때문입니다. 구현하기 쉬운 dojo가 있습니까? 나는 모든 귀이다.

내 첫 번째 질문은 이것입니다. 제가이 결과를 얻기 위해 가장 효과적인 방법을 사용하고 있습니까? Alfresco는 지난 5 년 동안 꽤 많이 바뀐 것 같아요. 현재 어떤 튜토리얼/게시물이 여전히 관련이 있는지 알기가 어렵습니다.

dojo 패키지를 사용하여 이러한 라이브러리를 추가하려고했지만 소스를 볼 때 사용할 수 있는지, js 파일에서 "require []"키워드를 사용할 때 보이지 않습니다. 효과.

내가 올바른 길을 가고 있다면 정렬 및 검색이 가능한 테이블을 어떻게 만들 수 있을까요? 내가 틀린 나무를 짖고 있다면, 올바른 방향으로 나를 가리켜주세요.

감사합니다 - 모든 제안 :-)

+0

"Jeff Potts '튜토리얼에 링크를 추가하면 유용 할 것입니다. 또한, 당신이 직면 한 오류/문제점을 언급하십시오. –

+0

나는 틀렸다. 사실이 튜토리얼이었습니다. http://ohej.github.io/alfresco-tutorials/tutorial/aikau/tutorial.html#adding-a-menu-item-to-the-header. – user1398017

+0

오류가 발생하지 않습니다. 어떤 것도 시도해도 아무 것도 작동하지 않습니다 (페이지에 새로운 것은 없음). 또는 다른 라이브러리를 덮어 쓰는 것과 같은 빈 페이지가 생깁니다. 모든 것은 오류없이 컴파일됩니다. – user1398017

답변

0

당신이 알 프레스코 4.2에 포함 된 Aikau의 버전과 관련하여 작성되었습니다를 참조하고 튜토리얼을 환영합니다. 아이카우 UI 프레임 워크는 이제 자신의 릴리스 주기로 작동하는 own project on Github으로 추상화되어 Alfresco 릴리스간에 수정본과 기능을 제공 할 수 있습니다 (일반적으로 매주 새로운 릴리스가 있음).

또한 Aikau를 사용하여 실행하는 중에 full tutorial이 있으며 목록 정렬 및 페이지 매김에는 a specific chapter이 있습니다.

blog post은 새로운 버전의 아이카 우를 공유와 함께 사용할 수있는 방법을 설명합니다. 어떤 버그를 발견하면 GitHub에서 문제를 제기 할 수 있으며, StackOverflow에서 "Aikau"로 태그를 붙이면 질문을하고 대답 해 보겠습니다.

+0

감사합니다. Dave. 자습서를 통해 작업했지만 꽤 원래의 게시물에있는 예제가 어떻게 변환되어 현재 HTML로 보내지는 데이터를 위젯 /보기로 전달하는지 이해하지 못하고 있습니까? 모든 예제는 json 객체가 아닌 url을 반환하는 것처럼 보입니다. 나는 또한 내 솔루션이 문제가 될 때 페이징과 정렬을 구현하려고 할 때 이러한 기능은 모두 서버 측에서 일어나고 내 웹 스크립트/위젯에 빌드해야하기 때문에 걱정된다. – user1398017

+0

나는이 질문을 이미했다고 생각한다. 여기 질문 : http://stackoverflow.com/questions/39219479/aikau-fundamentals-payload-101 잘하면 내 대답은 도움이됩니다. –