Fix Container and form on import adding header and footer by default

This commit is contained in:
Nakul Nagargade 2025-07-01 12:32:07 +05:30
parent 73f2b09666
commit 8564bc1cfc

View file

@ -72,7 +72,11 @@ type NewRevampedComponent =
| 'VerticalDivider' | 'VerticalDivider'
| 'Link' | 'Link'
| 'DaterangePicker' | 'DaterangePicker'
| 'TextArea'; | 'TextArea'
| 'Container'
| 'Tabs'
| 'Form'
const DefaultDataSourceNames: DefaultDataSourceName[] = [ const DefaultDataSourceNames: DefaultDataSourceName[] = [
'restapidefault', 'restapidefault',
@ -94,6 +98,10 @@ const NewRevampedComponents: NewRevampedComponent[] = [
'Link', 'Link',
'DaterangePicker', 'DaterangePicker',
'TextArea', 'TextArea',
'Container',
'Tabs',
'Form'
]; ];
@Injectable() @Injectable()
@ -104,7 +112,7 @@ export class AppImportExportService {
protected appEnvironmentUtilService: AppEnvironmentUtilService, protected appEnvironmentUtilService: AppEnvironmentUtilService,
protected usersUtilService: UsersUtilService, protected usersUtilService: UsersUtilService,
protected componentsService: ComponentsService protected componentsService: ComponentsService
) {} ) { }
async export(user: User, id: string, searchParams: any = {}): Promise<{ appV2: App }> { async export(user: User, id: string, searchParams: any = {}): Promise<{ appV2: App }> {
// https://github.com/typeorm/typeorm/issues/3857 // https://github.com/typeorm/typeorm/issues/3857
@ -216,10 +224,10 @@ export class AppImportExportService {
...page, ...page,
permissions: groupPermission permissions: groupPermission
? { ? {
permissionGroup: groupPermission.users permissionGroup: groupPermission.users
.map((user) => user.permissionGroup?.name) .map((user) => user.permissionGroup?.name)
.filter((name): name is string => Boolean(name)), .filter((name): name is string => Boolean(name)),
} }
: undefined, : undefined,
}; };
}); });
@ -231,10 +239,10 @@ export class AppImportExportService {
...query, ...query,
permissions: groupPermission permissions: groupPermission
? { ? {
permissionGroup: groupPermission.users permissionGroup: groupPermission.users
.map((user) => user.permissionGroup?.name) .map((user) => user.permissionGroup?.name)
.filter((name): name is string => Boolean(name)), .filter((name): name is string => Boolean(name)),
} }
: undefined, : undefined,
}; };
}); });
@ -242,16 +250,16 @@ export class AppImportExportService {
const components = const components =
pages.length > 0 pages.length > 0
? await manager ? await manager
.createQueryBuilder(Component, 'components') .createQueryBuilder(Component, 'components')
.leftJoinAndSelect('components.layouts', 'layouts') .leftJoinAndSelect('components.layouts', 'layouts')
.leftJoinAndSelect('components.permissions', 'permission') .leftJoinAndSelect('components.permissions', 'permission')
.leftJoinAndSelect('permission.users', 'componentUser') .leftJoinAndSelect('permission.users', 'componentUser')
.leftJoinAndSelect('componentUser.permissionGroup', 'permissionGroup') .leftJoinAndSelect('componentUser.permissionGroup', 'permissionGroup')
.where('components.pageId IN(:...pageId)', { .where('components.pageId IN(:...pageId)', {
pageId: pages.map((v) => v.id), pageId: pages.map((v) => v.id),
}) })
.orderBy('components.created_at', 'ASC') .orderBy('components.created_at', 'ASC')
.getMany() .getMany()
: []; : [];
const componentsWithPermissionGroups = components.map((component) => { const componentsWithPermissionGroups = components.map((component) => {
@ -261,10 +269,10 @@ export class AppImportExportService {
...component, ...component,
permissions: groupPermission permissions: groupPermission
? { ? {
permissionGroup: groupPermission.users permissionGroup: groupPermission.users
.map((user) => user.permissionGroup?.name) .map((user) => user.permissionGroup?.name)
.filter((name): name is string => Boolean(name)), .filter((name): name is string => Boolean(name)),
} }
: undefined, : undefined,
}; };
}); });
@ -1156,10 +1164,10 @@ export class AppImportExportService {
const options = const options =
importingDataSource.kind === 'tooljetdb' importingDataSource.kind === 'tooljetdb'
? this.replaceTooljetDbTableIds( ? this.replaceTooljetDbTableIds(
importingQuery.options, importingQuery.options,
externalResourceMappings['tooljet_database'], externalResourceMappings['tooljet_database'],
organizationId organizationId
) )
: importingQuery.options; : importingQuery.options;
const newQuery = manager.create(DataQuery, { const newQuery = manager.create(DataQuery, {
@ -1872,10 +1880,10 @@ export class AppImportExportService {
options: options:
dataSourceId == defaultDataSourceIds['tooljetdb'] dataSourceId == defaultDataSourceIds['tooljetdb']
? this.replaceTooljetDbTableIds( ? this.replaceTooljetDbTableIds(
query.options, query.options,
externalResourceMappings['tooljet_database'], externalResourceMappings['tooljet_database'],
user?.organizationId user?.organizationId
) )
: query.options, : query.options,
}); });
await manager.save(newQuery); await manager.save(newQuery);
@ -2156,6 +2164,15 @@ function migrateProperties(
delete properties.maxValue; delete properties.maxValue;
} }
} }
if (componentType === 'Container') {
properties.showHeader = properties?.showHeader || false;
}
if (componentType === 'Form') {
properties.showHeader = properties?.showHeader || false;
properties.showFooter = properties?.showFooter || false;
}
} }
return { properties, styles, general, generalStyles, validation }; return { properties, styles, general, generalStyles, validation };
} }