Browse Source

Merge pull request #8033 from nocodb/nc-fix/shared-form-view-bug

Nc fix(nc-gui): Shared form view doesn't show fields after a field is deleted on the grid
pull/8180/head
Pranav C 6 months ago committed by GitHub
parent
commit
aeab8a367f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 41
      packages/nc-gui/composables/useSharedFormViewStore.ts
  2. 4
      packages/nocodb/src/services/public-metas.service.ts

41
packages/nc-gui/composables/useSharedFormViewStore.ts

@ -132,25 +132,27 @@ const [useProvideSharedFormStore, useSharedFormStore] = useInjectionState((share
{} as Record<string, FormColumnType>,
)
columns.value = viewMeta.model?.columns?.map((c) => {
if (
!isSystemColumn(c) &&
!isVirtualCol(c) &&
!isAttachment(c) &&
c.uidt !== UITypes.SpecificDBType &&
c?.title &&
c?.cdf &&
!/^\w+\(\)|CURRENT_TIMESTAMP$/.test(c.cdf)
) {
formState.value[c.title] = typeof c.cdf === 'string' ? c.cdf.replace(/^'|'$/g, '') : c.cdf
}
columns.value = (viewMeta.model?.columns || [])
.filter((c) => fieldById[c.id])
.map((c) => {
if (
!isSystemColumn(c) &&
!isVirtualCol(c) &&
!isAttachment(c) &&
c.uidt !== UITypes.SpecificDBType &&
c?.title &&
c?.cdf &&
!/^\w+\(\)|CURRENT_TIMESTAMP$/.test(c.cdf)
) {
formState.value[c.title] = typeof c.cdf === 'string' ? c.cdf.replace(/^'|'$/g, '') : c.cdf
}
return {
...c,
meta: { ...parseProp(fieldById[c.id].meta), ...parseProp(c.meta) },
description: fieldById[c.id].description,
}
})
return {
...c,
meta: { ...parseProp(fieldById[c.id].meta), ...parseProp(c.meta) },
description: fieldById[c.id].description,
}
})
const _sharedViewMeta = (viewMeta as any).meta
sharedViewMeta.value = isString(_sharedViewMeta) ? JSON.parse(_sharedViewMeta) : _sharedViewMeta
@ -188,6 +190,9 @@ const [useProvideSharedFormStore, useSharedFormStore] = useInjectionState((share
if (password.value && password.value !== '') {
passwordError.value = error.message
}
} else if (error.error === NcErrorType.UNKNOWN_ERROR) {
console.error('Error occurred while loading shared form view', e)
message.error('Error occurred while loading shared form view')
}
}
}

4
packages/nocodb/src/services/public-metas.service.ts

@ -41,6 +41,10 @@ export class PublicMetasService {
view.model.columns = view.columns
.filter((c) => {
const column = view.model.columnsById[c.fk_column_id];
// Check if column exists to prevent processing non-existent columns
if (!column) return false;
return (
c.show ||
(column.rqd && !column.cdf && !column.ai) ||

Loading…
Cancel
Save