mirror of
https://github.com/n8n-io/n8n.git
synced 2024-12-24 20:24:05 -08:00
⚡ Fix node-versioning issues in editor-UI
This commit is contained in:
parent
c7e73d757a
commit
ff74feefe4
|
@ -79,7 +79,7 @@ export default Vue.extend({
|
|||
|
||||
const trigger = foundTriggers[0];
|
||||
|
||||
const triggerNodeType = this.$store.getters.nodeType(trigger.type);
|
||||
const triggerNodeType = this.$store.getters.nodeType(trigger.type, trigger.typeVersion);
|
||||
if (triggerNodeType.activationMessage) {
|
||||
return triggerNodeType.activationMessage;
|
||||
}
|
||||
|
|
|
@ -85,7 +85,7 @@ export default mixins(externalHooks, nodeHelpers, workflowHelpers).extend({
|
|||
},
|
||||
nodeType (): INodeTypeDescription | null {
|
||||
if (this.node) {
|
||||
return this.$store.getters.nodeType(this.node.type);
|
||||
return this.$store.getters.nodeType(this.node.type, this.node.typeVersion);
|
||||
}
|
||||
return null;
|
||||
},
|
||||
|
|
|
@ -145,7 +145,7 @@ export default mixins(externalHooks, nodeBase, nodeHelpers, workflowHelpers).ext
|
|||
},
|
||||
isSingleActiveTriggerNode (): boolean {
|
||||
const nodes = this.$store.getters.workflowTriggerNodes.filter((node: INodeUi) => {
|
||||
const nodeType = this.$store.getters.nodeType(node.type) as INodeTypeDescription | null;
|
||||
const nodeType = this.$store.getters.nodeType(node.type, node.typeVersion) as INodeTypeDescription | null;
|
||||
return nodeType && nodeType.eventTriggerDescription !== '' && !node.disabled;
|
||||
});
|
||||
|
||||
|
@ -161,7 +161,7 @@ export default mixins(externalHooks, nodeBase, nodeHelpers, workflowHelpers).ext
|
|||
return this.node && this.node.disabled;
|
||||
},
|
||||
nodeType (): INodeTypeDescription | null {
|
||||
return this.data && this.$store.getters.nodeType(this.data.type);
|
||||
return this.data && this.$store.getters.nodeType(this.data.type, this.data.typeVersion);
|
||||
},
|
||||
node (): INodeUi | undefined { // same as this.data but reactive..
|
||||
return this.$store.getters.nodesByName[this.name] as INodeUi | undefined;
|
||||
|
|
|
@ -106,7 +106,7 @@ export default mixins(
|
|||
credentialTypesNodeDescription (): INodeCredentialDescription[] {
|
||||
const node = this.node as INodeUi;
|
||||
|
||||
const activeNodeType = this.$store.getters.nodeType(node.type) as INodeTypeDescription | null;
|
||||
const activeNodeType = this.$store.getters.nodeType(node.type, node.typeVersion) as INodeTypeDescription | null;
|
||||
if (activeNodeType && activeNodeType.credentials) {
|
||||
return activeNodeType.credentials;
|
||||
}
|
||||
|
|
|
@ -364,7 +364,7 @@ export default mixins(
|
|||
} else if (parameterData.name.startsWith('parameters.')) {
|
||||
// A node parameter changed
|
||||
|
||||
const nodeType = this.$store.getters.nodeType(node.type) as INodeTypeDescription | null;
|
||||
const nodeType = this.$store.getters.nodeType(node.type, node.typeVersion) as INodeTypeDescription | null;
|
||||
if (!nodeType) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -540,7 +540,7 @@ export default mixins(
|
|||
return outputIndex + 1;
|
||||
}
|
||||
|
||||
const nodeType = this.$store.getters.nodeType(this.node.type) as INodeTypeDescription | null;
|
||||
const nodeType = this.$store.getters.nodeType(this.node.type, this.node.typeVersion) as INodeTypeDescription | null;
|
||||
if (!nodeType || !nodeType.outputNames || nodeType.outputNames.length <= outputIndex) {
|
||||
return outputIndex + 1;
|
||||
}
|
||||
|
|
|
@ -279,7 +279,7 @@ export const nodeBase = mixins(
|
|||
});
|
||||
},
|
||||
__addNode (node: INodeUi) {
|
||||
let nodeTypeData = this.$store.getters.nodeType(node.type) as INodeTypeDescription | null;
|
||||
let nodeTypeData = this.$store.getters.nodeType(node.type, node.typeVersion) as INodeTypeDescription | null;
|
||||
if (!nodeTypeData) {
|
||||
// If node type is not know use by default the base.noOp data to display it
|
||||
nodeTypeData = this.$store.getters.nodeType(NO_OP_NODE_TYPE) as INodeTypeDescription;
|
||||
|
|
|
@ -148,7 +148,7 @@ export const nodeHelpers = mixins(
|
|||
// Updates the parameter-issues of the node
|
||||
updateNodeParameterIssues(node: INodeUi, nodeType?: INodeTypeDescription): void {
|
||||
if (nodeType === undefined) {
|
||||
nodeType = this.$store.getters.nodeType(node.type);
|
||||
nodeType = this.$store.getters.nodeType(node.type, node.typeVersion);
|
||||
}
|
||||
|
||||
if (nodeType === null) {
|
||||
|
@ -179,7 +179,7 @@ export const nodeHelpers = mixins(
|
|||
}
|
||||
|
||||
if (nodeType === undefined) {
|
||||
nodeType = this.$store.getters.nodeType(node.type);
|
||||
nodeType = this.$store.getters.nodeType(node.type, node.typeVersion);
|
||||
}
|
||||
|
||||
if (nodeType === null || nodeType!.credentials === undefined) {
|
||||
|
|
|
@ -746,7 +746,7 @@ export const store = new Vuex.Store({
|
|||
|
||||
workflowTriggerNodes: (state, getters) => {
|
||||
return state.workflow.nodes.filter(node => {
|
||||
return getters.nodeType(node.type).group.includes('trigger');
|
||||
return getters.nodeType(node.type, node.typeVersion).group.includes('trigger');
|
||||
});
|
||||
},
|
||||
|
||||
|
|
|
@ -529,7 +529,7 @@ export default mixins(
|
|||
}
|
||||
|
||||
data.workflow.nodes.forEach((node) => {
|
||||
if (!this.$store.getters.nodeType(node.type)) {
|
||||
if (!this.$store.getters.nodeType(node.type, node.typeVersion)) {
|
||||
throw new Error(`The ${this.$locale.shortNodeType(node.type)} node is not supported`);
|
||||
}
|
||||
});
|
||||
|
@ -1325,7 +1325,7 @@ export default mixins(
|
|||
let yOffset = 0;
|
||||
|
||||
if (lastSelectedConnection) {
|
||||
const sourceNodeType = this.$store.getters.nodeType(lastSelectedNode.type) as INodeTypeDescription | null;
|
||||
const sourceNodeType = this.$store.getters.nodeType(lastSelectedNode.type, lastSelectedNode.typeVersion) as INodeTypeDescription | null;
|
||||
const offsets = [[-100, 100], [-140, 0, 140], [-240, -100, 100, 240]];
|
||||
if (sourceNodeType && sourceNodeType.outputs.length > 1) {
|
||||
const offset = offsets[sourceNodeType.outputs.length - 2];
|
||||
|
@ -1714,7 +1714,7 @@ export default mixins(
|
|||
const nodeName = (element as HTMLElement).dataset['name'] as string;
|
||||
const node = this.$store.getters.getNodeByName(nodeName) as INodeUi | null;
|
||||
if (node) {
|
||||
const nodeType = this.$store.getters.nodeType(node.type) as INodeTypeDescription | null;
|
||||
const nodeType = this.$store.getters.nodeType(node.type, node.typeVersion) as INodeTypeDescription | null;
|
||||
if (nodeType && nodeType.inputs && nodeType.inputs.length === 1) {
|
||||
this.pullConnActiveNodeName = node.name;
|
||||
const endpoint = this.instance.getEndpoint(this.getInputEndpointUUID(nodeName, 0));
|
||||
|
@ -1945,7 +1945,7 @@ export default mixins(
|
|||
|
||||
const node = this.$store.getters.getNodeByName(nodeName);
|
||||
|
||||
const nodeTypeData: INodeTypeDescription | null= this.$store.getters.nodeType(node.type);
|
||||
const nodeTypeData: INodeTypeDescription | null= this.$store.getters.nodeType(node.type, node.typeVersion);
|
||||
if (nodeTypeData && nodeTypeData.maxNodes !== undefined && this.getNodeTypeCount(node.type) >= nodeTypeData.maxNodes) {
|
||||
this.showMaxNodeTypeError(nodeTypeData);
|
||||
return;
|
||||
|
|
Loading…
Reference in a new issue