Skip to content

Commit 58152ec

Browse files
latest version, but not working yet
1 parent 6e890fd commit 58152ec

File tree

3 files changed

+57
-24
lines changed

3 files changed

+57
-24
lines changed

src/webfrontend/field-definitor-base-config.coffee

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ class DefaultValueFieldDefinitorBaseConfig extends BaseConfigPlugin
3838
name: "default_value_field_definitor"
3939
fields: [
4040
type: CUI.DataTable
41+
rowMove: true
4142
name: "data_table"
4243
fields: [
4344
form:

src/webfrontend/mask-splitter-default-values.coffee

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,8 @@ class ez5.ShowPoolDefaultValuesInMask extends CustomMaskSplitter
105105
# wenn Feld einen Wert hat, dann Standardwert nicht anzeigen
106106
buttonClassHidden = ''
107107
labelClassHidden = 'show'
108+
console.log "field.ColumnSchema.name", field.ColumnSchema.name
109+
console.log "opts.data[field.ColumnSchema.name]", opts.data[field.ColumnSchema.name]
108110

109111
if opts.data[field.ColumnSchema.name]
110112
# if field has value, show x-button and hide defaultvalue from pool
@@ -183,6 +185,7 @@ class ez5.ShowPoolDefaultValuesInMask extends CustomMaskSplitter
183185
bubble: true
184186

185187
# Element, welches den Standardwert aus dem Pool anzeigt
188+
console.log "defaultValueFromPool", defaultValueFromPool
186189
defaultLabelElement = new CUI.Label
187190
text: defaultValueFromPool + ' (' + $$('fylr-plugin-default-values-from-pool-default-value.splitter.hint') + ')'
188191
class: 'fylr-plugin-default-values-from-pool-default-value ' + labelClassHidden
@@ -234,6 +237,8 @@ class ez5.ShowPoolDefaultValuesInMask extends CustomMaskSplitter
234237
else
235238
selectedNode = selectedElement
236239

240+
console.log "opts.data", opts.data
241+
237242
# dante and input
238243
CUI.Events.listen
239244
type: ["data-changed"]

src/webfrontend/pool-manager-default-values.coffee

Lines changed: 51 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,30 @@
11
class 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

Comments
 (0)