mirror of
https://github.com/n8n-io/n8n.git
synced 2024-12-24 04:04:06 -08:00
ci: Upgrade eslint, prettier, typescript, and some other dev tooling (no-changelog) (#8895)
Co-authored-by: Iván Ovejero <ivov.src@gmail.com>
This commit is contained in:
parent
117b57ccc5
commit
372d5c7d01
|
@ -83,12 +83,11 @@
|
||||||
"axios": "1.6.7",
|
"axios": "1.6.7",
|
||||||
"chokidar": "3.5.2",
|
"chokidar": "3.5.2",
|
||||||
"formidable": "3.5.1",
|
"formidable": "3.5.1",
|
||||||
"ip": "2.0.1",
|
"prettier": "^3.2.5",
|
||||||
"prettier": "^3.1.0",
|
|
||||||
"semver": "^7.5.4",
|
"semver": "^7.5.4",
|
||||||
"tslib": "^2.6.1",
|
"tslib": "^2.6.2",
|
||||||
"tsconfig-paths": "^4.2.0",
|
"tsconfig-paths": "^4.2.0",
|
||||||
"typescript": "^5.3.0"
|
"typescript": "^5.4.2"
|
||||||
},
|
},
|
||||||
"patchedDependencies": {
|
"patchedDependencies": {
|
||||||
"typedi@0.10.0": "patches/typedi@0.10.0.patch",
|
"typedi@0.10.0": "patches/typedi@0.10.0.patch",
|
||||||
|
|
|
@ -250,7 +250,7 @@ export class LmChatOpenAi implements INodeType {
|
||||||
modelKwargs: options.responseFormat
|
modelKwargs: options.responseFormat
|
||||||
? {
|
? {
|
||||||
response_format: { type: options.responseFormat },
|
response_format: { type: options.responseFormat },
|
||||||
}
|
}
|
||||||
: undefined,
|
: undefined,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -3,23 +3,23 @@
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/eslint": "^8.44.7",
|
"@types/eslint": "^8.56.5",
|
||||||
"@typescript-eslint/eslint-plugin": "^6.12.0",
|
"@typescript-eslint/eslint-plugin": "^7.2.0",
|
||||||
"@typescript-eslint/parser": "^6.12.0",
|
"@typescript-eslint/parser": "^7.2.0",
|
||||||
"@vue/eslint-config-prettier": "^8.0.0",
|
"@vue/eslint-config-prettier": "^9.0.0",
|
||||||
"@vue/eslint-config-typescript": "^12.0.0",
|
"@vue/eslint-config-typescript": "^13.0.0",
|
||||||
"eslint": "^8.54.0",
|
"eslint": "^8.57.0",
|
||||||
"eslint-config-airbnb-typescript": "^17.1.0",
|
"eslint-config-airbnb-typescript": "^18.0.0",
|
||||||
"eslint-config-prettier": "^9.0.0",
|
"eslint-config-prettier": "^9.1.0",
|
||||||
"eslint-import-resolver-typescript": "^3.6.1",
|
"eslint-import-resolver-typescript": "^3.6.1",
|
||||||
"eslint-plugin-import": "^2.29.0",
|
"eslint-plugin-import": "^2.29.1",
|
||||||
"eslint-plugin-lodash": "^7.4.0",
|
"eslint-plugin-lodash": "^7.4.0",
|
||||||
"eslint-plugin-n8n-local-rules": "^1.0.0",
|
"eslint-plugin-n8n-local-rules": "^1.0.0",
|
||||||
"eslint-plugin-prettier": "^5.0.1",
|
"eslint-plugin-prettier": "^5.1.3",
|
||||||
"eslint-plugin-unicorn": "^49.0.0",
|
"eslint-plugin-unicorn": "^51.0.1",
|
||||||
"eslint-plugin-unused-imports": "^3.0.0",
|
"eslint-plugin-unused-imports": "^3.1.0",
|
||||||
"eslint-plugin-vue": "^9.18.1",
|
"eslint-plugin-vue": "^9.23.0",
|
||||||
"vue-eslint-parser": "^9.3.2"
|
"vue-eslint-parser": "^9.4.2"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"clean": "rimraf .turbo",
|
"clean": "rimraf .turbo",
|
||||||
|
|
|
@ -488,7 +488,7 @@ export class InternalHooks {
|
||||||
? this.eventBus.sendWorkflowEvent({
|
? this.eventBus.sendWorkflowEvent({
|
||||||
eventName: 'n8n.workflow.success',
|
eventName: 'n8n.workflow.success',
|
||||||
payload: sharedEventPayload,
|
payload: sharedEventPayload,
|
||||||
})
|
})
|
||||||
: this.eventBus.sendWorkflowEvent({
|
: this.eventBus.sendWorkflowEvent({
|
||||||
eventName: 'n8n.workflow.failed',
|
eventName: 'n8n.workflow.failed',
|
||||||
payload: {
|
payload: {
|
||||||
|
@ -498,7 +498,7 @@ export class InternalHooks {
|
||||||
errorNodeId: telemetryProperties.error_node_id?.toString(),
|
errorNodeId: telemetryProperties.error_node_id?.toString(),
|
||||||
errorMessage: telemetryProperties.error_message?.toString(),
|
errorMessage: telemetryProperties.error_message?.toString(),
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
|
||||||
void Promise.all([...promises, this.telemetry.trackWorkflowExecution(telemetryProperties)]);
|
void Promise.all([...promises, this.telemetry.trackWorkflowExecution(telemetryProperties)]);
|
||||||
|
|
|
@ -133,7 +133,7 @@ export class LoadNodesAndCredentials {
|
||||||
: [
|
: [
|
||||||
...(await glob('n8n-nodes-*', globOptions)),
|
...(await glob('n8n-nodes-*', globOptions)),
|
||||||
...(await glob('@*/n8n-nodes-*', { ...globOptions, deep: 2 })),
|
...(await glob('@*/n8n-nodes-*', { ...globOptions, deep: 2 })),
|
||||||
];
|
];
|
||||||
|
|
||||||
for (const packagePath of installedPackagePaths) {
|
for (const packagePath of installedPackagePaths) {
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -108,7 +108,7 @@ export class TestWebhooks implements IWebhookManager {
|
||||||
const executionMode = 'manual';
|
const executionMode = 'manual';
|
||||||
const executionId = await WebhookHelpers.executeWebhook(
|
const executionId = await WebhookHelpers.executeWebhook(
|
||||||
workflow,
|
workflow,
|
||||||
webhook!,
|
webhook,
|
||||||
workflowEntity,
|
workflowEntity,
|
||||||
workflowStartNode,
|
workflowStartNode,
|
||||||
executionMode,
|
executionMode,
|
||||||
|
|
|
@ -828,7 +828,7 @@ export async function executeWebhook(
|
||||||
: new ApplicationError('There was a problem executing the workflow', {
|
: new ApplicationError('There was a problem executing the workflow', {
|
||||||
level: 'warning',
|
level: 'warning',
|
||||||
cause: e,
|
cause: e,
|
||||||
});
|
});
|
||||||
if (didSendResponse) throw error;
|
if (didSendResponse) throw error;
|
||||||
responseCallback(error, {});
|
responseCallback(error, {});
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -19,7 +19,7 @@ type GetPathSegments<Traversable, Filter> = Traversable extends Filter
|
||||||
? []
|
? []
|
||||||
: {
|
: {
|
||||||
[K in ValidKeys<Traversable>]: [K, ...GetPathSegments<Traversable[K], Filter>];
|
[K in ValidKeys<Traversable>]: [K, ...GetPathSegments<Traversable[K], Filter>];
|
||||||
}[ValidKeys<Traversable>];
|
}[ValidKeys<Traversable>];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Transform a union of string arrays (path segments) into a union of strings (dotted paths).
|
* Transform a union of string arrays (path segments) into a union of strings (dotted paths).
|
||||||
|
@ -31,12 +31,12 @@ type GetPathSegments<Traversable, Filter> = Traversable extends Filter
|
||||||
type JoinByDotting<T extends string[]> = T extends [infer F]
|
type JoinByDotting<T extends string[]> = T extends [infer F]
|
||||||
? F
|
? F
|
||||||
: T extends [infer F, ...infer R]
|
: T extends [infer F, ...infer R]
|
||||||
? F extends string
|
? F extends string
|
||||||
? R extends string[]
|
? R extends string[]
|
||||||
? `${F}.${JoinByDotting<R>}`
|
? `${F}.${JoinByDotting<R>}`
|
||||||
: never
|
: never
|
||||||
: never
|
: never
|
||||||
: string;
|
: string;
|
||||||
|
|
||||||
type ToDottedPath<T> = JoinByDotting<RemoveExcess<T>>;
|
type ToDottedPath<T> = JoinByDotting<RemoveExcess<T>>;
|
||||||
|
|
||||||
|
@ -64,14 +64,14 @@ type ConfigOptionPath =
|
||||||
type ToReturnType<T extends ConfigOptionPath> = T extends NumericPath
|
type ToReturnType<T extends ConfigOptionPath> = T extends NumericPath
|
||||||
? number
|
? number
|
||||||
: T extends BooleanPath
|
: T extends BooleanPath
|
||||||
? boolean
|
? boolean
|
||||||
: T extends StringLiteralArrayPath
|
: T extends StringLiteralArrayPath
|
||||||
? StringLiteralMap[T]
|
? StringLiteralMap[T]
|
||||||
: T extends keyof ExceptionPaths
|
: T extends keyof ExceptionPaths
|
||||||
? ExceptionPaths[T]
|
? ExceptionPaths[T]
|
||||||
: T extends StringPath
|
: T extends StringPath
|
||||||
? string
|
? string
|
||||||
: unknown;
|
: unknown;
|
||||||
|
|
||||||
type ExceptionPaths = {
|
type ExceptionPaths = {
|
||||||
'queue.bull.redis': object;
|
'queue.bull.redis': object;
|
||||||
|
@ -86,11 +86,12 @@ type ExceptionPaths = {
|
||||||
// string literals map
|
// string literals map
|
||||||
// -----------------------------------
|
// -----------------------------------
|
||||||
|
|
||||||
type GetPathSegmentsWithUnions<T> = T extends ReadonlyArray<infer C>
|
type GetPathSegmentsWithUnions<T> =
|
||||||
? [C]
|
T extends ReadonlyArray<infer C>
|
||||||
: {
|
? [C]
|
||||||
[K in ValidKeys<T>]: [K, ...GetPathSegmentsWithUnions<T[K]>];
|
: {
|
||||||
}[ValidKeys<T>];
|
[K in ValidKeys<T>]: [K, ...GetPathSegmentsWithUnions<T[K]>];
|
||||||
|
}[ValidKeys<T>];
|
||||||
|
|
||||||
type ToPathUnionPair<T extends string[]> = T extends [...infer Path, infer Union]
|
type ToPathUnionPair<T extends string[]> = T extends [...infer Path, infer Union]
|
||||||
? Path extends string[]
|
? Path extends string[]
|
||||||
|
|
|
@ -358,7 +358,7 @@ export class CredentialsController {
|
||||||
);
|
);
|
||||||
|
|
||||||
if (newShareeIds.length) {
|
if (newShareeIds.length) {
|
||||||
await this.enterpriseCredentialsService.share(trx, credential!, newShareeIds);
|
await this.enterpriseCredentialsService.share(trx, credential, newShareeIds);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -29,15 +29,15 @@ export class CreateLdapEntities1674509946020 implements ReversibleMigration {
|
||||||
dbType === 'sqlite'
|
dbType === 'sqlite'
|
||||||
? 'INTEGER PRIMARY KEY AUTOINCREMENT'
|
? 'INTEGER PRIMARY KEY AUTOINCREMENT'
|
||||||
: dbType === 'postgresdb'
|
: dbType === 'postgresdb'
|
||||||
? 'SERIAL NOT NULL PRIMARY KEY'
|
? 'SERIAL NOT NULL PRIMARY KEY'
|
||||||
: 'INTEGER NOT NULL AUTO_INCREMENT';
|
: 'INTEGER NOT NULL AUTO_INCREMENT';
|
||||||
|
|
||||||
const timestampColumn =
|
const timestampColumn =
|
||||||
dbType === 'sqlite'
|
dbType === 'sqlite'
|
||||||
? 'DATETIME NOT NULL'
|
? 'DATETIME NOT NULL'
|
||||||
: dbType === 'postgresdb'
|
: dbType === 'postgresdb'
|
||||||
? 'TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP'
|
? 'TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP'
|
||||||
: 'DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP';
|
: 'DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP';
|
||||||
|
|
||||||
await runQuery(
|
await runQuery(
|
||||||
`CREATE TABLE IF NOT EXISTS ${escape.tableName('auth_provider_sync_history')} (
|
`CREATE TABLE IF NOT EXISTS ${escape.tableName('auth_provider_sync_history')} (
|
||||||
|
|
|
@ -31,7 +31,7 @@ export class InstalledPackagesRepository extends Repository<InstalledPackages> {
|
||||||
|
|
||||||
installedPackage.installedNodes = [];
|
installedPackage.installedNodes = [];
|
||||||
|
|
||||||
return loadedNodes.map(async (loadedNode) => {
|
for (const loadedNode of loadedNodes) {
|
||||||
const installedNode = this.installedNodesRepository.create({
|
const installedNode = this.installedNodesRepository.create({
|
||||||
name: nodeTypes[loadedNode.name].type.description.displayName,
|
name: nodeTypes[loadedNode.name].type.description.displayName,
|
||||||
type: loadedNode.name,
|
type: loadedNode.name,
|
||||||
|
@ -41,8 +41,8 @@ export class InstalledPackagesRepository extends Repository<InstalledPackages> {
|
||||||
|
|
||||||
installedPackage.installedNodes.push(installedNode);
|
installedPackage.installedNodes.push(installedNode);
|
||||||
|
|
||||||
return await manager.save(installedNode);
|
await manager.save(installedNode);
|
||||||
});
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
return installedPackage!;
|
return installedPackage!;
|
||||||
|
|
|
@ -136,7 +136,7 @@ export class WorkflowRepository extends Repository<WorkflowEntity> {
|
||||||
updatedAt: true,
|
updatedAt: true,
|
||||||
versionId: true,
|
versionId: true,
|
||||||
shared: { userId: true, role: true },
|
shared: { userId: true, role: true },
|
||||||
};
|
};
|
||||||
|
|
||||||
delete select?.ownedBy; // remove non-entity field, handled after query
|
delete select?.ownedBy; // remove non-entity field, handled after query
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@ export function getLabelsForEvent(event: EventMessageTypes): Record<string, stri
|
||||||
credential_type: getLabelValueForCredential(
|
credential_type: getLabelValueForCredential(
|
||||||
event.payload.credentialType ?? 'unknown',
|
event.payload.credentialType ?? 'unknown',
|
||||||
),
|
),
|
||||||
}
|
}
|
||||||
: {};
|
: {};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -127,11 +127,11 @@ export class CredentialsTester {
|
||||||
? {
|
? {
|
||||||
status: 'OK',
|
status: 'OK',
|
||||||
message: OAUTH2_CREDENTIAL_TEST_SUCCEEDED,
|
message: OAUTH2_CREDENTIAL_TEST_SUCCEEDED,
|
||||||
}
|
}
|
||||||
: {
|
: {
|
||||||
status: 'Error',
|
status: 'Error',
|
||||||
message: OAUTH2_CREDENTIAL_TEST_FAILED,
|
message: OAUTH2_CREDENTIAL_TEST_FAILED,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -49,13 +49,12 @@ export function getWorkerCommandReceivedHandler(options: WorkerCommandReceivedHa
|
||||||
arch: os.arch(),
|
arch: os.arch(),
|
||||||
platform: os.platform(),
|
platform: os.platform(),
|
||||||
hostname: os.hostname(),
|
hostname: os.hostname(),
|
||||||
interfaces: Object.values(os.networkInterfaces()).flatMap(
|
interfaces: Object.values(os.networkInterfaces()).flatMap((interfaces) =>
|
||||||
(interfaces) =>
|
(interfaces ?? [])?.map((net) => ({
|
||||||
(interfaces ?? [])?.map((net) => ({
|
family: net.family,
|
||||||
family: net.family,
|
address: net.address,
|
||||||
address: net.address,
|
internal: net.internal,
|
||||||
internal: net.internal,
|
})),
|
||||||
})),
|
|
||||||
),
|
),
|
||||||
version: N8N_VERSION,
|
version: N8N_VERSION,
|
||||||
},
|
},
|
||||||
|
|
|
@ -51,7 +51,7 @@ export class WorkflowService {
|
||||||
? {
|
? {
|
||||||
workflows: workflows.map((w) => this.ownershipService.addOwnedByAndSharedWith(w)),
|
workflows: workflows.map((w) => this.ownershipService.addOwnedByAndSharedWith(w)),
|
||||||
count,
|
count,
|
||||||
}
|
}
|
||||||
: { workflows, count };
|
: { workflows, count };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -393,7 +393,7 @@ export class WorkflowsController {
|
||||||
|
|
||||||
if (newShareeIds.length) {
|
if (newShareeIds.length) {
|
||||||
const users = await this.userRepository.getByIds(trx, newShareeIds);
|
const users = await this.userRepository.getByIds(trx, newShareeIds);
|
||||||
await this.sharedWorkflowRepository.share(trx, workflow!, users);
|
await this.sharedWorkflowRepository.share(trx, workflow, users);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -66,7 +66,7 @@ describe('GET /workflow-history/:workflowId', () => {
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
const last = versions.sort((a, b) => b.createdAt.valueOf() - a.createdAt.valueOf())[0]! as any;
|
const last = versions.sort((a, b) => b.createdAt.valueOf() - a.createdAt.valueOf())[0] as any;
|
||||||
delete last.nodes;
|
delete last.nodes;
|
||||||
delete last.connections;
|
delete last.connections;
|
||||||
|
|
||||||
|
@ -95,7 +95,7 @@ describe('GET /workflow-history/:workflowId', () => {
|
||||||
new Array(10).fill(undefined).map(async (_) => await createWorkflowHistoryItem(workflow2.id)),
|
new Array(10).fill(undefined).map(async (_) => await createWorkflowHistoryItem(workflow2.id)),
|
||||||
);
|
);
|
||||||
|
|
||||||
const last = versions.sort((a, b) => b.createdAt.valueOf() - a.createdAt.valueOf())[0]! as any;
|
const last = versions.sort((a, b) => b.createdAt.valueOf() - a.createdAt.valueOf())[0] as any;
|
||||||
delete last.nodes;
|
delete last.nodes;
|
||||||
delete last.connections;
|
delete last.connections;
|
||||||
|
|
||||||
|
@ -119,7 +119,7 @@ describe('GET /workflow-history/:workflowId', () => {
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
const last = versions.sort((a, b) => b.createdAt.valueOf() - a.createdAt.valueOf())[0]! as any;
|
const last = versions.sort((a, b) => b.createdAt.valueOf() - a.createdAt.valueOf())[0] as any;
|
||||||
delete last.nodes;
|
delete last.nodes;
|
||||||
delete last.connections;
|
delete last.connections;
|
||||||
|
|
||||||
|
@ -143,7 +143,7 @@ describe('GET /workflow-history/:workflowId', () => {
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
const last = versions.sort((a, b) => b.createdAt.valueOf() - a.createdAt.valueOf())[5]! as any;
|
const last = versions.sort((a, b) => b.createdAt.valueOf() - a.createdAt.valueOf())[5] as any;
|
||||||
delete last.nodes;
|
delete last.nodes;
|
||||||
delete last.connections;
|
delete last.connections;
|
||||||
|
|
||||||
|
|
|
@ -810,7 +810,7 @@ export async function proxyRequestToAxios(
|
||||||
statusCode: response.status,
|
statusCode: response.status,
|
||||||
statusMessage: response.statusText,
|
statusMessage: response.statusText,
|
||||||
request: response.request,
|
request: response.request,
|
||||||
}
|
}
|
||||||
: body;
|
: body;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
const { config, response } = error;
|
const { config, response } = error;
|
||||||
|
@ -1042,7 +1042,7 @@ export function assertBinaryData(
|
||||||
propertyName: string,
|
propertyName: string,
|
||||||
inputIndex: number,
|
inputIndex: number,
|
||||||
): IBinaryData {
|
): IBinaryData {
|
||||||
const binaryKeyData = inputData.main[inputIndex]![itemIndex]!.binary;
|
const binaryKeyData = inputData.main[inputIndex]![itemIndex].binary;
|
||||||
if (binaryKeyData === undefined) {
|
if (binaryKeyData === undefined) {
|
||||||
throw new NodeOperationError(
|
throw new NodeOperationError(
|
||||||
node,
|
node,
|
||||||
|
@ -1079,7 +1079,7 @@ export async function getBinaryDataBuffer(
|
||||||
propertyName: string,
|
propertyName: string,
|
||||||
inputIndex: number,
|
inputIndex: number,
|
||||||
): Promise<Buffer> {
|
): Promise<Buffer> {
|
||||||
const binaryData = inputData.main[inputIndex]![itemIndex]!.binary![propertyName]!;
|
const binaryData = inputData.main[inputIndex]![itemIndex].binary![propertyName];
|
||||||
return await Container.get(BinaryDataService).getAsBuffer(binaryData);
|
return await Container.get(BinaryDataService).getAsBuffer(binaryData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1940,7 +1940,7 @@ export function getAdditionalKeys(
|
||||||
getAll(): Record<string, string> {
|
getAll(): Record<string, string> {
|
||||||
return getAllWorkflowExecutionMetadata(runExecutionData);
|
return getAllWorkflowExecutionMetadata(runExecutionData);
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
: undefined,
|
: undefined,
|
||||||
},
|
},
|
||||||
$vars: additionalData.variables,
|
$vars: additionalData.variables,
|
||||||
|
@ -3204,7 +3204,7 @@ const getFileSystemHelperFunctions = (node: INode): FileSystemHelperFunctions =>
|
||||||
? new NodeOperationError(node, error, {
|
? new NodeOperationError(node, error, {
|
||||||
message: `The file "${String(filePath)}" could not be accessed.`,
|
message: `The file "${String(filePath)}" could not be accessed.`,
|
||||||
level: 'warning',
|
level: 'warning',
|
||||||
})
|
})
|
||||||
: error;
|
: error;
|
||||||
}
|
}
|
||||||
if (isFilePathBlocked(filePath as string)) {
|
if (isFilePathBlocked(filePath as string)) {
|
||||||
|
|
|
@ -1575,9 +1575,9 @@ export class WorkflowExecute {
|
||||||
// array as this shows that the parent nodes executed but they did not have any
|
// array as this shows that the parent nodes executed but they did not have any
|
||||||
// data to pass on.
|
// data to pass on.
|
||||||
const inputsWithData = this.runExecutionData
|
const inputsWithData = this.runExecutionData
|
||||||
.executionData!.waitingExecution[nodeName][firstRunIndex].main.map((data, index) =>
|
.executionData!.waitingExecution[
|
||||||
data === null ? null : index,
|
nodeName
|
||||||
)
|
][firstRunIndex].main.map((data, index) => (data === null ? null : index))
|
||||||
.filter((data) => data !== null);
|
.filter((data) => data !== null);
|
||||||
|
|
||||||
if (requiredInputs !== undefined) {
|
if (requiredInputs !== undefined) {
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
:disabled="disabled"
|
:disabled="disabled"
|
||||||
:indeterminate="indeterminate"
|
:indeterminate="indeterminate"
|
||||||
:model-value="modelValue"
|
:model-value="modelValue"
|
||||||
@update:modelValue="onUpdateModelValue"
|
@update:model-value="onUpdateModelValue"
|
||||||
>
|
>
|
||||||
<slot></slot>
|
<slot></slot>
|
||||||
<N8nInputLabel
|
<N8nInputLabel
|
||||||
|
|
|
@ -79,7 +79,7 @@ const onActiveChange = (value: string) => {
|
||||||
:model-value="color"
|
:model-value="color"
|
||||||
:name="name"
|
:name="name"
|
||||||
type="text"
|
type="text"
|
||||||
@update:modelValue="onInput"
|
@update:model-value="onInput"
|
||||||
/>
|
/>
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -36,7 +36,7 @@
|
||||||
layout="prev, pager, next"
|
layout="prev, pager, next"
|
||||||
:total="totalRows"
|
:total="totalRows"
|
||||||
:current-page="currentPage"
|
:current-page="currentPage"
|
||||||
@update:currentPage="onUpdateCurrentPage"
|
@update:current-page="onUpdateCurrentPage"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<div :class="$style.pageSizeSelector">
|
<div :class="$style.pageSizeSelector">
|
||||||
|
@ -44,7 +44,7 @@
|
||||||
size="mini"
|
size="mini"
|
||||||
:model-value="rowsPerPage"
|
:model-value="rowsPerPage"
|
||||||
teleported
|
teleported
|
||||||
@update:modelValue="onRowsPerPageChange"
|
@update:model-value="onRowsPerPageChange"
|
||||||
>
|
>
|
||||||
<template #prepend>{{ t('datatable.pageSize') }}</template>
|
<template #prepend>{{ t('datatable.pageSize') }}</template>
|
||||||
<N8nOption
|
<N8nOption
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
v-if="type === 'checkbox'"
|
v-if="type === 'checkbox'"
|
||||||
v-bind="$props"
|
v-bind="$props"
|
||||||
ref="inputRef"
|
ref="inputRef"
|
||||||
@update:modelValue="onUpdateModelValue"
|
@update:model-value="onUpdateModelValue"
|
||||||
@focus="onFocus"
|
@focus="onFocus"
|
||||||
/>
|
/>
|
||||||
<N8nInputLabel
|
<N8nInputLabel
|
||||||
|
@ -20,7 +20,7 @@
|
||||||
:model-value="modelValue"
|
:model-value="modelValue"
|
||||||
:active-color="activeColor"
|
:active-color="activeColor"
|
||||||
:inactive-color="inactiveColor"
|
:inactive-color="inactiveColor"
|
||||||
@update:modelValue="onUpdateModelValue"
|
@update:model-value="onUpdateModelValue"
|
||||||
></ElSwitch>
|
></ElSwitch>
|
||||||
</N8nInputLabel>
|
</N8nInputLabel>
|
||||||
<N8nInputLabel
|
<N8nInputLabel
|
||||||
|
@ -42,7 +42,7 @@
|
||||||
:disabled="disabled"
|
:disabled="disabled"
|
||||||
:name="name"
|
:name="name"
|
||||||
:teleported="teleported"
|
:teleported="teleported"
|
||||||
@update:modelValue="onUpdateModelValue"
|
@update:model-value="onUpdateModelValue"
|
||||||
@focus="onFocus"
|
@focus="onFocus"
|
||||||
@blur="onBlur"
|
@blur="onBlur"
|
||||||
>
|
>
|
||||||
|
@ -65,7 +65,7 @@
|
||||||
:maxlength="maxlength"
|
:maxlength="maxlength"
|
||||||
:autocomplete="autocomplete"
|
:autocomplete="autocomplete"
|
||||||
:disabled="disabled"
|
:disabled="disabled"
|
||||||
@update:modelValue="onUpdateModelValue"
|
@update:model-value="onUpdateModelValue"
|
||||||
@blur="onBlur"
|
@blur="onBlur"
|
||||||
@focus="onFocus"
|
@focus="onFocus"
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
:show-validation-warnings="showValidationWarnings"
|
:show-validation-warnings="showValidationWarnings"
|
||||||
:teleported="teleported"
|
:teleported="teleported"
|
||||||
:tag-size="tagSize"
|
:tag-size="tagSize"
|
||||||
@update:modelValue="(value) => onUpdateModelValue(input.name, value)"
|
@update:model-value="(value) => onUpdateModelValue(input.name, value)"
|
||||||
@validate="(value) => onValidate(input.name, value)"
|
@validate="(value) => onValidate(input.name, value)"
|
||||||
@enter="onSubmit"
|
@enter="onSubmit"
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -44,7 +44,7 @@
|
||||||
type="textarea"
|
type="textarea"
|
||||||
:rows="5"
|
:rows="5"
|
||||||
@blur="onInputBlur"
|
@blur="onInputBlur"
|
||||||
@update:modelValue="onUpdateModelValue"
|
@update:model-value="onUpdateModelValue"
|
||||||
@wheel="onInputScroll"
|
@wheel="onInputScroll"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -81,6 +81,6 @@ export function createComponentRenderer(
|
||||||
...defaultOptions.global,
|
...defaultOptions.global,
|
||||||
...options.global,
|
...options.global,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
|
|
||||||
<template #footer="{ close }">
|
<template #footer="{ close }">
|
||||||
<div :class="$style.footer">
|
<div :class="$style.footer">
|
||||||
<el-checkbox :model-value="checked" @update:modelValue="handleCheckboxChange">{{
|
<el-checkbox :model-value="checked" @update:model-value="handleCheckboxChange">{{
|
||||||
$locale.baseText('generic.dontShowAgain')
|
$locale.baseText('generic.dontShowAgain')
|
||||||
}}</el-checkbox>
|
}}</el-checkbox>
|
||||||
<n8n-button :label="$locale.baseText('activationModal.gotIt')" @click="close" />
|
<n8n-button :label="$locale.baseText('activationModal.gotIt')" @click="close" />
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
<AskAI
|
<AskAI
|
||||||
:key="activeTab"
|
:key="activeTab"
|
||||||
:has-changes="hasChanges"
|
:has-changes="hasChanges"
|
||||||
@replaceCode="onReplaceCode"
|
@replace-code="onReplaceCode"
|
||||||
@started-loading="isLoadingAIResponse = true"
|
@started-loading="isLoadingAIResponse = true"
|
||||||
@finished-loading="isLoadingAIResponse = false"
|
@finished-loading="isLoadingAIResponse = false"
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -161,7 +161,7 @@ export const codeNodeEditorTheme = ({
|
||||||
{ tag: [tags.processingInstruction, tags.string, tags.inserted], color: '#98c379' },
|
{ tag: [tags.processingInstruction, tags.string, tags.inserted], color: '#98c379' },
|
||||||
{ tag: tags.invalid, color: 'red', 'font-weight': 'bold' },
|
{ tag: tags.invalid, color: 'red', 'font-weight': 'bold' },
|
||||||
]),
|
]),
|
||||||
)
|
)
|
||||||
: syntaxHighlighting(
|
: syntaxHighlighting(
|
||||||
HighlightStyle.define([
|
HighlightStyle.define([
|
||||||
{
|
{
|
||||||
|
@ -204,5 +204,5 @@ export const codeNodeEditorTheme = ({
|
||||||
color: 'var(--color-code-tags-definition)',
|
color: 'var(--color-code-tags-definition)',
|
||||||
},
|
},
|
||||||
]),
|
]),
|
||||||
),
|
),
|
||||||
];
|
];
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
:hide-delete="hideDelete"
|
:hide-delete="hideDelete"
|
||||||
:indent="true"
|
:indent="true"
|
||||||
:is-read-only="isReadOnly"
|
:is-read-only="isReadOnly"
|
||||||
@valueChanged="valueChanged"
|
@value-changed="valueChanged"
|
||||||
/>
|
/>
|
||||||
</Suspense>
|
</Suspense>
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@
|
||||||
:placeholder="getPlaceholderText"
|
:placeholder="getPlaceholderText"
|
||||||
size="small"
|
size="small"
|
||||||
filterable
|
filterable
|
||||||
@update:modelValue="optionSelected"
|
@update:model-value="optionSelected"
|
||||||
>
|
>
|
||||||
<n8n-option
|
<n8n-option
|
||||||
v-for="item in parameterOptions"
|
v-for="item in parameterOptions"
|
||||||
|
|
|
@ -61,7 +61,7 @@
|
||||||
:class="[$style.checkbox, checkboxWarning ? $style.error : '', 'mt-l']"
|
:class="[$style.checkbox, checkboxWarning ? $style.error : '', 'mt-l']"
|
||||||
:disabled="loading"
|
:disabled="loading"
|
||||||
data-test-id="user-agreement-checkbox"
|
data-test-id="user-agreement-checkbox"
|
||||||
@update:modelValue="onCheckboxChecked"
|
@update:model-value="onCheckboxChecked"
|
||||||
>
|
>
|
||||||
<n8n-text>
|
<n8n-text>
|
||||||
{{ $locale.baseText('settings.communityNodes.installModal.checkbox.label') }} </n8n-text
|
{{ $locale.baseText('settings.communityNodes.installModal.checkbox.label') }} </n8n-text
|
||||||
|
|
|
@ -50,7 +50,7 @@ function onVisibleChange(open: boolean) {
|
||||||
data-test-id="context-menu"
|
data-test-id="context-menu"
|
||||||
:hide-arrow="target.source !== 'node-button'"
|
:hide-arrow="target.source !== 'node-button'"
|
||||||
@select="onActionSelect"
|
@select="onActionSelect"
|
||||||
@visibleChange="onVisibleChange"
|
@visible-change="onVisibleChange"
|
||||||
>
|
>
|
||||||
<template #activator>
|
<template #activator>
|
||||||
<div :class="$style.activator"></div>
|
<div :class="$style.activator"></div>
|
||||||
|
|
|
@ -116,7 +116,7 @@ export default defineComponent({
|
||||||
label: this.$locale.baseText('credentials.item.delete'),
|
label: this.$locale.baseText('credentials.item.delete'),
|
||||||
value: CREDENTIAL_LIST_ITEM_ACTIONS.DELETE,
|
value: CREDENTIAL_LIST_ITEM_ACTIONS.DELETE,
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
: [],
|
: [],
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|
|
@ -140,7 +140,7 @@ defineExpose({
|
||||||
:label="prop.value"
|
:label="prop.value"
|
||||||
:class="$style.authRadioButton"
|
:class="$style.authRadioButton"
|
||||||
border
|
border
|
||||||
@update:modelValue="onAuthTypeChange"
|
@update:model-value="onAuthTypeChange"
|
||||||
>{{ prop.name }}</el-radio
|
>{{ prop.name }}</el-radio
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -74,7 +74,7 @@
|
||||||
<AuthTypeSelector
|
<AuthTypeSelector
|
||||||
v-if="showAuthTypeSelector && isNewCredential"
|
v-if="showAuthTypeSelector && isNewCredential"
|
||||||
:credential-type="credentialType"
|
:credential-type="credentialType"
|
||||||
@authTypeChanged="onAuthTypeChange"
|
@auth-type-changed="onAuthTypeChange"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<CopyInput
|
<CopyInput
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
:readonly="!credentialPermissions.update || !credentialType"
|
:readonly="!credentialPermissions.update || !credentialType"
|
||||||
type="Credential"
|
type="Credential"
|
||||||
data-test-id="credential-name"
|
data-test-id="credential-name"
|
||||||
@update:modelValue="onNameEdit"
|
@update:model-value="onNameEdit"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div :class="$style.credActions">
|
<div :class="$style.credActions">
|
||||||
|
@ -81,8 +81,8 @@
|
||||||
@update="onDataChange"
|
@update="onDataChange"
|
||||||
@oauth="oAuthCredentialAuthorize"
|
@oauth="oAuthCredentialAuthorize"
|
||||||
@retest="retestCredential"
|
@retest="retestCredential"
|
||||||
@scrollToTop="scrollToTop"
|
@scroll-to-top="scrollToTop"
|
||||||
@authTypeChanged="onAuthTypeChanged"
|
@auth-type-changed="onAuthTypeChanged"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="activeTab === 'sharing' && credentialType" :class="$style.mainContent">
|
<div v-else-if="activeTab === 'sharing' && credentialType" :class="$style.mainContent">
|
||||||
|
@ -92,7 +92,7 @@
|
||||||
:credential-id="credentialId"
|
:credential-id="credentialId"
|
||||||
:credential-permissions="credentialPermissions"
|
:credential-permissions="credentialPermissions"
|
||||||
:modal-bus="modalBus"
|
:modal-bus="modalBus"
|
||||||
@update:modelValue="onChangeSharedWith"
|
@update:model-value="onChangeSharedWith"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="activeTab === 'details' && credentialType" :class="$style.mainContent">
|
<div v-else-if="activeTab === 'details' && credentialType" :class="$style.mainContent">
|
||||||
|
|
|
@ -64,7 +64,7 @@
|
||||||
:current-user-id="usersStore.currentUser.id"
|
:current-user-id="usersStore.currentUser.id"
|
||||||
:placeholder="$locale.baseText('credentialEdit.credentialSharing.select.placeholder')"
|
:placeholder="$locale.baseText('credentialEdit.credentialSharing.select.placeholder')"
|
||||||
data-test-id="credential-sharing-modal-users-select"
|
data-test-id="credential-sharing-modal-users-select"
|
||||||
@update:modelValue="onAddSharee"
|
@update:model-value="onAddSharee"
|
||||||
>
|
>
|
||||||
<template #prefix>
|
<template #prefix>
|
||||||
<n8n-icon icon="search" />
|
<n8n-icon icon="search" />
|
||||||
|
|
|
@ -41,7 +41,7 @@ const onCredentialSelected = (credentialId: string) => {
|
||||||
<n8n-select
|
<n8n-select
|
||||||
size="small"
|
size="small"
|
||||||
:model-value="props.selectedCredentialId"
|
:model-value="props.selectedCredentialId"
|
||||||
@update:modelValue="onCredentialSelected"
|
@update:model-value="onCredentialSelected"
|
||||||
>
|
>
|
||||||
<n8n-option
|
<n8n-option
|
||||||
v-for="item in props.credentialOptions"
|
v-for="item in props.credentialOptions"
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
:title="displayTitle"
|
:title="displayTitle"
|
||||||
:disabled="isReadOnly"
|
:disabled="isReadOnly"
|
||||||
data-test-id="credential-select"
|
data-test-id="credential-select"
|
||||||
@update:modelValue="(value) => $emit('update:modelValue', value)"
|
@update:model-value="(value) => $emit('update:modelValue', value)"
|
||||||
@keydown.stop
|
@keydown.stop
|
||||||
@focus="$emit('setFocus')"
|
@focus="$emit('setFocus')"
|
||||||
@blur="$emit('onBlur')"
|
@blur="$emit('onBlur')"
|
||||||
|
@ -48,7 +48,7 @@
|
||||||
<NodeCredentials
|
<NodeCredentials
|
||||||
:node="node"
|
:node="node"
|
||||||
:override-cred-type="node.parameters[parameter.name]"
|
:override-cred-type="node.parameters[parameter.name]"
|
||||||
@credentialSelected="(updateInformation) => $emit('credentialSelected', updateInformation)"
|
@credential-selected="(updateInformation) => $emit('credentialSelected', updateInformation)"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
size="xlarge"
|
size="xlarge"
|
||||||
:model-value="selected"
|
:model-value="selected"
|
||||||
data-test-id="new-credential-type-select"
|
data-test-id="new-credential-type-select"
|
||||||
@update:modelValue="onSelect"
|
@update:model-value="onSelect"
|
||||||
>
|
>
|
||||||
<template #prefix>
|
<template #prefix>
|
||||||
<font-awesome-icon icon="search" />
|
<font-awesome-icon icon="search" />
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
<el-radio
|
<el-radio
|
||||||
:model-value="operation"
|
:model-value="operation"
|
||||||
label="transfer"
|
label="transfer"
|
||||||
@update:modelValue="() => setOperation('transfer')"
|
@update:model-value="() => setOperation('transfer')"
|
||||||
>
|
>
|
||||||
<n8n-text color="text-dark">{{
|
<n8n-text color="text-dark">{{
|
||||||
$locale.baseText('settings.users.transferWorkflowsAndCredentials')
|
$locale.baseText('settings.users.transferWorkflowsAndCredentials')
|
||||||
|
@ -36,14 +36,14 @@
|
||||||
:model-value="transferId"
|
:model-value="transferId"
|
||||||
:ignore-ids="ignoreIds"
|
:ignore-ids="ignoreIds"
|
||||||
:current-user-id="usersStore.currentUserId"
|
:current-user-id="usersStore.currentUserId"
|
||||||
@update:modelValue="setTransferId"
|
@update:model-value="setTransferId"
|
||||||
/>
|
/>
|
||||||
</n8n-input-label>
|
</n8n-input-label>
|
||||||
</div>
|
</div>
|
||||||
<el-radio
|
<el-radio
|
||||||
:model-value="operation"
|
:model-value="operation"
|
||||||
label="delete"
|
label="delete"
|
||||||
@update:modelValue="() => setOperation('delete')"
|
@update:model-value="() => setOperation('delete')"
|
||||||
>
|
>
|
||||||
<n8n-text color="text-dark">{{
|
<n8n-text color="text-dark">{{
|
||||||
$locale.baseText('settings.users.deleteWorkflowsAndCredentials')
|
$locale.baseText('settings.users.deleteWorkflowsAndCredentials')
|
||||||
|
@ -58,7 +58,7 @@
|
||||||
<n8n-input
|
<n8n-input
|
||||||
:model-value="deleteConfirmText"
|
:model-value="deleteConfirmText"
|
||||||
:placeholder="$locale.baseText('settings.users.deleteConfirmationText')"
|
:placeholder="$locale.baseText('settings.users.deleteConfirmationText')"
|
||||||
@update:modelValue="setConfirmText"
|
@update:model-value="setConfirmText"
|
||||||
/>
|
/>
|
||||||
</n8n-input-label>
|
</n8n-input-label>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -198,7 +198,7 @@ onBeforeMount(() => {
|
||||||
:model-value="filter.tags"
|
:model-value="filter.tags"
|
||||||
:create-enabled="false"
|
:create-enabled="false"
|
||||||
data-test-id="executions-filter-tags-select"
|
data-test-id="executions-filter-tags-select"
|
||||||
@update:modelValue="onTagsChange"
|
@update:model-value="onTagsChange"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div :class="$style.group">
|
<div :class="$style.group">
|
||||||
|
@ -289,7 +289,7 @@ onBeforeMount(() => {
|
||||||
:placeholder="locale.baseText('executionsFilter.savedDataKeyPlaceholder')"
|
:placeholder="locale.baseText('executionsFilter.savedDataKeyPlaceholder')"
|
||||||
:model-value="filter.metadata[0]?.key"
|
:model-value="filter.metadata[0]?.key"
|
||||||
data-test-id="execution-filter-saved-data-key-input"
|
data-test-id="execution-filter-saved-data-key-input"
|
||||||
@update:modelValue="onFilterMetaChange(0, 'key', $event)"
|
@update:model-value="onFilterMetaChange(0, 'key', $event)"
|
||||||
/>
|
/>
|
||||||
</n8n-tooltip>
|
</n8n-tooltip>
|
||||||
<label for="execution-filter-saved-data-value">{{
|
<label for="execution-filter-saved-data-value">{{
|
||||||
|
@ -313,7 +313,7 @@ onBeforeMount(() => {
|
||||||
:placeholder="locale.baseText('executionsFilter.savedDataValuePlaceholder')"
|
:placeholder="locale.baseText('executionsFilter.savedDataValuePlaceholder')"
|
||||||
:model-value="filter.metadata[0]?.value"
|
:model-value="filter.metadata[0]?.value"
|
||||||
data-test-id="execution-filter-saved-data-value-input"
|
data-test-id="execution-filter-saved-data-value-input"
|
||||||
@update:modelValue="onFilterMetaChange(0, 'value', $event)"
|
@update:model-value="onFilterMetaChange(0, 'value', $event)"
|
||||||
/>
|
/>
|
||||||
</n8n-tooltip>
|
</n8n-tooltip>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -10,14 +10,14 @@
|
||||||
v-model="autoRefresh"
|
v-model="autoRefresh"
|
||||||
class="mr-xl"
|
class="mr-xl"
|
||||||
data-test-id="execution-auto-refresh-checkbox"
|
data-test-id="execution-auto-refresh-checkbox"
|
||||||
@update:modelValue="handleAutoRefreshToggle"
|
@update:model-value="handleAutoRefreshToggle"
|
||||||
>
|
>
|
||||||
{{ i18n.baseText('executionsList.autoRefresh') }}
|
{{ i18n.baseText('executionsList.autoRefresh') }}
|
||||||
</el-checkbox>
|
</el-checkbox>
|
||||||
<ExecutionFilter
|
<ExecutionFilter
|
||||||
v-show="!isMounting"
|
v-show="!isMounting"
|
||||||
:workflows="workflows"
|
:workflows="workflows"
|
||||||
@filterChanged="onFilterChanged"
|
@filter-changed="onFilterChanged"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -33,7 +33,7 @@
|
||||||
"
|
"
|
||||||
:model-value="allExistingSelected"
|
:model-value="allExistingSelected"
|
||||||
data-test-id="select-all-executions-checkbox"
|
data-test-id="select-all-executions-checkbox"
|
||||||
@update:modelValue="handleCheckAllExistingChange"
|
@update:model-value="handleCheckAllExistingChange"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<div v-if="isMounting">
|
<div v-if="isMounting">
|
||||||
|
@ -50,7 +50,7 @@
|
||||||
:disabled="finishedExecutionsCount < 1"
|
:disabled="finishedExecutionsCount < 1"
|
||||||
label=""
|
label=""
|
||||||
data-test-id="select-visible-executions-checkbox"
|
data-test-id="select-visible-executions-checkbox"
|
||||||
@update:modelValue="handleCheckAllVisibleChange"
|
@update:model-value="handleCheckAllVisibleChange"
|
||||||
/>
|
/>
|
||||||
</th>
|
</th>
|
||||||
<th>{{ i18n.baseText('executionsList.name') }}</th>
|
<th>{{ i18n.baseText('executionsList.name') }}</th>
|
||||||
|
@ -75,7 +75,7 @@
|
||||||
:model-value="selectedItems[execution.id] || allExistingSelected"
|
:model-value="selectedItems[execution.id] || allExistingSelected"
|
||||||
label=""
|
label=""
|
||||||
data-test-id="select-execution-checkbox"
|
data-test-id="select-execution-checkbox"
|
||||||
@update:modelValue="handleCheckboxChanged(execution.id)"
|
@update:model-value="handleCheckboxChanged(execution.id)"
|
||||||
/>
|
/>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
|
|
|
@ -191,11 +191,11 @@ export default defineComponent({
|
||||||
? {
|
? {
|
||||||
text: this.$locale.baseText('executionsList.debug.button.copyToEditor'),
|
text: this.$locale.baseText('executionsList.debug.button.copyToEditor'),
|
||||||
type: 'secondary',
|
type: 'secondary',
|
||||||
}
|
}
|
||||||
: {
|
: {
|
||||||
text: this.$locale.baseText('executionsList.debug.button.debugInEditor'),
|
text: this.$locale.baseText('executionsList.debug.button.debugInEditor'),
|
||||||
type: 'primary',
|
type: 'primary',
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
:initially-expanded="shouldExpandAccordion"
|
:initially-expanded="shouldExpandAccordion"
|
||||||
:header-icon="accordionIcon"
|
:header-icon="accordionIcon"
|
||||||
@click:body="onAccordionClick"
|
@click:body="onAccordionClick"
|
||||||
@tooltipClick="onItemTooltipClick"
|
@tooltip-click="onItemTooltipClick"
|
||||||
>
|
>
|
||||||
<template #customContent>
|
<template #customContent>
|
||||||
<footer class="mt-2xs">
|
<footer class="mt-2xs">
|
||||||
|
@ -110,7 +110,7 @@ export default defineComponent({
|
||||||
this.productionExecutionsStatus === 'unknown'
|
this.productionExecutionsStatus === 'unknown'
|
||||||
? this.$locale.baseText(
|
? this.$locale.baseText(
|
||||||
'executionsLandingPage.emptyState.accordion.productionExecutionsWarningTooltip',
|
'executionsLandingPage.emptyState.accordion.productionExecutionsWarningTooltip',
|
||||||
)
|
)
|
||||||
: null,
|
: null,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -6,18 +6,18 @@
|
||||||
:loading-more="loadingMore"
|
:loading-more="loadingMore"
|
||||||
:temporary-execution="temporaryExecution"
|
:temporary-execution="temporaryExecution"
|
||||||
:auto-refresh="autoRefresh"
|
:auto-refresh="autoRefresh"
|
||||||
@update:autoRefresh="onAutoRefreshToggle"
|
@update:auto-refresh="onAutoRefreshToggle"
|
||||||
@reloadExecutions="setExecutions"
|
@reload-executions="setExecutions"
|
||||||
@filterUpdated="onFilterUpdated"
|
@filter-updated="onFilterUpdated"
|
||||||
@loadMore="onLoadMore"
|
@load-more="onLoadMore"
|
||||||
@retryExecution="onRetryExecution"
|
@retry-execution="onRetryExecution"
|
||||||
/>
|
/>
|
||||||
<div v-if="!hidePreview" :class="$style.content">
|
<div v-if="!hidePreview" :class="$style.content">
|
||||||
<router-view
|
<router-view
|
||||||
name="executionPreview"
|
name="executionPreview"
|
||||||
@deleteCurrentExecution="onDeleteCurrentExecution"
|
@delete-current-execution="onDeleteCurrentExecution"
|
||||||
@retryExecution="onRetryExecution"
|
@retry-execution="onRetryExecution"
|
||||||
@stopExecution="onStopExecution"
|
@stop-execution="onStopExecution"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -13,11 +13,11 @@
|
||||||
<el-checkbox
|
<el-checkbox
|
||||||
:model-value="autoRefresh"
|
:model-value="autoRefresh"
|
||||||
data-test-id="auto-refresh-checkbox"
|
data-test-id="auto-refresh-checkbox"
|
||||||
@update:modelValue="$emit('update:autoRefresh', $event)"
|
@update:model-value="$emit('update:autoRefresh', $event)"
|
||||||
>
|
>
|
||||||
{{ $locale.baseText('executionsList.autoRefresh') }}
|
{{ $locale.baseText('executionsList.autoRefresh') }}
|
||||||
</el-checkbox>
|
</el-checkbox>
|
||||||
<ExecutionFilter popover-placement="left-start" @filterChanged="onFilterChanged" />
|
<ExecutionFilter popover-placement="left-start" @filter-changed="onFilterChanged" />
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
ref="executionList"
|
ref="executionList"
|
||||||
|
@ -39,7 +39,7 @@
|
||||||
:execution="temporaryExecution"
|
:execution="temporaryExecution"
|
||||||
:data-test-id="`execution-details-${temporaryExecution.id}`"
|
:data-test-id="`execution-details-${temporaryExecution.id}`"
|
||||||
:show-gap="true"
|
:show-gap="true"
|
||||||
@retryExecution="onRetryExecution"
|
@retry-execution="onRetryExecution"
|
||||||
/>
|
/>
|
||||||
<ExecutionCard
|
<ExecutionCard
|
||||||
v-for="execution in executions"
|
v-for="execution in executions"
|
||||||
|
@ -47,7 +47,7 @@
|
||||||
:ref="`execution-${execution.id}`"
|
:ref="`execution-${execution.id}`"
|
||||||
:execution="execution"
|
:execution="execution"
|
||||||
:data-test-id="`execution-details-${execution.id}`"
|
:data-test-id="`execution-details-${execution.id}`"
|
||||||
@retryExecution="onRetryExecution"
|
@retry-execution="onRetryExecution"
|
||||||
/>
|
/>
|
||||||
<div v-if="loadingMore" class="mr-m">
|
<div v-if="loadingMore" class="mr-m">
|
||||||
<n8n-loading variant="p" :rows="1" />
|
<n8n-loading variant="p" :rows="1" />
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
<VariableSelector
|
<VariableSelector
|
||||||
:path="path"
|
:path="path"
|
||||||
:redact-values="redactValues"
|
:redact-values="redactValues"
|
||||||
@itemSelected="itemSelected"
|
@item-selected="itemSelected"
|
||||||
></VariableSelector>
|
></VariableSelector>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
|
@ -48,8 +48,8 @@ export default defineComponent({
|
||||||
segment.kind === 'plaintext'
|
segment.kind === 'plaintext'
|
||||||
? segment.plaintext.length
|
? segment.plaintext.length
|
||||||
: segment.resolved
|
: segment.resolved
|
||||||
? segment.resolved.toString().length
|
? segment.resolved.toString().length
|
||||||
: 0;
|
: 0;
|
||||||
|
|
||||||
segment.to = cursor;
|
segment.to = cursor;
|
||||||
|
|
||||||
|
|
|
@ -45,7 +45,7 @@ const actionDropdownOptions = computed(() => [
|
||||||
value: 'reload',
|
value: 'reload',
|
||||||
label: i18n.baseText('settings.externalSecrets.card.actionDropdown.reload'),
|
label: i18n.baseText('settings.externalSecrets.card.actionDropdown.reload'),
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
: []),
|
: []),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
|
@ -95,7 +95,7 @@ async function onUpdateConnected(value: boolean) {
|
||||||
"
|
"
|
||||||
:disabled="disabled"
|
:disabled="disabled"
|
||||||
data-test-id="settings-external-secrets-connected-switch"
|
data-test-id="settings-external-secrets-connected-switch"
|
||||||
@update:modelValue="onUpdateConnected"
|
@update:model-value="onUpdateConnected"
|
||||||
>
|
>
|
||||||
</el-switch>
|
</el-switch>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -26,7 +26,12 @@ const onCombinatorChange = (combinator: FilterTypeCombinator): void => {
|
||||||
<div v-if="readOnly || options.length === 1">
|
<div v-if="readOnly || options.length === 1">
|
||||||
{{ i18n.baseText(`filter.combinator.${selected}`) }}
|
{{ i18n.baseText(`filter.combinator.${selected}`) }}
|
||||||
</div>
|
</div>
|
||||||
<n8n-select v-else size="small" :model-value="selected" @update:modelValue="onCombinatorChange">
|
<n8n-select
|
||||||
|
v-else
|
||||||
|
size="small"
|
||||||
|
:model-value="selected"
|
||||||
|
@update:model-value="onCombinatorChange"
|
||||||
|
>
|
||||||
<n8n-option
|
<n8n-option
|
||||||
v-for="option in options"
|
v-for="option in options"
|
||||||
:key="option"
|
:key="option"
|
||||||
|
|
|
@ -171,7 +171,7 @@ const onBlur = (): void => {
|
||||||
<OperatorSelect
|
<OperatorSelect
|
||||||
:selected="`${operator.type}:${operator.operation}`"
|
:selected="`${operator.type}:${operator.operation}`"
|
||||||
:read-only="readOnly"
|
:read-only="readOnly"
|
||||||
@operatorChange="onOperatorChange"
|
@operator-change="onOperatorChange"
|
||||||
></OperatorSelect>
|
></OperatorSelect>
|
||||||
</template>
|
</template>
|
||||||
<template v-if="!operator.singleValue" #right="{ breakpoint }">
|
<template v-if="!operator.singleValue" #right="{ breakpoint }">
|
||||||
|
|
|
@ -168,7 +168,7 @@ function getIssues(index: number): string[] {
|
||||||
:options="allowedCombinators"
|
:options="allowedCombinators"
|
||||||
:selected="state.paramValue.combinator"
|
:selected="state.paramValue.combinator"
|
||||||
:class="$style.combinator"
|
:class="$style.combinator"
|
||||||
@combinatorChange="onCombinatorChange"
|
@combinator-change="onCombinatorChange"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<Condition
|
<Condition
|
||||||
|
|
|
@ -60,7 +60,7 @@ function onGroupSelect(group: string) {
|
||||||
size="small"
|
size="small"
|
||||||
:model-value="selected"
|
:model-value="selected"
|
||||||
:disabled="readOnly"
|
:disabled="readOnly"
|
||||||
@update:modelValue="onOperatorChange"
|
@update:model-value="onOperatorChange"
|
||||||
@visible-change="onSelectVisibleChange"
|
@visible-change="onSelectVisibleChange"
|
||||||
@mouseenter="shouldRenderItems = true"
|
@mouseenter="shouldRenderItems = true"
|
||||||
>
|
>
|
||||||
|
|
|
@ -62,7 +62,7 @@
|
||||||
:path="getPropertyPath(property.name, index)"
|
:path="getPropertyPath(property.name, index)"
|
||||||
:hide-delete="true"
|
:hide-delete="true"
|
||||||
:is-read-only="isReadOnly"
|
:is-read-only="isReadOnly"
|
||||||
@valueChanged="valueChanged"
|
@value-changed="valueChanged"
|
||||||
/>
|
/>
|
||||||
</Suspense>
|
</Suspense>
|
||||||
</div>
|
</div>
|
||||||
|
@ -87,7 +87,7 @@
|
||||||
:is-read-only="isReadOnly"
|
:is-read-only="isReadOnly"
|
||||||
class="parameter-item"
|
class="parameter-item"
|
||||||
:hide-delete="true"
|
:hide-delete="true"
|
||||||
@valueChanged="valueChanged"
|
@value-changed="valueChanged"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -107,7 +107,7 @@
|
||||||
:placeholder="getPlaceholderText"
|
:placeholder="getPlaceholderText"
|
||||||
size="small"
|
size="small"
|
||||||
filterable
|
filterable
|
||||||
@update:modelValue="optionSelected"
|
@update:model-value="optionSelected"
|
||||||
>
|
>
|
||||||
<n8n-option
|
<n8n-option
|
||||||
v-for="item in parameterOptions"
|
v-for="item in parameterOptions"
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
type="textarea"
|
type="textarea"
|
||||||
:rows="5"
|
:rows="5"
|
||||||
:placeholder="$locale.baseText('importCurlModal.input.placeholder')"
|
:placeholder="$locale.baseText('importCurlModal.input.placeholder')"
|
||||||
@update:modelValue="onInput"
|
@update:model-value="onInput"
|
||||||
@focus="$event.target.select()"
|
@focus="$event.target.select()"
|
||||||
/>
|
/>
|
||||||
</n8n-input-label>
|
</n8n-input-label>
|
||||||
|
|
|
@ -78,8 +78,8 @@ const resolvedSegments = computed<Resolved[]>(() => {
|
||||||
segment.kind === 'plaintext'
|
segment.kind === 'plaintext'
|
||||||
? segment.plaintext.length
|
? segment.plaintext.length
|
||||||
: segment.resolved
|
: segment.resolved
|
||||||
? (segment.resolved as string | number | boolean).toString().length
|
? (segment.resolved as string | number | boolean).toString().length
|
||||||
: 0;
|
: 0;
|
||||||
segment.to = cursor;
|
segment.to = cursor;
|
||||||
return segment;
|
return segment;
|
||||||
})
|
})
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
:model-value="modelValue"
|
:model-value="modelValue"
|
||||||
size="xlarge"
|
size="xlarge"
|
||||||
:maxlength="64"
|
:maxlength="64"
|
||||||
@update:modelValue="onNameEdit"
|
@update:model-value="onNameEdit"
|
||||||
@change="disableNameEdit"
|
@change="disableNameEdit"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
:maxlength="maxLength"
|
:maxlength="maxLength"
|
||||||
:autofocus="true"
|
:autofocus="true"
|
||||||
:event-bus="inputBus"
|
:event-bus="inputBus"
|
||||||
@update:modelValue="onInput"
|
@update:model-value="onInput"
|
||||||
@esc="onEscape"
|
@esc="onEscape"
|
||||||
@blur="onBlur"
|
@blur="onBlur"
|
||||||
@enter="submit"
|
@enter="submit"
|
||||||
|
|
|
@ -16,12 +16,12 @@
|
||||||
:is-pane-active="isPaneActive"
|
:is-pane-active="isPaneActive"
|
||||||
pane-type="input"
|
pane-type="input"
|
||||||
data-test-id="ndv-input-panel"
|
data-test-id="ndv-input-panel"
|
||||||
@activatePane="activatePane"
|
@activate-pane="activatePane"
|
||||||
@itemHover="$emit('itemHover', $event)"
|
@item-hover="$emit('itemHover', $event)"
|
||||||
@linkRun="onLinkRun"
|
@link-run="onLinkRun"
|
||||||
@unlinkRun="onUnlinkRun"
|
@unlink-run="onUnlinkRun"
|
||||||
@runChange="onRunIndexChange"
|
@run-change="onRunIndexChange"
|
||||||
@tableMounted="$emit('tableMounted', $event)"
|
@table-mounted="$emit('tableMounted', $event)"
|
||||||
@search="$emit('search', $event)"
|
@search="$emit('search', $event)"
|
||||||
>
|
>
|
||||||
<template #header>
|
<template #header>
|
||||||
|
@ -35,7 +35,7 @@
|
||||||
:placeholder="$locale.baseText('ndv.input.parentNodes')"
|
:placeholder="$locale.baseText('ndv.input.parentNodes')"
|
||||||
filterable
|
filterable
|
||||||
data-test-id="ndv-input-select"
|
data-test-id="ndv-input-select"
|
||||||
@update:modelValue="onInputNodeChange"
|
@update:model-value="onInputNodeChange"
|
||||||
>
|
>
|
||||||
<template #prepend>
|
<template #prepend>
|
||||||
<span :class="$style.title">{{ $locale.baseText('ndv.input') }}</span>
|
<span :class="$style.title">{{ $locale.baseText('ndv.input') }}</span>
|
||||||
|
@ -62,7 +62,7 @@
|
||||||
v-if="isActiveNodeConfig && !readOnly"
|
v-if="isActiveNodeConfig && !readOnly"
|
||||||
:options="inputModes"
|
:options="inputModes"
|
||||||
:model-value="inputMode"
|
:model-value="inputMode"
|
||||||
@update:modelValue="onInputModeChange"
|
@update:model-value="onInputModeChange"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
@ -77,7 +77,7 @@
|
||||||
:model-value="mappedNode"
|
:model-value="mappedNode"
|
||||||
size="small"
|
size="small"
|
||||||
teleported
|
teleported
|
||||||
@update:modelValue="onMappedNodeSelected"
|
@update:model-value="onMappedNodeSelected"
|
||||||
@click.stop
|
@click.stop
|
||||||
>
|
>
|
||||||
<template #prepend>{{ $locale.baseText('ndv.input.previousNode') }}</template>
|
<template #prepend>{{ $locale.baseText('ndv.input.previousNode') }}</template>
|
||||||
|
|
|
@ -186,7 +186,7 @@ export default defineComponent({
|
||||||
return this.showInviteUrls
|
return this.showInviteUrls
|
||||||
? this.usersStore.allUsers.filter((user) =>
|
? this.usersStore.allUsers.filter((user) =>
|
||||||
this.showInviteUrls!.find((invite) => invite.user.id === user.id),
|
this.showInviteUrls!.find((invite) => invite.user.id === user.id),
|
||||||
)
|
)
|
||||||
: [];
|
: [];
|
||||||
},
|
},
|
||||||
isAdvancedPermissionsEnabled(): boolean {
|
isAdvancedPermissionsEnabled(): boolean {
|
||||||
|
|
|
@ -162,11 +162,11 @@ export default defineComponent({
|
||||||
? {
|
? {
|
||||||
name: VIEWS.EXECUTION_PREVIEW,
|
name: VIEWS.EXECUTION_PREVIEW,
|
||||||
params: { name: routeWorkflowId, executionId: this.activeExecution.id },
|
params: { name: routeWorkflowId, executionId: this.activeExecution.id },
|
||||||
}
|
}
|
||||||
: {
|
: {
|
||||||
name: VIEWS.EXECUTION_HOME,
|
name: VIEWS.EXECUTION_HOME,
|
||||||
params: { name: routeWorkflowId },
|
params: { name: routeWorkflowId },
|
||||||
};
|
};
|
||||||
|
|
||||||
if (openInNewTab) {
|
if (openInNewTab) {
|
||||||
const { href } = this.$router.resolve(routeToNavigateTo);
|
const { href } = this.$router.resolve(routeToNavigateTo);
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
[$style.menuCollapsed]: mainSidebarCollapsed,
|
[$style.menuCollapsed]: mainSidebarCollapsed,
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
<n8n-radio-buttons :model-value="activeTab" :options="items" @update:modelValue="onSelect" />
|
<n8n-radio-buttons :model-value="activeTab" :options="items" @update:model-value="onSelect" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -217,7 +217,7 @@ export default defineComponent({
|
||||||
tooltip: {
|
tooltip: {
|
||||||
content: this.$locale.baseText('mainSidebar.workflows.readOnlyEnv.tooltip'),
|
content: this.$locale.baseText('mainSidebar.workflows.readOnlyEnv.tooltip'),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
: undefined,
|
: undefined,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
:path="getPath(index)"
|
:path="getPath(index)"
|
||||||
:hide-delete="hideDelete"
|
:hide-delete="hideDelete"
|
||||||
:is-read-only="isReadOnly"
|
:is-read-only="isReadOnly"
|
||||||
@valueChanged="valueChanged"
|
@value-changed="valueChanged"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<NDVFloatingNodes
|
<NDVFloatingNodes
|
||||||
v-if="activeNode"
|
v-if="activeNode"
|
||||||
:root-node="activeNode"
|
:root-node="activeNode"
|
||||||
@switchSelectedNode="onSwitchSelectedNode"
|
@switch-selected-node="onSwitchSelectedNode"
|
||||||
/>
|
/>
|
||||||
<div v-if="!hideInputAndOutput" :class="$style.inputPanel" :style="inputPanelStyles">
|
<div v-if="!hideInputAndOutput" :class="$style.inputPanel" :style="inputPanelStyles">
|
||||||
<slot name="input"></slot>
|
<slot name="input"></slot>
|
||||||
|
|
|
@ -137,8 +137,8 @@ function nodeTypeSelected(nodeTypes: string[]) {
|
||||||
<Suspense>
|
<Suspense>
|
||||||
<NodeCreator
|
<NodeCreator
|
||||||
:active="createNodeActive"
|
:active="createNodeActive"
|
||||||
@nodeTypeSelected="nodeTypeSelected"
|
@node-type-selected="nodeTypeSelected"
|
||||||
@closeNodeCreator="closeNodeCreator"
|
@close-node-creator="closeNodeCreator"
|
||||||
/>
|
/>
|
||||||
</Suspense>
|
</Suspense>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -64,7 +64,7 @@ function onSelected(item: INodeCreateElement) {
|
||||||
icon: item.properties.icon,
|
icon: item.properties.icon,
|
||||||
iconType: 'icon',
|
iconType: 'icon',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
: {}),
|
: {}),
|
||||||
...(item.properties.panelClass ? { panelClass: item.properties.panelClass } : {}),
|
...(item.properties.panelClass ? { panelClass: item.properties.panelClass } : {}),
|
||||||
rootView: activeViewStack.value.rootView,
|
rootView: activeViewStack.value.rootView,
|
||||||
|
@ -218,8 +218,8 @@ registerKeyHook('MainViewArrowLeft', {
|
||||||
:root-view="activeViewStack.rootView"
|
:root-view="activeViewStack.rootView"
|
||||||
show-icon
|
show-icon
|
||||||
show-request
|
show-request
|
||||||
@addWebhookNode="selectNodeType([WEBHOOK_NODE_TYPE])"
|
@add-webhook-node="selectNodeType([WEBHOOK_NODE_TYPE])"
|
||||||
@addHttpNode="selectNodeType([HTTP_REQUEST_NODE_TYPE])"
|
@add-http-node="selectNodeType([HTTP_REQUEST_NODE_TYPE])"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
</ItemsRenderer>
|
</ItemsRenderer>
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
@mousedown="onMouseDown"
|
@mousedown="onMouseDown"
|
||||||
@mouseup="onMouseUp"
|
@mouseup="onMouseUp"
|
||||||
>
|
>
|
||||||
<NodesListPanel @nodeTypeSelected="onNodeTypeSelected" />
|
<NodesListPanel @node-type-selected="onNodeTypeSelected" />
|
||||||
</div>
|
</div>
|
||||||
</SlideTransition>
|
</SlideTransition>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -33,7 +33,7 @@ const searchPlaceholder = computed(() =>
|
||||||
isActionsMode.value
|
isActionsMode.value
|
||||||
? i18n.baseText('nodeCreator.actionsCategory.searchActions', {
|
? i18n.baseText('nodeCreator.actionsCategory.searchActions', {
|
||||||
interpolate: { node: activeViewStack.value.title as string },
|
interpolate: { node: activeViewStack.value.title as string },
|
||||||
})
|
})
|
||||||
: i18n.baseText('nodeCreator.searchBar.searchNodes'),
|
: i18n.baseText('nodeCreator.searchBar.searchNodes'),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -118,7 +118,7 @@ function onBackButton() {
|
||||||
<transition
|
<transition
|
||||||
v-if="viewStacks.length > 0"
|
v-if="viewStacks.length > 0"
|
||||||
:name="`panel-slide-${activeViewStack.transitionDirection}`"
|
:name="`panel-slide-${activeViewStack.transitionDirection}`"
|
||||||
@afterLeave="onTransitionEnd"
|
@after-leave="onTransitionEnd"
|
||||||
>
|
>
|
||||||
<aside
|
<aside
|
||||||
:key="`${activeViewStack.uuid}`"
|
:key="`${activeViewStack.uuid}`"
|
||||||
|
@ -169,7 +169,7 @@ function onBackButton() {
|
||||||
: $locale.baseText('nodeCreator.searchBar.searchNodes')
|
: $locale.baseText('nodeCreator.searchBar.searchNodes')
|
||||||
"
|
"
|
||||||
:model-value="activeViewStack.search"
|
:model-value="activeViewStack.search"
|
||||||
@update:modelValue="onSearch"
|
@update:model-value="onSearch"
|
||||||
/>
|
/>
|
||||||
<div :class="$style.renderedItems">
|
<div :class="$style.renderedItems">
|
||||||
<n8n-notice
|
<n8n-notice
|
||||||
|
|
|
@ -116,7 +116,7 @@ function getAiNodesBySubcategory(nodes: INodeTypeDescription[], subcategory: str
|
||||||
type: 'file',
|
type: 'file',
|
||||||
icon: 'openai',
|
icon: 'openai',
|
||||||
fileBuffer: '/static/open-ai.svg',
|
fileBuffer: '/static/open-ai.svg',
|
||||||
}
|
}
|
||||||
: undefined,
|
: undefined,
|
||||||
},
|
},
|
||||||
}))
|
}))
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
:model-value="getSelectedId(credentialTypeDescription.name)"
|
:model-value="getSelectedId(credentialTypeDescription.name)"
|
||||||
:placeholder="getSelectPlaceholder(credentialTypeDescription.name, issues)"
|
:placeholder="getSelectPlaceholder(credentialTypeDescription.name, issues)"
|
||||||
size="small"
|
size="small"
|
||||||
@update:modelValue="
|
@update:model-value="
|
||||||
(value) =>
|
(value) =>
|
||||||
onCredentialSelected(
|
onCredentialSelected(
|
||||||
credentialTypeDescription.name,
|
credentialTypeDescription.name,
|
||||||
|
@ -369,7 +369,7 @@ export default defineComponent({
|
||||||
return issues.length && this.getSelectedName(type)
|
return issues.length && this.getSelectedName(type)
|
||||||
? this.$locale.baseText('nodeCredentials.selectedCredentialUnavailable', {
|
? this.$locale.baseText('nodeCredentials.selectedCredentialUnavailable', {
|
||||||
interpolate: { name: this.getSelectedName(type) },
|
interpolate: { name: this.getSelectedName(type) },
|
||||||
})
|
})
|
||||||
: this.$locale.baseText('nodeCredentials.selectCredential');
|
: this.$locale.baseText('nodeCredentials.selectCredential');
|
||||||
},
|
},
|
||||||
credentialInputWrapperStyle(credentialType: string) {
|
credentialInputWrapperStyle(credentialType: string) {
|
||||||
|
|
|
@ -44,8 +44,8 @@
|
||||||
:is-draggable="!isTriggerNode"
|
:is-draggable="!isTriggerNode"
|
||||||
:has-double-width="activeNodeType?.parameterPane === 'wide'"
|
:has-double-width="activeNodeType?.parameterPane === 'wide'"
|
||||||
:node-type="activeNodeType"
|
:node-type="activeNodeType"
|
||||||
@switchSelectedNode="onSwitchSelectedNode"
|
@switch-selected-node="onSwitchSelectedNode"
|
||||||
@openConnectionNodeCreator="onOpenConnectionNodeCreator"
|
@open-connection-node-creator="onOpenConnectionNodeCreator"
|
||||||
@close="close"
|
@close="close"
|
||||||
@init="onPanelsInit"
|
@init="onPanelsInit"
|
||||||
@dragstart="onDragStart"
|
@dragstart="onDragStart"
|
||||||
|
@ -70,15 +70,15 @@
|
||||||
:read-only="readOnly || hasForeignCredential"
|
:read-only="readOnly || hasForeignCredential"
|
||||||
:is-production-execution-preview="isProductionExecutionPreview"
|
:is-production-execution-preview="isProductionExecutionPreview"
|
||||||
:is-pane-active="isInputPaneActive"
|
:is-pane-active="isInputPaneActive"
|
||||||
@activatePane="activateInputPane"
|
@activate-pane="activateInputPane"
|
||||||
@linkRun="onLinkRunToInput"
|
@link-run="onLinkRunToInput"
|
||||||
@unlinkRun="() => onUnlinkRun('input')"
|
@unlink-run="() => onUnlinkRun('input')"
|
||||||
@runChange="onRunInputIndexChange"
|
@run-change="onRunInputIndexChange"
|
||||||
@openSettings="openSettings"
|
@open-settings="openSettings"
|
||||||
@changeInputNode="onInputNodeChange"
|
@change-input-node="onInputNodeChange"
|
||||||
@execute="onNodeExecute"
|
@execute="onNodeExecute"
|
||||||
@tableMounted="onInputTableMounted"
|
@table-mounted="onInputTableMounted"
|
||||||
@itemHover="onInputItemHover"
|
@item-hover="onInputItemHover"
|
||||||
@search="onSearch"
|
@search="onSearch"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
|
@ -93,13 +93,13 @@
|
||||||
:block-u-i="blockUi && isTriggerNode && !isExecutableTriggerNode"
|
:block-u-i="blockUi && isTriggerNode && !isExecutableTriggerNode"
|
||||||
:is-production-execution-preview="isProductionExecutionPreview"
|
:is-production-execution-preview="isProductionExecutionPreview"
|
||||||
:is-pane-active="isOutputPaneActive"
|
:is-pane-active="isOutputPaneActive"
|
||||||
@activatePane="activateOutputPane"
|
@activate-pane="activateOutputPane"
|
||||||
@linkRun="onLinkRunToOutput"
|
@link-run="onLinkRunToOutput"
|
||||||
@unlinkRun="() => onUnlinkRun('output')"
|
@unlink-run="() => onUnlinkRun('output')"
|
||||||
@runChange="onRunOutputIndexChange"
|
@run-change="onRunOutputIndexChange"
|
||||||
@openSettings="openSettings"
|
@open-settings="openSettings"
|
||||||
@tableMounted="onOutputTableMounted"
|
@table-mounted="onOutputTableMounted"
|
||||||
@itemHover="onOutputItemHover"
|
@item-hover="onOutputItemHover"
|
||||||
@search="onSearch"
|
@search="onSearch"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
|
@ -113,13 +113,13 @@
|
||||||
:read-only="readOnly"
|
:read-only="readOnly"
|
||||||
:block-u-i="blockUi && showTriggerPanel"
|
:block-u-i="blockUi && showTriggerPanel"
|
||||||
:executable="!readOnly"
|
:executable="!readOnly"
|
||||||
@valueChanged="valueChanged"
|
@value-changed="valueChanged"
|
||||||
@execute="onNodeExecute"
|
@execute="onNodeExecute"
|
||||||
@stopExecution="onStopExecution"
|
@stop-execution="onStopExecution"
|
||||||
@redrawRequired="redrawRequired = true"
|
@redraw-required="redrawRequired = true"
|
||||||
@activate="onWorkflowActivate"
|
@activate="onWorkflowActivate"
|
||||||
@switchSelectedNode="onSwitchSelectedNode"
|
@switch-selected-node="onSwitchSelectedNode"
|
||||||
@openConnectionNodeCreator="onOpenConnectionNodeCreator"
|
@open-connection-node-creator="onOpenConnectionNodeCreator"
|
||||||
/>
|
/>
|
||||||
<a
|
<a
|
||||||
v-if="featureRequestUrl"
|
v-if="featureRequestUrl"
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
:model-value="node.name"
|
:model-value="node.name"
|
||||||
:node-type="nodeType"
|
:node-type="nodeType"
|
||||||
:read-only="isReadOnly"
|
:read-only="isReadOnly"
|
||||||
@update:modelValue="nameChanged"
|
@update:model-value="nameChanged"
|
||||||
></NodeTitle>
|
></NodeTitle>
|
||||||
<div v-if="isExecutable">
|
<div v-if="isExecutable">
|
||||||
<NodeExecuteButton
|
<NodeExecuteButton
|
||||||
|
@ -25,7 +25,7 @@
|
||||||
size="small"
|
size="small"
|
||||||
telemetry-source="parameters"
|
telemetry-source="parameters"
|
||||||
@execute="onNodeExecute"
|
@execute="onNodeExecute"
|
||||||
@stopExecution="onStopExecution"
|
@stop-execution="onStopExecution"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -98,17 +98,17 @@
|
||||||
:is-read-only="isReadOnly"
|
:is-read-only="isReadOnly"
|
||||||
:hidden-issues-inputs="hiddenIssuesInputs"
|
:hidden-issues-inputs="hiddenIssuesInputs"
|
||||||
path="parameters"
|
path="parameters"
|
||||||
@valueChanged="valueChanged"
|
@value-changed="valueChanged"
|
||||||
@activate="onWorkflowActivate"
|
@activate="onWorkflowActivate"
|
||||||
@parameterBlur="onParameterBlur"
|
@parameter-blur="onParameterBlur"
|
||||||
>
|
>
|
||||||
<NodeCredentials
|
<NodeCredentials
|
||||||
:node="node"
|
:node="node"
|
||||||
:readonly="isReadOnly"
|
:readonly="isReadOnly"
|
||||||
:show-all="true"
|
:show-all="true"
|
||||||
:hide-issues="hiddenIssuesInputs.includes('credentials')"
|
:hide-issues="hiddenIssuesInputs.includes('credentials')"
|
||||||
@credentialSelected="credentialSelected"
|
@credential-selected="credentialSelected"
|
||||||
@valueChanged="valueChanged"
|
@value-changed="valueChanged"
|
||||||
@blur="onParameterBlur"
|
@blur="onParameterBlur"
|
||||||
/>
|
/>
|
||||||
</ParameterInputList>
|
</ParameterInputList>
|
||||||
|
@ -139,8 +139,8 @@
|
||||||
:is-read-only="isReadOnly"
|
:is-read-only="isReadOnly"
|
||||||
:hidden-issues-inputs="hiddenIssuesInputs"
|
:hidden-issues-inputs="hiddenIssuesInputs"
|
||||||
path="parameters"
|
path="parameters"
|
||||||
@valueChanged="valueChanged"
|
@value-changed="valueChanged"
|
||||||
@parameterBlur="onParameterBlur"
|
@parameter-blur="onParameterBlur"
|
||||||
/>
|
/>
|
||||||
<ParameterInputList
|
<ParameterInputList
|
||||||
:parameters="nodeSettings"
|
:parameters="nodeSettings"
|
||||||
|
@ -149,8 +149,8 @@
|
||||||
:is-read-only="isReadOnly"
|
:is-read-only="isReadOnly"
|
||||||
:hidden-issues-inputs="hiddenIssuesInputs"
|
:hidden-issues-inputs="hiddenIssuesInputs"
|
||||||
path=""
|
path=""
|
||||||
@valueChanged="valueChanged"
|
@value-changed="valueChanged"
|
||||||
@parameterBlur="onParameterBlur"
|
@parameter-blur="onParameterBlur"
|
||||||
/>
|
/>
|
||||||
<div class="node-version" data-test-id="node-version">
|
<div class="node-version" data-test-id="node-version">
|
||||||
{{
|
{{
|
||||||
|
@ -169,8 +169,8 @@
|
||||||
v-if="node"
|
v-if="node"
|
||||||
ref="subConnections"
|
ref="subConnections"
|
||||||
:root-node="node"
|
:root-node="node"
|
||||||
@switchSelectedNode="onSwitchSelectedNode"
|
@switch-selected-node="onSwitchSelectedNode"
|
||||||
@openConnectionNodeCreator="onOpenConnectionNodeCreator"
|
@open-connection-node-creator="onOpenConnectionNodeCreator"
|
||||||
/>
|
/>
|
||||||
<n8n-block-ui :show="blockUI" />
|
<n8n-block-ui :show="blockUI" />
|
||||||
</div>
|
</div>
|
||||||
|
@ -376,7 +376,7 @@ export default defineComponent({
|
||||||
const credential = this.usedCredentials
|
const credential = this.usedCredentials
|
||||||
? Object.values(this.usedCredentials).find((credential) => {
|
? Object.values(this.usedCredentials).find((credential) => {
|
||||||
return credential.id === this.foreignCredentials[0];
|
return credential.id === this.foreignCredentials[0];
|
||||||
})
|
})
|
||||||
: undefined;
|
: undefined;
|
||||||
|
|
||||||
return this.credentialsStore.getCredentialOwnerName(credential);
|
return this.credentialsStore.getCredentialOwnerName(credential);
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
<n8n-tabs
|
<n8n-tabs
|
||||||
:options="options"
|
:options="options"
|
||||||
:model-value="modelValue"
|
:model-value="modelValue"
|
||||||
@update:modelValue="onTabSelect"
|
@update:model-value="onTabSelect"
|
||||||
@tooltipClick="onTooltipClick"
|
@tooltip-click="onTooltipClick"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -15,12 +15,12 @@
|
||||||
:is-pane-active="isPaneActive"
|
:is-pane-active="isPaneActive"
|
||||||
pane-type="output"
|
pane-type="output"
|
||||||
:data-output-type="outputMode"
|
:data-output-type="outputMode"
|
||||||
@activatePane="activatePane"
|
@activate-pane="activatePane"
|
||||||
@runChange="onRunIndexChange"
|
@run-change="onRunIndexChange"
|
||||||
@linkRun="onLinkRun"
|
@link-run="onLinkRun"
|
||||||
@unlinkRun="onUnlinkRun"
|
@unlink-run="onUnlinkRun"
|
||||||
@tableMounted="$emit('tableMounted', $event)"
|
@table-mounted="$emit('tableMounted', $event)"
|
||||||
@itemHover="$emit('itemHover', $event)"
|
@item-hover="$emit('itemHover', $event)"
|
||||||
@search="$emit('search', $event)"
|
@search="$emit('search', $event)"
|
||||||
>
|
>
|
||||||
<template #header>
|
<template #header>
|
||||||
|
@ -29,7 +29,7 @@
|
||||||
<n8n-radio-buttons
|
<n8n-radio-buttons
|
||||||
v-model="outputMode"
|
v-model="outputMode"
|
||||||
:options="outputTypes"
|
:options="outputTypes"
|
||||||
@update:modelValue="onUpdateOutputMode"
|
@update:model-value="onUpdateOutputMode"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
<span v-else :class="$style.title">
|
<span v-else :class="$style.title">
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
:event-source="eventSource || 'ndv'"
|
:event-source="eventSource || 'ndv'"
|
||||||
:is-read-only="isReadOnly"
|
:is-read-only="isReadOnly"
|
||||||
:redact-values="shouldRedactValue"
|
:redact-values="shouldRedactValue"
|
||||||
@closeDialog="closeExpressionEditDialog"
|
@close-dialog="closeExpressionEditDialog"
|
||||||
@update:model-value="expressionUpdated"
|
@update:model-value="expressionUpdated"
|
||||||
></ExpressionEdit>
|
></ExpressionEdit>
|
||||||
<div class="parameter-input ignore-key-press" :style="parameterInputWrapperStyle">
|
<div class="parameter-input ignore-key-press" :style="parameterInputWrapperStyle">
|
||||||
|
@ -35,7 +35,7 @@
|
||||||
:path="path"
|
:path="path"
|
||||||
:event-bus="eventBus"
|
:event-bus="eventBus"
|
||||||
@update:model-value="valueChanged"
|
@update:model-value="valueChanged"
|
||||||
@modalOpenerClick="openExpressionEditorModal"
|
@modal-opener-click="openExpressionEditorModal"
|
||||||
@focus="setFocus"
|
@focus="setFocus"
|
||||||
@blur="onBlur"
|
@blur="onBlur"
|
||||||
@drop="onResourceLocatorDrop"
|
@drop="onResourceLocatorDrop"
|
||||||
|
@ -53,7 +53,7 @@
|
||||||
:class="{ 'ph-no-capture': shouldRedactValue }"
|
:class="{ 'ph-no-capture': shouldRedactValue }"
|
||||||
:event-bus="eventBus"
|
:event-bus="eventBus"
|
||||||
@update:model-value="expressionUpdated"
|
@update:model-value="expressionUpdated"
|
||||||
@modalOpenerClick="openExpressionEditorModal"
|
@modal-opener-click="openExpressionEditorModal"
|
||||||
@focus="setFocus"
|
@focus="setFocus"
|
||||||
@blur="onBlur"
|
@blur="onBlur"
|
||||||
/>
|
/>
|
||||||
|
@ -128,7 +128,7 @@
|
||||||
:parameter="parameter"
|
:parameter="parameter"
|
||||||
:path="path"
|
:path="path"
|
||||||
:is-read-only="isReadOnly"
|
:is-read-only="isReadOnly"
|
||||||
@closeDialog="closeTextEditDialog"
|
@close-dialog="closeTextEditDialog"
|
||||||
@update:model-value="expressionUpdated"
|
@update:model-value="expressionUpdated"
|
||||||
></TextEdit>
|
></TextEdit>
|
||||||
|
|
||||||
|
@ -360,10 +360,10 @@
|
||||||
:display-value="displayValue"
|
:display-value="displayValue"
|
||||||
:is-read-only="isReadOnly"
|
:is-read-only="isReadOnly"
|
||||||
:display-title="displayTitle"
|
:display-title="displayTitle"
|
||||||
@credentialSelected="credentialSelected"
|
@credential-selected="credentialSelected"
|
||||||
@update:model-value="valueChanged"
|
@update:model-value="valueChanged"
|
||||||
@setFocus="setFocus"
|
@set-focus="setFocus"
|
||||||
@onBlur="onBlur"
|
@on-blur="onBlur"
|
||||||
>
|
>
|
||||||
<template #issues-and-options>
|
<template #issues-and-options>
|
||||||
<ParameterIssues :issues="getIssues" />
|
<ParameterIssues :issues="getIssues" />
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
:is-read-only="false"
|
:is-read-only="false"
|
||||||
:show-options="true"
|
:show-options="true"
|
||||||
:is-value-expression="isValueExpression"
|
:is-value-expression="isValueExpression"
|
||||||
@update:modelValue="optionSelected"
|
@update:model-value="optionSelected"
|
||||||
@menu-expanded="onMenuExpanded"
|
@menu-expanded="onMenuExpanded"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
|
@ -34,7 +34,7 @@
|
||||||
:event-bus="eventBus"
|
:event-bus="eventBus"
|
||||||
@focus="onFocus"
|
@focus="onFocus"
|
||||||
@blur="onBlur"
|
@blur="onBlur"
|
||||||
@textInput="valueChanged"
|
@text-input="valueChanged"
|
||||||
@update="valueChanged"
|
@update="valueChanged"
|
||||||
/>
|
/>
|
||||||
<div v-if="showRequiredErrors" :class="$style.errors">
|
<div v-if="showRequiredErrors" :class="$style.errors">
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
:is-read-only="isReadOnly"
|
:is-read-only="isReadOnly"
|
||||||
:show-options="displayOptions"
|
:show-options="displayOptions"
|
||||||
:show-expression-selector="showExpressionSelector"
|
:show-expression-selector="showExpressionSelector"
|
||||||
@update:modelValue="optionSelected"
|
@update:model-value="optionSelected"
|
||||||
@menu-expanded="onMenuExpanded"
|
@menu-expanded="onMenuExpanded"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
|
@ -47,7 +47,7 @@
|
||||||
:event-bus="eventBus"
|
:event-bus="eventBus"
|
||||||
input-size="small"
|
input-size="small"
|
||||||
@update="valueChanged"
|
@update="valueChanged"
|
||||||
@textInput="onTextInput"
|
@text-input="onTextInput"
|
||||||
@focus="onFocus"
|
@focus="onFocus"
|
||||||
@blur="onBlur"
|
@blur="onBlur"
|
||||||
@drop="onDrop"
|
@drop="onDrop"
|
||||||
|
@ -70,7 +70,7 @@
|
||||||
:is-read-only="isReadOnly"
|
:is-read-only="isReadOnly"
|
||||||
:show-options="displayOptions"
|
:show-options="displayOptions"
|
||||||
:show-expression-selector="showExpressionSelector"
|
:show-expression-selector="showExpressionSelector"
|
||||||
@update:modelValue="optionSelected"
|
@update:model-value="optionSelected"
|
||||||
@menu-expanded="onMenuExpanded"
|
@menu-expanded="onMenuExpanded"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -18,14 +18,14 @@
|
||||||
:node-values="nodeValues"
|
:node-values="nodeValues"
|
||||||
:path="getPath(parameter.name)"
|
:path="getPath(parameter.name)"
|
||||||
:is-read-only="isReadOnly"
|
:is-read-only="isReadOnly"
|
||||||
@valueChanged="valueChanged"
|
@value-changed="valueChanged"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<ImportParameter
|
<ImportParameter
|
||||||
v-else-if="parameter.type === 'curlImport'"
|
v-else-if="parameter.type === 'curlImport'"
|
||||||
:is-read-only="isReadOnly"
|
:is-read-only="isReadOnly"
|
||||||
@valueChanged="valueChanged"
|
@value-changed="valueChanged"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<n8n-notice
|
<n8n-notice
|
||||||
|
@ -74,7 +74,7 @@
|
||||||
:node-values="nodeValues"
|
:node-values="nodeValues"
|
||||||
:path="getPath(parameter.name)"
|
:path="getPath(parameter.name)"
|
||||||
:is-read-only="isReadOnly"
|
:is-read-only="isReadOnly"
|
||||||
@valueChanged="valueChanged"
|
@value-changed="valueChanged"
|
||||||
/>
|
/>
|
||||||
<FixedCollectionParameter
|
<FixedCollectionParameter
|
||||||
v-else-if="parameter.type === 'fixedCollection'"
|
v-else-if="parameter.type === 'fixedCollection'"
|
||||||
|
@ -83,7 +83,7 @@
|
||||||
:node-values="nodeValues"
|
:node-values="nodeValues"
|
||||||
:path="getPath(parameter.name)"
|
:path="getPath(parameter.name)"
|
||||||
:is-read-only="isReadOnly"
|
:is-read-only="isReadOnly"
|
||||||
@valueChanged="valueChanged"
|
@value-changed="valueChanged"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
<template #fallback>
|
<template #fallback>
|
||||||
|
@ -106,7 +106,7 @@
|
||||||
:dependent-parameters-values="getDependentParametersValues(parameter)"
|
:dependent-parameters-values="getDependentParametersValues(parameter)"
|
||||||
input-size="small"
|
input-size="small"
|
||||||
label-size="small"
|
label-size="small"
|
||||||
@valueChanged="valueChanged"
|
@value-changed="valueChanged"
|
||||||
/>
|
/>
|
||||||
<FilterConditions
|
<FilterConditions
|
||||||
v-else-if="parameter.type === 'filter'"
|
v-else-if="parameter.type === 'filter'"
|
||||||
|
@ -115,7 +115,7 @@
|
||||||
:path="getPath(parameter.name)"
|
:path="getPath(parameter.name)"
|
||||||
:node="node"
|
:node="node"
|
||||||
:read-only="isReadOnly"
|
:read-only="isReadOnly"
|
||||||
@valueChanged="valueChanged"
|
@value-changed="valueChanged"
|
||||||
/>
|
/>
|
||||||
<AssignmentCollection
|
<AssignmentCollection
|
||||||
v-else-if="parameter.type === 'assignmentCollection'"
|
v-else-if="parameter.type === 'assignmentCollection'"
|
||||||
|
@ -124,7 +124,7 @@
|
||||||
:path="getPath(parameter.name)"
|
:path="getPath(parameter.name)"
|
||||||
:node="node"
|
:node="node"
|
||||||
:is-read-only="isReadOnly"
|
:is-read-only="isReadOnly"
|
||||||
@valueChanged="valueChanged"
|
@value-changed="valueChanged"
|
||||||
/>
|
/>
|
||||||
<div
|
<div
|
||||||
v-else-if="displayNodeParameter(parameter) && credentialsParameterIndex !== index"
|
v-else-if="displayNodeParameter(parameter) && credentialsParameterIndex !== index"
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
@focus="onFocus"
|
@focus="onFocus"
|
||||||
@blur="onBlur"
|
@blur="onBlur"
|
||||||
@drop="onDrop"
|
@drop="onDrop"
|
||||||
@textInput="onTextInput"
|
@text-input="onTextInput"
|
||||||
@update="onValueChanged"
|
@update="onValueChanged"
|
||||||
/>
|
/>
|
||||||
<div v-if="!hideHint && (expressionOutput || parameterHint)" :class="$style.hint">
|
<div v-if="!hideHint && (expressionOutput || parameterHint)" :class="$style.hint">
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
{ label: $locale.baseText('parameterInput.fixed'), value: 'fixed' },
|
{ label: $locale.baseText('parameterInput.fixed'), value: 'fixed' },
|
||||||
{ label: $locale.baseText('parameterInput.expression'), value: 'expression' },
|
{ label: $locale.baseText('parameterInput.expression'), value: 'expression' },
|
||||||
]"
|
]"
|
||||||
@update:modelValue="onViewSelected"
|
@update:model-value="onViewSelected"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -18,9 +18,9 @@
|
||||||
:error-view="currentQueryError"
|
:error-view="currentQueryError"
|
||||||
:width="width"
|
:width="width"
|
||||||
:event-bus="eventBus"
|
:event-bus="eventBus"
|
||||||
@update:modelValue="onListItemSelected"
|
@update:model-value="onListItemSelected"
|
||||||
@filter="onSearchFilter"
|
@filter="onSearchFilter"
|
||||||
@loadMore="loadResourcesDebounced"
|
@load-more="loadResourcesDebounced"
|
||||||
>
|
>
|
||||||
<template #error>
|
<template #error>
|
||||||
<div :class="$style.error" data-test-id="rlc-error-container">
|
<div :class="$style.error" data-test-id="rlc-error-container">
|
||||||
|
@ -52,7 +52,7 @@
|
||||||
:disabled="isReadOnly"
|
:disabled="isReadOnly"
|
||||||
:placeholder="$locale.baseText('resourceLocator.modeSelector.placeholder')"
|
:placeholder="$locale.baseText('resourceLocator.modeSelector.placeholder')"
|
||||||
data-test-id="rlc-mode-selector"
|
data-test-id="rlc-mode-selector"
|
||||||
@update:modelValue="onModeSelected"
|
@update:model-value="onModeSelected"
|
||||||
>
|
>
|
||||||
<n8n-option
|
<n8n-option
|
||||||
v-for="mode in parameter.modes"
|
v-for="mode in parameter.modes"
|
||||||
|
@ -94,8 +94,8 @@
|
||||||
:model-value="expressionDisplayValue"
|
:model-value="expressionDisplayValue"
|
||||||
:path="path"
|
:path="path"
|
||||||
:rows="3"
|
:rows="3"
|
||||||
@update:modelValue="onInputChange"
|
@update:model-value="onInputChange"
|
||||||
@modalOpenerClick="$emit('modalOpenerClick')"
|
@modal-opener-click="$emit('modalOpenerClick')"
|
||||||
/>
|
/>
|
||||||
<n8n-input
|
<n8n-input
|
||||||
v-else
|
v-else
|
||||||
|
@ -109,7 +109,7 @@
|
||||||
:placeholder="inputPlaceholder"
|
:placeholder="inputPlaceholder"
|
||||||
type="text"
|
type="text"
|
||||||
data-test-id="rlc-input"
|
data-test-id="rlc-input"
|
||||||
@update:modelValue="onInputChange"
|
@update:model-value="onInputChange"
|
||||||
@focus="onInputFocus"
|
@focus="onInputFocus"
|
||||||
@blur="onInputBlur"
|
@blur="onInputBlur"
|
||||||
>
|
>
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
:clearable="true"
|
:clearable="true"
|
||||||
:placeholder="$locale.baseText('resourceLocator.search.placeholder')"
|
:placeholder="$locale.baseText('resourceLocator.search.placeholder')"
|
||||||
data-test-id="rlc-search"
|
data-test-id="rlc-search"
|
||||||
@update:modelValue="onFilterInput"
|
@update:model-value="onFilterInput"
|
||||||
>
|
>
|
||||||
<template #prefix>
|
<template #prefix>
|
||||||
<font-awesome-icon :class="$style.searchIcon" icon="search" />
|
<font-awesome-icon :class="$style.searchIcon" icon="search" />
|
||||||
|
|
|
@ -300,7 +300,7 @@ defineExpose({
|
||||||
:custom-actions="parameterActions"
|
:custom-actions="parameterActions"
|
||||||
:loading="props.refreshInProgress"
|
:loading="props.refreshInProgress"
|
||||||
:loading-message="fetchingFieldsLabel"
|
:loading-message="fetchingFieldsLabel"
|
||||||
@update:modelValue="onParameterActionSelected"
|
@update:model-value="onParameterActionSelected"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
</n8n-input-label>
|
</n8n-input-label>
|
||||||
|
@ -388,7 +388,7 @@ defineExpose({
|
||||||
size="small"
|
size="small"
|
||||||
:teleported="teleported"
|
:teleported="teleported"
|
||||||
:disabled="addFieldOptions.length == 0"
|
:disabled="addFieldOptions.length == 0"
|
||||||
@update:modelValue="addField"
|
@update:model-value="addField"
|
||||||
>
|
>
|
||||||
<n8n-option
|
<n8n-option
|
||||||
v-for="item in addFieldOptions"
|
v-for="item in addFieldOptions"
|
||||||
|
|
|
@ -115,7 +115,7 @@ defineExpose({
|
||||||
:model-value="selected"
|
:model-value="selected"
|
||||||
:teleported="teleported"
|
:teleported="teleported"
|
||||||
:size="props.inputSize"
|
:size="props.inputSize"
|
||||||
@update:modelValue="onModeChanged"
|
@update:model-value="onModeChanged"
|
||||||
>
|
>
|
||||||
<n8n-option
|
<n8n-option
|
||||||
v-for="option in mappingModeOptions"
|
v-for="option in mappingModeOptions"
|
||||||
|
|
|
@ -182,7 +182,7 @@ defineExpose({
|
||||||
:custom-actions="parameterActions"
|
:custom-actions="parameterActions"
|
||||||
:loading="props.refreshInProgress"
|
:loading="props.refreshInProgress"
|
||||||
:loading-message="fetchingFieldsLabel"
|
:loading-message="fetchingFieldsLabel"
|
||||||
@update:modelValue="onParameterActionSelected"
|
@update:model-value="onParameterActionSelected"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
<n8n-select
|
<n8n-select
|
||||||
|
@ -191,7 +191,7 @@ defineExpose({
|
||||||
:size="props.inputSize"
|
:size="props.inputSize"
|
||||||
:disabled="loading"
|
:disabled="loading"
|
||||||
:teleported="teleported"
|
:teleported="teleported"
|
||||||
@update:modelValue="onSelectionChange"
|
@update:model-value="onSelectionChange"
|
||||||
>
|
>
|
||||||
<n8n-option
|
<n8n-option
|
||||||
v-for="field in availableMatchingFields"
|
v-for="field in availableMatchingFields"
|
||||||
|
|
|
@ -189,7 +189,7 @@ const defaultSelectedMatchingColumns = computed<string[]>(() => {
|
||||||
acc.push(field.id);
|
acc.push(field.id);
|
||||||
}
|
}
|
||||||
return acc;
|
return acc;
|
||||||
}, [] as string[]);
|
}, [] as string[]);
|
||||||
});
|
});
|
||||||
|
|
||||||
const pluralFieldWord = computed<string>(() => {
|
const pluralFieldWord = computed<string>(() => {
|
||||||
|
@ -461,8 +461,8 @@ defineExpose({
|
||||||
:loading-error="state.loadingError"
|
:loading-error="state.loadingError"
|
||||||
:fields-to-map="state.paramValue.schema"
|
:fields-to-map="state.paramValue.schema"
|
||||||
:teleported="teleported"
|
:teleported="teleported"
|
||||||
@modeChanged="onModeChanged"
|
@mode-changed="onModeChanged"
|
||||||
@retryFetch="initFetching"
|
@retry-fetch="initFetching"
|
||||||
/>
|
/>
|
||||||
<MatchingColumnsSelect
|
<MatchingColumnsSelect
|
||||||
v-if="showMatchingColumnsSelector"
|
v-if="showMatchingColumnsSelector"
|
||||||
|
@ -476,8 +476,8 @@ defineExpose({
|
||||||
:service-name="nodeType?.displayName || locale.baseText('generic.service')"
|
:service-name="nodeType?.displayName || locale.baseText('generic.service')"
|
||||||
:teleported="teleported"
|
:teleported="teleported"
|
||||||
:refresh-in-progress="state.refreshInProgress"
|
:refresh-in-progress="state.refreshInProgress"
|
||||||
@matchingColumnsChanged="onMatchingColumnsChanged"
|
@matching-columns-changed="onMatchingColumnsChanged"
|
||||||
@refreshFieldList="initFetching(true)"
|
@refresh-field-list="initFetching(true)"
|
||||||
/>
|
/>
|
||||||
<n8n-text v-if="!showMappingModeSelect && state.loading" size="small">
|
<n8n-text v-if="!showMappingModeSelect && state.loading" size="small">
|
||||||
<n8n-icon icon="sync-alt" size="xsmall" :spin="true" />
|
<n8n-icon icon="sync-alt" size="xsmall" :spin="true" />
|
||||||
|
@ -502,10 +502,10 @@ defineExpose({
|
||||||
:loading="state.loading"
|
:loading="state.loading"
|
||||||
:teleported="teleported"
|
:teleported="teleported"
|
||||||
:refresh-in-progress="state.refreshInProgress"
|
:refresh-in-progress="state.refreshInProgress"
|
||||||
@fieldValueChanged="fieldValueChanged"
|
@field-value-changed="fieldValueChanged"
|
||||||
@removeField="removeField"
|
@remove-field="removeField"
|
||||||
@addField="addField"
|
@add-field="addField"
|
||||||
@refreshFieldList="initFetching(true)"
|
@refresh-field-list="initFetching(true)"
|
||||||
/>
|
/>
|
||||||
<n8n-notice
|
<n8n-notice
|
||||||
v-if="state.paramValue.mappingMode === 'autoMapInputData' && hasAvailableMatchingColumns"
|
v-if="state.paramValue.mappingMode === 'autoMapInputData' && hasAvailableMatchingColumns"
|
||||||
|
|
|
@ -56,7 +56,7 @@
|
||||||
:model-value="displayMode"
|
:model-value="displayMode"
|
||||||
:options="buttons"
|
:options="buttons"
|
||||||
data-test-id="ndv-run-data-display-mode"
|
data-test-id="ndv-run-data-display-mode"
|
||||||
@update:modelValue="onDisplayModeChange"
|
@update:model-value="onDisplayModeChange"
|
||||||
/>
|
/>
|
||||||
<n8n-icon-button
|
<n8n-icon-button
|
||||||
v-if="canPinData && !isReadOnlyRoute && !readOnlyEnv"
|
v-if="canPinData && !isReadOnlyRoute && !readOnlyEnv"
|
||||||
|
@ -116,7 +116,7 @@
|
||||||
size="small"
|
size="small"
|
||||||
:model-value="runIndex"
|
:model-value="runIndex"
|
||||||
teleported
|
teleported
|
||||||
@update:modelValue="onRunIndexChange"
|
@update:model-value="onRunIndexChange"
|
||||||
@click.stop
|
@click.stop
|
||||||
>
|
>
|
||||||
<template #prepend>{{ $locale.baseText('ndv.output.run') }}</template>
|
<template #prepend>{{ $locale.baseText('ndv.output.run') }}</template>
|
||||||
|
@ -160,7 +160,7 @@
|
||||||
<n8n-tabs
|
<n8n-tabs
|
||||||
:model-value="currentOutputIndex"
|
:model-value="currentOutputIndex"
|
||||||
:options="branches"
|
:options="branches"
|
||||||
@update:modelValue="onBranchChange"
|
@update:model-value="onBranchChange"
|
||||||
/>
|
/>
|
||||||
<RunDataSearch
|
<RunDataSearch
|
||||||
v-if="showIOSearch"
|
v-if="showIOSearch"
|
||||||
|
@ -217,7 +217,7 @@
|
||||||
<div :class="[$style.editModeBody, 'ignore-key-press']">
|
<div :class="[$style.editModeBody, 'ignore-key-press']">
|
||||||
<JsonEditor
|
<JsonEditor
|
||||||
:model-value="editMode.value"
|
:model-value="editMode.value"
|
||||||
@update:modelValue="ndvStore.setOutputPanelEditModeValue($event)"
|
@update:model-value="ndvStore.setOutputPanelEditModeValue($event)"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div :class="$style.editModeFooter">
|
<div :class="$style.editModeFooter">
|
||||||
|
@ -372,8 +372,8 @@
|
||||||
:has-default-hover-state="paneType === 'input' && !search"
|
:has-default-hover-state="paneType === 'input' && !search"
|
||||||
:search="search"
|
:search="search"
|
||||||
@mounted="$emit('tableMounted', $event)"
|
@mounted="$emit('tableMounted', $event)"
|
||||||
@activeRowChanged="onItemHover"
|
@active-row-changed="onItemHover"
|
||||||
@displayModeChange="onDisplayModeChange"
|
@display-mode-change="onDisplayModeChange"
|
||||||
/>
|
/>
|
||||||
</Suspense>
|
</Suspense>
|
||||||
|
|
||||||
|
@ -527,7 +527,7 @@
|
||||||
size="mini"
|
size="mini"
|
||||||
:model-value="pageSize"
|
:model-value="pageSize"
|
||||||
teleported
|
teleported
|
||||||
@update:modelValue="onPageSizeChange"
|
@update:model-value="onPageSizeChange"
|
||||||
>
|
>
|
||||||
<template #prepend>{{ $locale.baseText('ndv.output.pageSize') }}</template>
|
<template #prepend>{{ $locale.baseText('ndv.output.pageSize') }}</template>
|
||||||
<n8n-option v-for="size in pageSizes" :key="size" :label="size" :value="size">
|
<n8n-option v-for="size in pageSizes" :key="size" :label="size" :value="size">
|
||||||
|
@ -986,11 +986,11 @@ export default defineComponent({
|
||||||
? this.$locale.baseText('ndv.search.items', {
|
? this.$locale.baseText('ndv.search.items', {
|
||||||
adjustToNumber: totalItemsCount,
|
adjustToNumber: totalItemsCount,
|
||||||
interpolate: { matched: itemsCount, total: totalItemsCount },
|
interpolate: { matched: itemsCount, total: totalItemsCount },
|
||||||
})
|
})
|
||||||
: this.$locale.baseText('ndv.output.items', {
|
: this.$locale.baseText('ndv.output.items', {
|
||||||
adjustToNumber: itemsCount,
|
adjustToNumber: itemsCount,
|
||||||
interpolate: { count: itemsCount },
|
interpolate: { count: itemsCount },
|
||||||
});
|
});
|
||||||
let outputName = this.getOutputName(i);
|
let outputName = this.getOutputName(i);
|
||||||
|
|
||||||
if (`${outputName}` === `${i}`) {
|
if (`${outputName}` === `${i}`) {
|
||||||
|
@ -1327,12 +1327,12 @@ export default defineComponent({
|
||||||
return Array.isArray(this.pinnedData.data.value)
|
return Array.isArray(this.pinnedData.data.value)
|
||||||
? this.pinnedData.data.value.map((value) => ({
|
? this.pinnedData.data.value.map((value) => ({
|
||||||
json: value,
|
json: value,
|
||||||
}))
|
}))
|
||||||
: [
|
: [
|
||||||
{
|
{
|
||||||
json: this.pinnedData.data.value,
|
json: this.pinnedData.data.value,
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
return inputData;
|
return inputData;
|
||||||
},
|
},
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
root-path=""
|
root-path=""
|
||||||
selectable-type="single"
|
selectable-type="single"
|
||||||
class="json-data"
|
class="json-data"
|
||||||
@update:selectedValue="selectedJsonPath = $event"
|
@update:selected-value="selectedJsonPath = $event"
|
||||||
>
|
>
|
||||||
<template #renderNodeKey="{ node }">
|
<template #renderNodeKey="{ node }">
|
||||||
<TextWithHighlights
|
<TextWithHighlights
|
||||||
|
|
|
@ -80,7 +80,7 @@ onUnmounted(() => {
|
||||||
:model-value="modelValue"
|
:model-value="modelValue"
|
||||||
:placeholder="placeholder"
|
:placeholder="placeholder"
|
||||||
size="small"
|
size="small"
|
||||||
@update:modelValue="onSearchUpdate"
|
@update:model-value="onSearchUpdate"
|
||||||
@focus="onFocus"
|
@focus="onFocus"
|
||||||
@blur="onBlur"
|
@blur="onBlur"
|
||||||
>
|
>
|
||||||
|
|
|
@ -35,7 +35,7 @@
|
||||||
active-color="#13ce66"
|
active-color="#13ce66"
|
||||||
inactive-color="#8899AA"
|
inactive-color="#8899AA"
|
||||||
data-test-id="workflow-activate-switch"
|
data-test-id="workflow-activate-switch"
|
||||||
@update:modelValue="onEnabledSwitched($event, destination.id)"
|
@update:model-value="onEnabledSwitched($event, destination.id)"
|
||||||
>
|
>
|
||||||
</el-switch>
|
</el-switch>
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
:readonly="isTypeAbstract"
|
:readonly="isTypeAbstract"
|
||||||
type="Credential"
|
type="Credential"
|
||||||
data-test-id="subtitle-showing-type"
|
data-test-id="subtitle-showing-type"
|
||||||
@update:modelValue="onLabelChange"
|
@update:model-value="onLabelChange"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div :class="$style.destinationActions">
|
<div :class="$style.destinationActions">
|
||||||
|
@ -86,7 +86,7 @@
|
||||||
:placeholder="typeSelectPlaceholder"
|
:placeholder="typeSelectPlaceholder"
|
||||||
data-test-id="select-destination-type"
|
data-test-id="select-destination-type"
|
||||||
name="name"
|
name="name"
|
||||||
@update:modelValue="onTypeSelectInput"
|
@update:model-value="onTypeSelectInput"
|
||||||
>
|
>
|
||||||
<n8n-option
|
<n8n-option
|
||||||
v-for="option in typeSelectOptions || []"
|
v-for="option in typeSelectOptions || []"
|
||||||
|
@ -119,7 +119,7 @@
|
||||||
:node-values="nodeParameters"
|
:node-values="nodeParameters"
|
||||||
:is-read-only="!canManageLogStreaming"
|
:is-read-only="!canManageLogStreaming"
|
||||||
path=""
|
path=""
|
||||||
@valueChanged="valueChanged"
|
@value-changed="valueChanged"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="isTypeSyslog">
|
<template v-else-if="isTypeSyslog">
|
||||||
|
@ -129,7 +129,7 @@
|
||||||
:node-values="nodeParameters"
|
:node-values="nodeParameters"
|
||||||
:is-read-only="!canManageLogStreaming"
|
:is-read-only="!canManageLogStreaming"
|
||||||
path=""
|
path=""
|
||||||
@valueChanged="valueChanged"
|
@value-changed="valueChanged"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="isTypeSentry">
|
<template v-else-if="isTypeSentry">
|
||||||
|
@ -139,7 +139,7 @@
|
||||||
:node-values="nodeParameters"
|
:node-values="nodeParameters"
|
||||||
:is-read-only="!canManageLogStreaming"
|
:is-read-only="!canManageLogStreaming"
|
||||||
path=""
|
path=""
|
||||||
@valueChanged="valueChanged"
|
@value-changed="valueChanged"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
:model-value="group.selected"
|
:model-value="group.selected"
|
||||||
:indeterminate="!group.selected && group.indeterminate"
|
:indeterminate="!group.selected && group.indeterminate"
|
||||||
:disabled="readonly"
|
:disabled="readonly"
|
||||||
@update:modelValue="onInput"
|
@update:model-value="onInput"
|
||||||
@change="onCheckboxChecked(group.name, $event)"
|
@change="onCheckboxChecked(group.name, $event)"
|
||||||
>
|
>
|
||||||
<strong>{{ groupLabelName(group.name) }}</strong>
|
<strong>{{ groupLabelName(group.name) }}</strong>
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
v-if="group.name === 'n8n.audit'"
|
v-if="group.name === 'n8n.audit'"
|
||||||
:model-value="logStreamingStore.items[destinationId]?.destination.anonymizeAuditMessages"
|
:model-value="logStreamingStore.items[destinationId]?.destination.anonymizeAuditMessages"
|
||||||
:disabled="readonly"
|
:disabled="readonly"
|
||||||
@update:modelValue="onInput"
|
@update:model-value="onInput"
|
||||||
@change="anonymizeAuditMessagesChanged"
|
@change="anonymizeAuditMessagesChanged"
|
||||||
>
|
>
|
||||||
{{ $locale.baseText('settings.log-streaming.tab.events.anonymize') }}
|
{{ $locale.baseText('settings.log-streaming.tab.events.anonymize') }}
|
||||||
|
@ -52,7 +52,7 @@
|
||||||
:model-value="event.selected || group.selected"
|
:model-value="event.selected || group.selected"
|
||||||
:indeterminate="event.indeterminate"
|
:indeterminate="event.indeterminate"
|
||||||
:disabled="group.selected || readonly"
|
:disabled="group.selected || readonly"
|
||||||
@update:modelValue="onInput"
|
@update:model-value="onInput"
|
||||||
@change="onCheckboxChecked(event.name, $event)"
|
@change="onCheckboxChecked(event.name, $event)"
|
||||||
>
|
>
|
||||||
{{ event.label }}
|
{{ event.label }}
|
||||||
|
|
|
@ -252,7 +252,7 @@ async function commitAndPush() {
|
||||||
<n8n-checkbox
|
<n8n-checkbox
|
||||||
:indeterminate="selectAllIndeterminate"
|
:indeterminate="selectAllIndeterminate"
|
||||||
:model-value="selectAll"
|
:model-value="selectAll"
|
||||||
@update:modelValue="onToggleSelectAll"
|
@update:model-value="onToggleSelectAll"
|
||||||
>
|
>
|
||||||
<n8n-text bold tag="strong">
|
<n8n-text bold tag="strong">
|
||||||
{{ i18n.baseText('settings.sourceControl.modals.push.workflowsToCommit') }}
|
{{ i18n.baseText('settings.sourceControl.modals.push.workflowsToCommit') }}
|
||||||
|
@ -273,7 +273,7 @@ async function commitAndPush() {
|
||||||
<n8n-checkbox
|
<n8n-checkbox
|
||||||
:model-value="staged[file.file]"
|
:model-value="staged[file.file]"
|
||||||
:class="$style.listItemCheckbox"
|
:class="$style.listItemCheckbox"
|
||||||
@update:modelValue="setStagedStatus(file, !staged[file.file])"
|
@update:model-value="setStagedStatus(file, !staged[file.file])"
|
||||||
/>
|
/>
|
||||||
<div>
|
<div>
|
||||||
<n8n-text v-if="file.status === 'deleted'" color="text-light">
|
<n8n-text v-if="file.status === 'deleted'" color="text-light">
|
||||||
|
|
|
@ -40,7 +40,7 @@
|
||||||
@resize="onResize"
|
@resize="onResize"
|
||||||
@resizeend="onResizeEnd"
|
@resizeend="onResizeEnd"
|
||||||
@markdown-click="onMarkdownClick"
|
@markdown-click="onMarkdownClick"
|
||||||
@update:modelValue="onInputChange"
|
@update:model-value="onInputChange"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -257,8 +257,8 @@ export default defineComponent({
|
||||||
isOnboardingNote && isWelcomeVideo
|
isOnboardingNote && isWelcomeVideo
|
||||||
? 'welcome_video'
|
? 'welcome_video'
|
||||||
: isOnboardingNote && link.getAttribute('href') === '/templates'
|
: isOnboardingNote && link.getAttribute('href') === '/templates'
|
||||||
? 'templates'
|
? 'templates'
|
||||||
: 'other';
|
: 'other';
|
||||||
|
|
||||||
this.$telemetry.track('User clicked note link', { type });
|
this.$telemetry.track('User clicked note link', { type });
|
||||||
}
|
}
|
||||||
|
|
|
@ -67,7 +67,7 @@ function onOpenCollection({ id }: { event: Event; id: number }) {
|
||||||
:show-item-count="false"
|
:show-item-count="false"
|
||||||
:show-navigation="false"
|
:show-navigation="false"
|
||||||
cards-width="24%"
|
cards-width="24%"
|
||||||
@openCollection="onOpenCollection"
|
@open-collection="onOpenCollection"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
loading-text="..."
|
loading-text="..."
|
||||||
popper-class="tags-dropdown"
|
popper-class="tags-dropdown"
|
||||||
data-test-id="tags-dropdown"
|
data-test-id="tags-dropdown"
|
||||||
@update:modelValue="onTagsUpdated"
|
@update:model-value="onTagsUpdated"
|
||||||
@visible-change="onVisibleChange"
|
@visible-change="onVisibleChange"
|
||||||
@remove-tag="onRemoveTag"
|
@remove-tag="onRemoveTag"
|
||||||
>
|
>
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue