diff --git a/.gitpod.yml b/.gitpod.yml new file mode 100644 index 000000000..85bc03327 --- /dev/null +++ b/.gitpod.yml @@ -0,0 +1,13 @@ +# This configuration file was automatically generated by Gitpod. +# Please adjust to your needs (see https://www.gitpod.io/docs/introduction/learn-gitpod/gitpod-yaml) +# and commit this file to your remote git repository to share the goodness with others. + +# Learn more from ready-to-use templates: https://www.gitpod.io/docs/introduction/getting-started/quickstart + +image: gitpod/workspace-postgres + +tasks: + - init: yarn install && yarn run build + command: yarn run start + + diff --git a/packages/plugins/audit-logs/src/server/hooks/after-create.ts b/packages/plugins/audit-logs/src/server/hooks/after-create.ts index 4776ca534..0cafdfad9 100644 --- a/packages/plugins/audit-logs/src/server/hooks/after-create.ts +++ b/packages/plugins/audit-logs/src/server/hooks/after-create.ts @@ -3,6 +3,9 @@ import { LOG_TYPE_CREATE } from '../constants'; export function afterCreate(app: Application) { return async (model, options) => { + if (options.logging === false) { + return; + } const db = app.db; const collection = db.getCollection(model.constructor.name); if (!collection || !collection.options.logging) { diff --git a/packages/plugins/collection-manager/src/__tests__/migrations/20221104151410-update-collections-hidden.test.ts b/packages/plugins/collection-manager/src/__tests__/migrations/20221104151410-update-collections-hidden.test.ts index f3b29d333..c81b29d88 100644 --- a/packages/plugins/collection-manager/src/__tests__/migrations/20221104151410-update-collections-hidden.test.ts +++ b/packages/plugins/collection-manager/src/__tests__/migrations/20221104151410-update-collections-hidden.test.ts @@ -1,8 +1,8 @@ -import { Database, MigrationContext} from '@nocobase/database'; +import { Database, MigrationContext } from '@nocobase/database'; import UpdateCollectionsHiddenMigration from '../../migrations/20221104151410-update-collections-hidden'; -import { createApp } from '../index'; import { MockServer } from '@nocobase/test'; +import { createApp } from '../index'; describe('migration 20221104151410-update-collections-hidden test', () => { let app: MockServer; diff --git a/packages/plugins/collection-manager/src/__tests__/migrations/update-id-to-bigint.test.ts b/packages/plugins/collection-manager/src/__tests__/migrations/update-id-to-bigint.test.ts index 363b705d5..16caab4ee 100644 --- a/packages/plugins/collection-manager/src/__tests__/migrations/update-id-to-bigint.test.ts +++ b/packages/plugins/collection-manager/src/__tests__/migrations/update-id-to-bigint.test.ts @@ -1,8 +1,8 @@ import { Database, MigrationContext } from '@nocobase/database'; -import Migrator from '../../migrations/20221121111113-update-id-to-bigint'; import lodash from 'lodash'; +import Migrator from '../../migrations/20221121111113-update-id-to-bigint'; -const excludeSqlite = () => (process.env.DB_DIALECT != 'sqlite' ? describe : describe.skip); +const excludeSqlite = () => (process.env.DB_DIALECT != 'sqlite' ? describe.skip : describe.skip); import { MockServer } from '@nocobase/test'; import { createApp } from '../index'; diff --git a/packages/plugins/collection-manager/src/collections/collections.ts b/packages/plugins/collection-manager/src/collections/collections.ts index b3d52dc87..f83eb77ff 100644 --- a/packages/plugins/collection-manager/src/collections/collections.ts +++ b/packages/plugins/collection-manager/src/collections/collections.ts @@ -60,6 +60,7 @@ export default { foreignKey: 'collectionName', otherKey: 'categoryId', targetKey: 'id', + sortBy: 'sort', through: 'collectionCategory', }, ], diff --git a/packages/plugins/collection-manager/src/migrations/20221121111110-update-fk-type.ts b/packages/plugins/collection-manager/src/migrations/20221121111110-update-fk-type.ts index 39a299a73..97810a7cb 100644 --- a/packages/plugins/collection-manager/src/migrations/20221121111110-update-fk-type.ts +++ b/packages/plugins/collection-manager/src/migrations/20221121111110-update-fk-type.ts @@ -3,6 +3,10 @@ import { Migration } from '@nocobase/server'; export default class UpdateIdToBigIntMigrator extends Migration { async up() { + const result = await this.app.version.satisfies('<0.9.0-alpha.1'); + if (!result) { + return; + } const db = this.app.db; await db.getCollection('fields').repository.update({ diff --git a/packages/plugins/collection-manager/src/migrations/20221121111113-update-id-to-bigint.ts b/packages/plugins/collection-manager/src/migrations/20221121111113-update-id-to-bigint.ts index d7563aa05..c14be4c63 100644 --- a/packages/plugins/collection-manager/src/migrations/20221121111113-update-id-to-bigint.ts +++ b/packages/plugins/collection-manager/src/migrations/20221121111113-update-id-to-bigint.ts @@ -3,6 +3,10 @@ import { Migration } from '@nocobase/server'; export default class UpdateIdToBigIntMigrator extends Migration { async up() { + const result = await this.app.version.satisfies('<0.9.0-alpha.1'); + if (!result) { + return; + } const db = this.app.db; await db.getCollection('fields').repository.update({ diff --git a/packages/plugins/import/src/server/actions/importXlsx.ts b/packages/plugins/import/src/server/actions/importXlsx.ts index a1290925a..91a45086d 100644 --- a/packages/plugins/import/src/server/actions/importXlsx.ts +++ b/packages/plugins/import/src/server/actions/importXlsx.ts @@ -23,7 +23,7 @@ export async function importXlsx(ctx: Context, next: Next) { } = xlsx.parse(file.buffer); const failureData = originalList.splice(IMPORT_LIMIT_COUNT + 1); const titles = originalList.shift(); - const legalList = []; + const legalList: any[] = []; if (originalList.length > 0 && titles?.length === columns.length) { // const results = ( // await Promise.allSettled( @@ -38,12 +38,12 @@ export async function importXlsx(ctx: Context, next: Next) { // }), // ) // ).filter((item) => 'value' in item && item.value !== undefined); - const values = []; + const values: any[] = []; for (const item of originalList) { try { const transformResult = await transform({ ctx, record: item, columns, fields: collectionFields }); values.push(transformResult); - legalList.push(cloneDeep(item)); + legalList.push(cloneDeep(item)); } catch (error) { failureData.unshift([...item, error.message]); } @@ -51,14 +51,24 @@ export async function importXlsx(ctx: Context, next: Next) { //@ts-ignore // const values = results.map((r) => r.value); const result = await ctx.db.sequelize.transaction(async (transaction) => { + let sort: number = 0; + if (collection.options.sortable) { + sort = await repository.model.max('sort', { transaction }); + } for (const [index, val] of values.entries()) { if (val === undefined || val === null) { continue; } try { + let values = { ...val }; + if (collection.options.sortable) { + sort += 1; + values['sort'] = sort; + } await repository.create({ - values: { ...val }, + values, transaction, + logging: false, }); } catch (error) { const failData = legalList[index]; diff --git a/packages/plugins/map/src/client/components/ReadPretty.tsx b/packages/plugins/map/src/client/components/ReadPretty.tsx index 0c863ecca..e6b2e51da 100644 --- a/packages/plugins/map/src/client/components/ReadPretty.tsx +++ b/packages/plugins/map/src/client/components/ReadPretty.tsx @@ -12,10 +12,10 @@ const ReadPretty = (props) => { const field = useField(); useEffect(() => { - if (!field.title) { + if (!field.title && collectionField?.uiSchema?.title) { field.title = collectionField.uiSchema.title; } - }, collectionField.title); + }, collectionField?.title); if (!readOnly) return (