我想爲每個添加到附件中的打包項目的文件添加一個文本字段,以便在每個文件中寫入註釋,可以這樣做嗎?將字段動態添加到共享表單
回答
我已經實現了一些可以重用的用例。
您可以定義一個包含與每個附件關聯的註釋列表的多個值的屬性。
有一個簡單的技巧來發布具有多個值的屬性:將「[]」添加到屬性的名稱。例如:
<input id="template_x002e_edit-metadata_x002e_edit-metadata_x0023_default_prop_someco_notes_0"
name="prop_someco_notes[]"
tabindex="0"
type="text"
value="Meeting minutes"
title="Notes"
noderef="workflow://...."
>
<input id="template_x002e_edit-metadata_x002e_edit-metadata_x0023_default_prop_someco_notes_1"
name="prop_someco_notes[]"
tabindex="1"
type="text"
value="Meeting minutes"
title="Notes"
noderef="workflow://...."
>
如您所見,輸入的名稱以[]結尾。兩個輸入文本字段都具有相同的名稱。
Alfresco表單引擎會將這兩個輸入視爲具有多個值的屬性的值:「someco:notes」。
更大的問題是,你需要用一些聰明的JavaScript和自由標記模板生成這個html。
您可以編寫一個自定義自由標記模板來呈現最初的html:如果用戶打開已經連接了文檔的任務,則需要使用自定義控件生成輸入列表(當然,您可以從textfield.ftl開始)。
生成初始列表並不容易,因爲不幸的是Alfresco將值列表作爲單個逗號分隔值返回。
您可以在自由標記模板「org.alfresco.web.scripts.forms.FormUIGet」中自定義注入模型的web腳本以傳遞數組而不是csv。
更快更骯髒的解決方案是拆分csv值。在share-config-custom.xml中,您可以指定textfield.ftl顯示用作分隔符而不是逗號。
當用戶從包中添加/刪除元素時,可以攔截更新並添加/刪除通訊記錄。請注意,我已將字段「noderef」添加到每個輸入中,因此可以知道包中的音符和節點之間的關係。
UPDATE: 對於關聯(例如用於定義工作流任務的包),分享使用稱爲「對象查找程序」(或「對象選取器」)一個JavaScript庫。這個庫觸發所謂的「formValueChanged」的事件,您可以攔截:
YAHOO.Bubbling.fire("formValueChanged",
{
eventGroup: this,
addedItems: addedItems,
removedItems: removedItems,
selectedItems: selectedItems,
selectedItemsMetaData: Alfresco.util.deepCopy(this.selectedItems)
});
謝謝你的回答,其實我我仍然是露天的初學者,我可以使用任何可能的澄清,你發佈的代碼段是什麼?我應該在哪裏嘗試類似的邏輯? – Basil
我從共享打開的表單複製了代碼段。如果您打開表單,例如使用「編輯屬性」或者在「編輯模式」下打開任務,則可以看到相同類型的HTML。該html由基於Alfresco webscripts的「Alfresco Form Engine」生成。所有OOTB模板都在文件夾中:「share/WEB-INF/classes/alfresco/site-webscripts/org/alfresco/components/form /」。您可以在那裏找到,例如Share for textfield屬性使用的模板「controls/textfield.ftl」。 –
在share-config-custom.xml中,您可以配置表單並指定要爲每個屬性使用哪個模板。如果您未指定模板,則Share將根據屬性類型使用默認值。 –
- 1. 我可以動態地將字段添加到FormType表單嗎?
- 2. 將字段動態添加到WTForms表單
- 3. 將動態字段添加到表單(Chronoform)
- 4. 添加表單輸入字段動態
- 5. 將動態字段添加到Uploadify
- 6. Rails動態表單 - 將可序列化字段添加到表單
- 7. 將多行文本字段添加到共享點
- 8. 將隱藏字段添加到表單
- 9. 將值添加到動態表單
- 10. YII2將whenClient添加到動態表單
- 11. MVC4如何將訂單項動態添加到EditorFor字段?
- 12. 將自動完成綁定到動態添加的表單字段
- 13. 如何動態添加輸入字段到表單
- 14. jQuery驗證與被添加到表單字段動態
- 15. 如何動態添加輸入字段到表單?
- 16. 動態佔位符添加到一個表單字段
- 17. 動態值添加到一個隱藏的表單字段
- 18. 共享字段的多個表單
- 19. 共享字段的多個表單
- 20. 將推薦列表動態添加到輸入字段
- 21. 將字段動態添加到剃鬚刀表格
- 22. 中添加動態文本字段添加到HTML表格
- 23. 當點擊前一個字段時動態添加字段到我的表單
- 24. nodejs表單模塊:如何將字段添加到字段中
- 25. 將動態內容添加到表單字段時,不會發生jQuery .change()
- 26. Ionic 2動態添加表格字段
- 27. 將共享庫路徑添加到Makefile
- 28. 將.css文件添加到共享點
- 29. Websphere:將共享共享庫添加到集羣
- 30. 將TableRows動態添加到片段
你需要使用這些字段更新附加文件的元數據或只是在任務上設置的屬性?容器是工作流程任務還是其他文檔/文件夾? –
我需要這些字段來設置任務的屬性,容器是一個工作流任務 這種情況是,當一個用戶添加文件到工作流包項目時,他也可以添加關於每個文件的註釋 – Basil