User Interface
The reusable component One.form.DocumentPanel has been provided which can be included in any ExtJS-based screen. This component takes the following parameters:
sysGoverningOrgId: sys id of the organization which should be used when looking up DocumentTypes
modelLevelType: model level to which the documents will be attached, used when looking up DocumenTypes
sysModelId: id of the model to which the documents are being attached
Here is an example where the DocumentType panel is added to the ModelForm JS class of a Book.
define([ 'One/DocumentPanel' ], function() { Ext.ns('ZBKS'); ZBKS.BookDetail = Ext.extend(One.model.ModelFormContainer, { modelInfo: { modelLevelType: 'ZBKS.Book' }, createActionName: 'ZBKS.CreateBook', detailViewName: 'ZBKS.BookDetail', actionConfig: { listeners: { load: function(formPanel) { if (Ext.getCmp("docPanel") == undefined) { var documentTypePanel = new One.DocumentPanel({ ModelLevelTypes: [ 'ZPTS.Book' ], SysModelId: formPanel.sysId, SysGoverningOrgId: UserProfile.context.OrgId, fileHolderName: 'attachments', id: 'docPanel' }); formPanel.add(documentTypePanel); formPanel.doLayout(); documentTypePanel.loadData(formPanel.model.Attachments); } }, beforemodelsubmit: function(formPanel, model) { Ext.apply(model, { Attachments: Ext.getCmp("docPanel").getData() }); } } } });});