Skip to content

Commit ed87cda

Browse files
committed
Fix module meta admin fields breaking module in edge cases
1 parent 628d0da commit ed87cda

4 files changed

Lines changed: 16 additions & 8 deletions

File tree

client/web/compose/src/components/PageBlocks/RecordListBase.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@
106106
<column-picker
107107
v-if="!options.hideConfigureFieldsButton"
108108
:module="recordListModule"
109-
:fields="fields"
109+
:fields="fields.map(({ moduleField }) => moduleField)"
110110
@updateFields="onUpdateFields"
111111
/>
112112
</div>
@@ -1310,7 +1310,7 @@ export default {
13101310
13111311
onUpdateFields (fields = []) {
13121312
this.options.fields = [...fields]
1313-
this.customConfiguredFields = fields.map((f) => f.isSystem ? f.name : f.fieldID)
1313+
this.customConfiguredFields = fields.map((f) => f.isSystem ? f.name : f.fieldID).filter(f => !!f)
13141314
this.setStorageRecordListConfiguredFields()
13151315
13161316
this.$emit('save-fields', this.options.fields)

client/web/compose/src/components/PageBlocks/RecordListConfigurator.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1065,7 +1065,7 @@ export default {
10651065
10661066
onUpdateTextWrapOption (fields = []) {
10671067
if (this.options.textStyles.wrappedFields) {
1068-
this.options.textStyles.wrappedFields = fields.map(f => f.fieldID)
1068+
this.options.textStyles.wrappedFields = fields.map(f => f.fieldID && f.fieldID !== NoID ? f.fieldID : f.name).filter(f => !!f)
10691069
}
10701070
},
10711071
},

client/web/compose/src/views/Admin/Modules/Records/List.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
<script>
4545
4646
import { mapGetters, mapActions } from 'vuex'
47-
import { compose } from '@cortezaproject/corteza-js'
47+
import { compose, NoID } from '@cortezaproject/corteza-js'
4848
import RecordListBase from 'corteza-webapp-compose/src/components/PageBlocks/RecordListBase'
4949
5050
export default {
@@ -190,7 +190,7 @@ export default {
190190
}),
191191
192192
handleFieldsSave (fields = []) {
193-
fields = fields.map((f) => f.fieldID)
193+
fields = fields.map((f) => f.fieldID && f.fieldID !== NoID ? f.fieldID : f.name).filter(f => !!f)
194194
195195
if (!this.module.meta.ui) {
196196
this.module.meta.ui = { admin: { fields } }

lib/js/src/compose/types/module.ts

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,14 @@ export class Module {
178178
},
179179
}
180180

181-
public meta: object = {};
181+
public meta: Meta = {
182+
ui: {
183+
admin: {
184+
fields: [],
185+
},
186+
},
187+
};
188+
182189
public labels: object = {};
183190

184191
public createdAt?: Date = undefined;
@@ -227,11 +234,12 @@ export class Module {
227234
if (IsOf(m, 'meta')) {
228235
if (m.meta.ui && m.meta.ui.admin && m.meta.ui.admin.fields) {
229236
if (!AreStrings(m.meta.ui.admin.fields)) {
230-
m.meta.ui.admin.fields = m.meta.ui.admin.fields.map((f: any) => f.fieldID)
237+
const fields = m.meta.ui.admin.fields || []
238+
m.meta.ui.admin.fields = fields.map((f: any) => f.fieldID && f.fieldID !== NoID ? f.fieldID : f.name).filter((f: any) => !!f)
231239
}
232240
}
233241

234-
this.meta = { ...m.meta }
242+
this.meta = merge({}, this.meta, m.meta)
235243
}
236244

237245
if (IsOf(m, 'config')) {

0 commit comments

Comments
 (0)