2012-09-19 37 views

回答

4

你想觸發彈出窗口?我可以在這裏看到兩件你可能試圖完成的事情,每一件都有很多不同的實現。

如果您想在工作流的某個特定任務的任務編輯頁面中創建一個彈出窗口,您可以使用javascript添加一個控件來產生該窗口(我猜你已經知道工作流設計的基礎知識,如果不是,傑夫波茨的教程很棒 - >http://ecmarchitect.com/images/articles/alfresco-workflow/advanced-workflow-article-2ed.pdf)。爲此,請在tomcat/shared/classes/alfresco/web-extension/site-webscripts/org/alfresco/components/form/controls中創建一個文件,例如:tomcat/shared/classes/alfresco/web-extension/site -webscripts /組織/露天/組件/形式/控制/ myWorkflowPopup.ftl。 使用包括javascript在內的freemarker語法設置文件,以便在喜歡的事件中創建一個彈出窗口 - 我不確定您的帖子是否需要彈出式瀏覽器窗口,小javascript警報或YUI對話框,但你可以做任何這些。同樣,我不知道你是如何觸發這個的 - 從一個按鈕,當某個人在表單字段中選擇「批准」時,無論如何。一旦您設置了控件,就可以將其添加到工作流程任務中。 要添加控件,請編輯tomcat/shared/classes/alfresco/web-extension/share-config-custom.xml;找到以下元素,並添加一個字段元素如圖所示([這樣的值]應通過適當的值從您的設置替換):

<config evaluator="task-type" condition="[workflowNS]:[someTask]"> 
    <forms> 
     <form> 
      <field-visibility> 
       ... 
      </field-visibility> 
      <appearance> 
       ... 
       <field id="[workflowNS]:[someField]"> 
        <control template="/org/alfresco/components/form/controls/[myWorkflowPopup].ftl" /> 
       </field> 
      </appearance> 
     </form> 
    </forms> 
</config> 

如果您需要在您的彈出使用它,值[ workflowNS]:[someField]將作爲field.value在模板中提供給您。這些步驟有點高,但我甚至不知道這是否是您正在尋找的解決方案,所以如果您需要,我可以提供更多詳細信息。

另一種可能性是您正在查找由工作流觸發的彈出式窗口,但似乎與任何工作流用戶界面無關。在這種情況下,我們分成另外兩種可能性-

a)當工作流程完成或達到x狀態時,您希望在用戶桌面上顯示彈出窗口。我會用java通知區域應用程序來做到這一點。我實際上考慮過以前這樣做,並選擇使用電子郵件,而當我意識到需要多少工作時。祝你好運,如果你決定嘗試這個 - 你是一個比我懶惰的人。

b)你希望有一個彈出窗口出現在瀏覽器中(也可能是另一個瀏覽器窗口,yui對話框或jscript/vbscript alert/msgbox)。這可以通過AJAX完成。如果是我,我會在每個用戶主文件夾中保留一個xml文件。我將其設置爲對用戶查看權限過高,但使用工作流定義中的run-as選項以admin用戶身份運行腳本任務以更新這些文件。例如,您可能有財務審批工作流程,需要在提出新請求時通知財務部門的每個人。腳本任務將循環通過財務組,選擇每個用戶,並將一個元素附加到其用戶主目錄中的xml文件。

對於彈出式邏輯,我會在share-config-custom.xml中添加一個javascript依賴項,以便每個頁面都可以包含外部腳本文件。在該腳本文件中,每隔x秒使用setInterval來GET一個uri(x的正確值取決於您自己決定 - 通過功能來平衡性能/帶寬使用情況)。

在被腳本擊中的uri中,設置一個repo webscript將數據從當前用戶的用戶主目錄xml文件中提取出來。在每個元素上使用屬性來保持消息的查看狀態。當webscript運行時,它應該返回任何未查看的消息(可能通過json)並將其設置爲查看。

再次 - 非常高水平的指導,仍然期望你的工作很多,但如果你有問題發回你想要完成的這些(如果有的話),我可能會幫助你更多詳情。

+0

哇,非常感謝你的答案,並把這麼多的細節。對此,我真的非常感激!我試圖在點擊一個按鈕時彈出一個新的HTML窗口,所以我將按照你的指示的前半部分。因爲很難找到許多好的Alfresco資源來處理某些細節,如果你不介意我問一個側面問題,你知道如何自定義數據表項的突出顯示方式嗎?它基於此:http://stackoverflow.com/questions/12410185/how-to-change-highlighted-items-color-in-alfresco-share-form/12422066#12422066。 –

+0

(我用我的問題跑出了上面的空間),但對於另一個問題,我發現編輯skin.css更改了所有的數據表,並且我只是希望能夠突出顯示在Items/packageItems中使用的數據表中的第一項流程。 –

+0

嗨,我的Alfresco安裝現在實際上已經停止遷移,所以我很難檢查這一點。我猜你只需要使用更具體的CSS選擇器。你能告訴我你正在使用的CSS選擇器和它給你的結果嗎?以及一些你想要達到什麼的進一步解釋? –