diff --git a/packages/nc-gui-v2/components/smartsheet-toolbar/FieldsMenu.vue b/packages/nc-gui-v2/components/smartsheet-toolbar/FieldsMenu.vue index 0adc4306ce..1fc84102f3 100644 --- a/packages/nc-gui-v2/components/smartsheet-toolbar/FieldsMenu.vue +++ b/packages/nc-gui-v2/components/smartsheet-toolbar/FieldsMenu.vue @@ -1,7 +1,8 @@ - - - + + + - + - + + + + + + + + + + + + @@ -89,8 +146,8 @@ const expandForm = (row: RowType, state?: Record) => { @@ -112,6 +169,7 @@ const expandForm = (row: RowType, state?: Record) => { + ) => { diff --git a/packages/nocodb-sdk/src/lib/Api.ts b/packages/nocodb-sdk/src/lib/Api.ts index e8861c53ce..9eb28e75b7 100644 --- a/packages/nocodb-sdk/src/lib/Api.ts +++ b/packages/nocodb-sdk/src/lib/Api.ts @@ -134,6 +134,8 @@ export interface ViewType { uuid?: string; show_system_fields?: boolean; lock_type?: 'collaborative' | 'locked' | 'personal'; + type?: number; + view?: FormType | GridType | GalleryType; } export interface TableInfoType { diff --git a/packages/nocodb/src/lib/models/View.ts b/packages/nocodb/src/lib/models/View.ts index c51fed4aaf..19504033ad 100644 --- a/packages/nocodb/src/lib/models/View.ts +++ b/packages/nocodb/src/lib/models/View.ts @@ -337,9 +337,20 @@ export default class View implements ViewType { } { let order = 1; + let galleryShowLimit = 0; for (const vCol of columns) { let show = 'show' in vCol ? vCol.show : true; + if (view.type === ViewTypes.GALLERY) { + const galleryView = await GalleryView.get(view_id, ncMeta); + if (vCol.id === galleryView.fk_cover_image_col_id || vCol.pv || galleryShowLimit < 3) { + show = true; + galleryShowLimit++; + } else { + show = false; + } + } + // if columns is list of virtual columns then get the parent column const col = vCol.fk_column_id ? await Column.get({ colId: vCol.fk_column_id }, ncMeta) diff --git a/scripts/sdk/swagger.json b/scripts/sdk/swagger.json index c754737068..0080db7fc9 100644 --- a/scripts/sdk/swagger.json +++ b/scripts/sdk/swagger.json @@ -6183,6 +6183,22 @@ "locked", "personal" ] + }, + "type": { + "type": "number" + }, + "view": { + "oneOf": [ + { + "$ref": "#/components/schemas/Form" + }, + { + "$ref": "#/components/schemas/Grid" + }, + { + "$ref": "#/components/schemas/Gallery" + } + ] } } },