fix(actions): fix move action to trigger workflow (#6144)

* fix(actions): fix move action to trigger workflow

* fix(action): fix import and type
This commit is contained in:
Junyi 2025-01-27 23:27:26 +08:00 committed by GitHub
parent a02ce1653b
commit 9bef5ebdf3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -8,6 +8,7 @@
*/ */
import { Model, Op } from 'sequelize'; import { Model, Op } from 'sequelize';
import { pick } from 'lodash';
import { BelongsToManyRepository, Collection, HasManyRepository, SortField, TargetKey } from '@nocobase/database'; import { BelongsToManyRepository, Collection, HasManyRepository, SortField, TargetKey } from '@nocobase/database';
import { Context } from '..'; import { Context } from '..';
@ -75,12 +76,15 @@ export class SortAbleCollection {
// insert source position to target position // insert source position to target position
async move(sourceInstanceId: TargetKey, targetInstanceId: TargetKey, options: MoveOptions = {}) { async move(sourceInstanceId: TargetKey, targetInstanceId: TargetKey, options: MoveOptions = {}) {
const sourceInstance = await this.collection.repository.findByTargetKey(sourceInstanceId); let sourceInstance = await this.collection.repository.findByTargetKey(sourceInstanceId);
const targetInstance = await this.collection.repository.findByTargetKey(targetInstanceId); const targetInstance = await this.collection.repository.findByTargetKey(targetInstanceId);
if (this.scopeKey && sourceInstance.get(this.scopeKey) !== targetInstance.get(this.scopeKey)) { if (this.scopeKey && sourceInstance.get(this.scopeKey) !== targetInstance.get(this.scopeKey)) {
await sourceInstance.update({ [sourceInstance] = await this.collection.repository.update({
[this.scopeKey]: targetInstance.get(this.scopeKey), filterByTk: sourceInstanceId,
values: {
[this.scopeKey]: targetInstance.get(this.scopeKey),
},
}); });
} }
@ -88,18 +92,17 @@ export class SortAbleCollection {
} }
async changeScope(sourceInstanceId: TargetKey, targetScope: any, method?: string) { async changeScope(sourceInstanceId: TargetKey, targetScope: any, method?: string) {
const sourceInstance = await this.collection.repository.findByTargetKey(sourceInstanceId); let sourceInstance = await this.collection.repository.findByTargetKey(sourceInstanceId);
const targetScopeValue = targetScope[this.scopeKey]; const targetScopeValue = targetScope[this.scopeKey];
if (targetScopeValue && sourceInstance.get(this.scopeKey) !== targetScopeValue) { if (targetScopeValue && sourceInstance.get(this.scopeKey) !== targetScopeValue) {
await sourceInstance.update( [sourceInstance] = await this.collection.repository.update({
{ filterByTk: sourceInstanceId,
values: {
[this.scopeKey]: targetScopeValue, [this.scopeKey]: targetScopeValue,
}, },
{ silent: false,
silent: false, });
},
);
if (method === 'prepend') { if (method === 'prepend') {
await this.sticky(sourceInstanceId); await this.sticky(sourceInstanceId);
@ -108,15 +111,13 @@ export class SortAbleCollection {
} }
async sticky(sourceInstanceId: TargetKey) { async sticky(sourceInstanceId: TargetKey) {
const sourceInstance = await this.collection.repository.findByTargetKey(sourceInstanceId); await this.collection.repository.update({
await sourceInstance.update( filterByTk: sourceInstanceId,
{ values: {
[this.field.get('name')]: 0, [this.field.get('name')]: 0,
}, },
{ silent: true,
silent: true, });
},
);
} }
async sameScopeMove(sourceInstance: Model, targetInstance: Model, options: MoveOptions) { async sameScopeMove(sourceInstance: Model, targetInstance: Model, options: MoveOptions) {
@ -163,13 +164,14 @@ export class SortAbleCollection {
silent: true, silent: true,
}); });
await sourceInstance.update( await this.collection.repository.update({
{ filterByTk: (this.collection.isMultiFilterTargetKey()
? pick(sourceInstance, this.collection.filterTargetKey)
: sourceInstance.get(<string>this.collection.filterTargetKey)) as TargetKey,
values: {
[fieldName]: targetSort, [fieldName]: targetSort,
}, },
{ silent: true,
silent: true, });
},
);
} }
} }