2011-08-23 72 views
3

我目前正在調查Alfresco的Sharepoint功能。 我安裝了Alfresco 3.4並遵循Web Quick Start Installation如何從Spring MVC應用程序中使用Alfresco'Edit Online'功能

然後我上傳了一個Word文檔到Alfresco,並可以在瀏覽器中導航到它。我的網址是http://localhost:8080/share/page/site/webqs/document-details?nodeRef=workspace://SpacesStore/f7f5881e-320e-4d73-85e4-b62752fef1b8

使用Internet Explorer時,在「文檔操作」部分下有一個「在線編輯」按鈕。可悲的是,這個按鈕不適用於Firefox或谷歌瀏覽器。按鈕的HTML源代碼並沒有幫助我很多,因爲我可以看到一個網址:

<div class="onActionEditOnline"> 
    <a rel="edit,online-edit" href="" class="action-link" title="Edit Online"> 
    <span>Edit Online</span> 
    </a> 
</div> 

,而在露天場地人們研究的東西推薦學習Spring Surf爲露天/共享應用是用它寫。春季衝浪教程使用Roo,這反過來有一個春天衝浪插件,我無法運行,由別人報告here

回到'在線編輯'按鈕;當我點擊它時Word文檔在我的客戶機上打開,我可以編輯它 並單擊保存在Word中,使用Sharepoint協議將文檔正確保存回到Alfresco。

我的問題是我如何從我自己的Spring MVC應用程序訪問這個'Edit Online'功能?我想 在我的一個JSP上顯示「編輯在線」按鈕,但我不知道如何與Alfresco交互。有 任何人做到這一點?任何幫助感謝!

回答

7

Alfresco中的Sharepoint集成使用運行Sharepoint服務器的嵌入式Jetty服務器。如果您查看「編輯在線」的URL,它將顯示與所有Alfresco網頁不同的端口號(默認爲7070)。

我從來沒有對這個主題進行任何深入的調查,但由於Sharepoint是HTTP的WebDAV類擴展,可能使用一些特殊的頭文件或內置的瀏覽器插件/功能,以創建一個「在線編輯」功能您只需提供Alfresco爲在線編輯創建的相同網址,並確保用戶正在運行IE。這會將用戶引導到VTI server,因此幾乎完全不讓SpringMVC出現(只需生成正確的URL)。


編輯:露天如何生成VTI網址

看一看actions.js,這實際上是產生潛在的共享編輯在線鏈接的URL。該_launchOnlineEditor方法是什麼處理點擊你看到那些空鏈接,而且還提供用於創建網址的邏輯:

 // Ensure we have the record's onlineEditUrl populated 
     if (!Alfresco.util.isValueSet(record.onlineEditUrl)) 
     { 
      var onlineEditUrl = this.doclistMetadata.custom.vtiServer.host + ":" + 
       this.doclistMetadata.custom.vtiServer.port + "/" + 
       $combine("alfresco", loc.site.name, loc.container.name, loc.path, loc.file); 

      if (!(/^(http|https):\/\//).test(onlineEditUrl)) 
      { 
       // VTI server now supports HTTPS directly http://issues.alfresco.com/jira/browse/DOC-227 
       onlineEditUrl = window.location.protocol + "//" + onlineEditUrl; 
      } 
      record.onlineEditUrl = onlineEditUrl; 
     } 

如果我們有例如:

loc.site.name == mySite 
loc.container.name == documentLibrary 
loc.path == /images 
loc.file == logo.png 

與它會產生以下網址VTI服務器的默認值:

http://localhost:7070/alfresco/mySite/documentLibrary/images/logo.png 

如果你還繼續閱讀該方法,事實證明,我是完全錯誤的:它不只是簡單的

var controlProgID = "SharePoint.OpenDocuments", 
//... 
activeXControl = new ActiveXObject(controlProgID + ".3"); 
return activeXControl.EditDocument3(window, record.onlineEditUrl, true, appProgID); 

T:在你的瀏覽器,導致正確調用創建MS神奇Office應用程序對特定URL關聯,而是一個ActiveX control他應該完成關於如何從您的自定義應用程序創建Sharepoint鏈接的圖片,指向Alfresco存儲庫中的正確位置。

+0

+1您的文章,我已經更新了原來的問題,但現在還不能確定潛在的網址,我可能只是有你在這裏所提到的核心問題你的答案年底使用Wireshark – eon

+0

,如何我生成正確的網址:) – eon

+0

不幸的是我不能現在再次檢查,但[這裏](http://issues.alfresco.com/jira/browse/ETHREEOH-1201)我找到了一個(hopefuly!)好例子。 – skuro

相關問題