2014-11-11 4 views
0

회사 전용 공유의 특정 폴더에 각 하위 폴더에 대한 페이지가있는 고유 한 요구 사항이 있습니다. 따라서 기본적으로 수백 개의 하위 폴더와이를 나타내는 수백 개의 페이지가 있습니다. 그림과 같이 접을 수있는 목록의 형태로 그 안에 하위 폴더에 대한 링크와 어쩌면 문서가 있어야 해당 폴더의 페이지 :Alfresco 공유를 사용자 정의하는 적합한 방법 찾기

Folder 1 
-Category 1 
    Doc 1 
    Doc 2 
-Category 2 
    -Sub-category 1 
    doc 3 

나는 페이지의 한면에 위 그림과 같은 것을 갖고 싶어 그리고 다른 쪽은 폴더와 관련된 모든 최근 활동을 가져야합니다. 누가 문서를 추가했는지, 편집 한 내용, 의견이 있었는지 등입니다.이 기사와 관련하여 많은 검색을 했었지만 알프레 스코가이 종류를 지원하는지 잘 모르겠습니다. 맞춤 설정. JSON 위젯을 사용하여 공유에서 사용자 정의 페이지를 만드는 방법에 대한 자습서를 찾았지만이 경우 도움이되지 않는다고 생각합니다. 다른 옵션은 생성 된 모든 새 폴더에 대한 html 페이지를 생성하고 javascript를 사용하여 채 웁니다. 그러나이 방법은 페이지 디자인 측면에서 유연성이별로 없습니다. 누구든지이 요구 사항에 대한 더 나은 접근법이나 아이디어를 알고 있습니까? 나는 이것에 대한 어떤 생각이라도 정말로 고맙게 생각할 것이다.

+2

가장 좋은 방법은 사용자 대시 보드에서 사용할 맞춤 위젯을 만드는 것입니다.그런 다음 대시 보드 사용자 정의를 통해 페이지의 한쪽에서 폴더 구조를 옮길 수 있고, 다른 활동으로 최근에 다른 위젯을 올릴 수 있습니다 (Alfresco Share는 이미 위젯을 제공합니다). http://docs.alfresco.com/4.2/concepts/dev-extensions-share-ui-framework-custom-widgets.html 및 http : //blogs.alfresco에서 도움이 될 수있는 많은 리소스가 있습니다. com/wp/developer/2012/05/22/customizing-share-javascript-widget-instantiation-part-1/예 : – Teqnology

+0

안녕하세요 @ Alch3mi5t, 링크 주셔서 감사합니다. 최근 액티비티 위젯의 경우 폴더 전용으로 지정하고 싶습니다. 공유되는 현재 위젯에는 최근 활동이 모두 있습니다. – juilee

답변

2

답변으로 작성하겠습니다 (이전 댓글과 관련 있음).

  • 이 경우 최근에 수정 된 문서를 당신을 (당신이 필요로하는 JSON을 반환하는 간단한 야외 웹 스크립트를 작성) 나 ':. 나는 의견에 제공된 링크를 사용하여 (이 방법으로 비슷한 일을했습니다 폴더를 목록으로 일을했습니다,이 mywebscript.get.json.ftl입니다 :

    var connector = remote.connect("alfresco"); 
    var data = connector.get("/mywebscript.json"); //the url is declared in your `mywebscript.get.desc.xml` 
    
    // create json object from data 
    var result = eval('(' + data + ')'); 
    model.docprop = result["docprop"]; 
    
  • ,691 : 당신이 retrievedoc.get.js이 웹 스크립트를 호출 곳

    { 
    "docprop" : [ 
        <#list companyhome.childByNamePath["MyFolder"].children as child> 
        { 
        "name" : "${child.properties.name}" , 
    
    "author" : "${child.properties["cm:author"]}", 
    
    "CreatedDate" : "${child.properties.created?datetime}" 
    } 
    <#if child_has_next> , </#if> 
    
    </#list> 
    ] 
    } 
    
  • 공유 위젯 컨트롤러 파일을 생성

  • retrievedoc.get.html.ftl와 공유 위젯 프리젠 테이션 템플릿을 만듭니다

    <div class="dashlet"> 
    <div class="title">${msg("header.retrievedocTitle")}</div> 
    <div class="body retrievedoc"> 
        <table> 
         <tr> 
          <th>Name: </th> 
          <thAuthor: </th> 
          <th>Created: </th> 
         </tr> 
         <#list docprop as t> 
          <tr> 
           <td>${t.name}</td> 
           <td>${t.author}</td> 
           <td>${t.CreatedDate}</td> 
          </tr> 
         </#list> 
        </table> 
    </div> 
    
    그런 다음 공유에 위젯을 등록하고 대시 보드에서 사용할 필요가

