11class ez5.PoolManagerDefaultValues extends ez5.PoolPlugin
22
3+ findFieldSchema : (mask , fieldnameDatamodel ) ->
4+ # loop through all masks and find the one with the name fieldnameDatamodel == __all_fields
5+ fieldSchema = false
6+ maskFields = mask
7+ if mask ? .mask ? .fields
8+ maskFields = mask .mask .fields
9+ for maskEntry in maskFields
10+ # it is field or linkfield --> ready
11+ if maskEntry .kind == ' field' || maskEntry .kind == ' link'
12+ if maskEntry ._full_name == fieldnameDatamodel
13+ fieldSchema = maskEntry
14+ return fieldSchema
15+ # it is a linked-table --> recursive call
16+ if maskEntry .kind == ' linked-table'
17+ # recursive call
18+ fieldSchema = @ findFieldSchema (maskEntry, fieldnameDatamodel)
19+ if fieldSchema
20+ return fieldSchema
21+ if fieldSchema
22+ return fieldSchema
23+ return fieldSchema
24+
325 getTabs : (tabs ) ->
26+ that = @
27+
428 # get fields from baseconfig
529 baseConfig = ez5 .session .getBaseConfig (" plugin" , " default-values-from-pool" )
630 config = baseConfig[' DefaultValuesFromPool' ][' default_value_field_definitor' ] || baseConfig[' DefaultValuesFromPool' ]
@@ -70,53 +94,56 @@ class ez5.PoolManagerDefaultValues extends ez5.PoolPlugin
7094 # #########################################################################################
7195 # Objecttype-Link
7296 # #########################################################################################
73- if field .fieldtype .startsWith ' record' && field ? .fieldname_datamodel != ' '
97+ if (( field .fieldtype .startsWith ( ' record' )) && ( field ? .fieldname_datamodel != ' ' ) and field . fieldname_datamodel == ' defaultvalues_linkedobject.objecttypetest ' )
7498 objecttype = field ? .objecttype
7599 linkedObjecttype = field ? .fieldtype .split (' |||' )[1 ]
76- fieldnameDatamodel = field ? .fieldname_datamodel
100+ fieldnameDatamodel = field .fieldname_datamodel
101+
102+ # get schemaTable
77103 schemaTable = ez5 .schema .CURRENT ._table_by_name ? [objecttype]
78104 if ! schemaTable
79105 console .log " schemaTable not found. field: " , field
80106 return
81-
82- # loop through all tables and find fieldSchema
83- fieldSchema = false
107+
84108 _preferred_mask = schemaTable ._preferred_mask
85109 maskFields = schemaTable ._preferred_mask .fields
86-
87- for maskField in maskFields
88- if maskField ? ._column ? .name == fieldnameDatamodel
89- fieldSchema = maskField
90- break
110+
111+ # loop through all masks and find fieldSchema
112+ fieldSchema = that .findFieldSchema (maskFields, fieldnameDatamodel)
91113 if ! fieldSchema
92114 console .log " fieldSchema not found. field: " , field
93- return
115+ return
94116
95- masks = ez5 .mask .CURRENT ._masks_by_table_id [schemaTable .table_id ]
96- mask = false
117+ availableMasks = ez5 .mask .CURRENT ._masks_by_table_id [schemaTable .table_id ]
97118 # loop through all masks and find the one with the name __all_fields
98- for maskEntry in masks
119+ for maskEntry in availableMasks
99120 if maskEntry .name .endsWith ' __all_fields'
100- mask = maskEntry
121+ allFieldsMask = maskEntry
101122 break
102- if ! mask
103- mask = masks[0 ]
123+ if ! allFieldsMask
124+ allFieldsMask = availableMasks[0 ]
125+
126+ console .warn " fieldSchema: " , fieldSchema
127+ console .warn " allFieldsMask: " , allFieldsMask
104128
105- mask = new Mask (" CURRENT" , mask .mask_id )
129+ maskForLinkedObject = new Mask (" CURRENT" , allFieldsMask .mask_id )
106130
107131 newField =
108132 type : CUI .DataFieldProxy
109- name : ' linkedObject'
110- element : (field ) =>
111- linkedObjectField = new LinkedObject (mask, fieldSchema)
112- linkedObjectField = linkedObjectField .renderEditorInput (@_pool .data .pool .custom_data , {}, {})
133+ name : ' linkedObject_' + field .fieldname + ' _' + objecttype
134+ element : (df ) =>
135+ # console.log "df: ", df
136+ # data = df.getData()
137+ # that.opts.pool.data.pool.custom_data = data
138+ linkedObjectField = new LinkedObject (maskForLinkedObject, fieldSchema)
139+ linkedObjectField = linkedObjectField .renderEditorInput (that .opts .pool .data .pool .custom_data , {}, {})
140+ console .log " linkedObjectField: " , linkedObjectField
113141 return linkedObjectField
114142 form :
115143 label : field .label
116144 hint : ' Objecttype: ' + field .objecttype + ' - Fieldname: ' + field .fieldname
117145 fields .push newField
118146
119- that = @
120147 tabs .push
121148 name : $$ (' defaultvaluesfrompool.pool.manager.default.values.tab.headline' )
122149 text : $$ (' defaultvaluesfrompool.pool.manager.default.values.tab.headline' )
@@ -144,4 +171,4 @@ class ez5.PoolManagerDefaultValues extends ez5.PoolPlugin
144171 return save_data
145172
146173
147- Pool .plugins .registerPlugin (ez5 .PoolManagerDefaultValues )
174+ Pool .plugins .registerPlugin (ez5 .PoolManagerDefaultValues )
0 commit comments