. Alfresco 스크립트를 호출하고 위젯에 결과를 채 웁니다. 분명히 Alfresco 스크립트를 변경하여 최근 활동을 반환해야합니다 (예 : 지난 24 시간 내에 수정 된 모든 문서 또는 이와 비슷한 질문을 할 수 있습니다.) 그러나이 방법은 동일합니다.

+0

안녕하세요 @ Alch3mi5t, 감사합니다! 우선, 당신이 제시 한 예제를 시도했지만이 에러가 발생합니다 : TypeError : XML을 파싱 할 수 없습니다 : 스캐너 상태 24가 인식되지 않습니다. 나는 Alfresco 커뮤니티 4.2.f를 사용하고 있습니다. – juilee

+0

folderactivity.get.desc.xml을/site-webscritps/org/alfresco/components/dashlets에 정의했습니다. url을/components/dashlets/folderactivity로 정의했습니다. 그리고 folderactivity.get.js, folderactivity.get.json.ftl 및 folderactivity.get.html.ftl 파일이 같은 폴더 아래에 추가되었습니다. Javascript 파일에서 JSON 파일을 참조하려면 URL : components/dashlets/folderactivity.get.json.ftl을 사용하고 있습니다. 나는 어딘가에서 틀렸다는 것을 확신한다. 좀 도와 줄 수있어? – juilee

+1

잘'https : // issues.alfresco.com/jira/browse/ETHREEOH-1101' 수정본 인 것 같습니다. 나는 또한 여기를 보길 권합니다 : http : // ecmarchitect.com/archives/2012/05/08/1592' – Teqnology

2

귀하의 요구 사항을 충족시키기 위해 alfresco 공유에 새 폴더 트리 구성 요소를 만들 수 있습니다.

Alfresco는 데이터 및 의존성면에서 자급 자족 할만한 구성 요소 인 여러 구성 요소를 공유합니다 (야외 의존도는 거의 없음). 여기

는 approch 나는이 당신에게 좋은 출발점을 제공합니다 희망

Create one folder tree comopnent in alfresco, which will be nothing 
but a webscript which render related webscripts output on page in 
which component is included. 

Create one Dynamic YUI tree with some dummy data and check weather 
you are able to generate or not.(Just to make sure you have all 
depenency included). 

Create one data webscript on repository side which will fetch folder 
structure related data from repository.Make it in such way that if 
you pass folder noderef if will return all childrens under 
that.There is one similar webscript also avilable out of box may be 
you could reuse that. 

Once you have that webscript working properly call that repository 
webscript to populate your dynamic tree and remove all dummy data. 

에 대한 개요입니다.

이러한 단계별 문서를 찾을 수 있습니다.

+0

안녕하세요 @mitpatoliya, 접근 개요에 대한 감사합니다. 나는 상대적으로 새로운 야외 활동 때문에 일부 부품을 이해하는 데 어려움을 겪고 있습니다. 좀 더 자세히 설명해 주시겠습니까? 폴더 트리 구성 요소와 동적 YUI 트리의 의미는 무엇입니까? – juilee

+1

Alfresco는 내부적으로 YUI (Yahoo User Interface) 프레임 워크를 사용하여 대부분의 UI 구성 요소를 구축합니다. 이제는 폴더 트리가 폴더 형태의 목록을 보여주는 폴더 중 하나입니다. 당신은 google에 YUI 나무 구성 요소에 대한 문서와 샘플을 찾을 수 있습니다. – mitpatoliya

관련 문제