mirror of
https://github.com/n8n-io/n8n.git
synced 2024-11-10 06:34:05 -08:00
Merge pull request #2098 from n8n-io/fix-webhook-id-issue-duplicate
Updates webhook UUIDs to a new one when duplicating
This commit is contained in:
commit
6bc3a20591
|
@ -109,7 +109,7 @@ export default mixins(showMessage, workflowHelpers).extend({
|
||||||
|
|
||||||
this.$data.isSaving = true;
|
this.$data.isSaving = true;
|
||||||
|
|
||||||
const saved = await this.saveAsNewWorkflow({name, tags: this.currentTagIds});
|
const saved = await this.saveAsNewWorkflow({name, tags: this.currentTagIds, resetWebhookUrls: true});
|
||||||
|
|
||||||
if (saved) {
|
if (saved) {
|
||||||
this.closeDialog();
|
this.closeDialog();
|
||||||
|
|
|
@ -39,6 +39,7 @@ import { showMessage } from '@/components/mixins/showMessage';
|
||||||
import { isEqual } from 'lodash';
|
import { isEqual } from 'lodash';
|
||||||
|
|
||||||
import mixins from 'vue-typed-mixins';
|
import mixins from 'vue-typed-mixins';
|
||||||
|
import { v4 as uuidv4} from 'uuid';
|
||||||
|
|
||||||
export const workflowHelpers = mixins(
|
export const workflowHelpers = mixins(
|
||||||
externalHooks,
|
externalHooks,
|
||||||
|
@ -435,13 +436,21 @@ export const workflowHelpers = mixins(
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
async saveAsNewWorkflow ({name, tags}: {name?: string, tags?: string[]} = {}): Promise<boolean> {
|
async saveAsNewWorkflow ({name, tags, resetWebhookUrls}: {name?: string, tags?: string[], resetWebhookUrls?: boolean} = {}): Promise<boolean> {
|
||||||
try {
|
try {
|
||||||
this.$store.commit('addActiveAction', 'workflowSaving');
|
this.$store.commit('addActiveAction', 'workflowSaving');
|
||||||
|
|
||||||
const workflowDataRequest: IWorkflowDataUpdate = await this.getWorkflowDataToSave();
|
const workflowDataRequest: IWorkflowDataUpdate = await this.getWorkflowDataToSave();
|
||||||
// make sure that the new ones are not active
|
// make sure that the new ones are not active
|
||||||
workflowDataRequest.active = false;
|
workflowDataRequest.active = false;
|
||||||
|
if (resetWebhookUrls) {
|
||||||
|
workflowDataRequest.nodes = workflowDataRequest.nodes!.map(node => {
|
||||||
|
if (node.webhookId) {
|
||||||
|
node.webhookId = uuidv4();
|
||||||
|
}
|
||||||
|
return node;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
if (name) {
|
if (name) {
|
||||||
workflowDataRequest.name = name.trim();
|
workflowDataRequest.name = name.trim();
|
||||||
|
@ -452,10 +461,8 @@ export const workflowHelpers = mixins(
|
||||||
}
|
}
|
||||||
const workflowData = await this.restApi().createNewWorkflow(workflowDataRequest);
|
const workflowData = await this.restApi().createNewWorkflow(workflowDataRequest);
|
||||||
|
|
||||||
this.$store.commit('setActive', workflowData.active || false);
|
this.$store.commit('setWorkflow', workflowData);
|
||||||
this.$store.commit('setWorkflowId', workflowData.id);
|
|
||||||
this.$store.commit('setWorkflowName', {newName: workflowData.name, setStateDirty: false});
|
this.$store.commit('setWorkflowName', {newName: workflowData.name, setStateDirty: false});
|
||||||
this.$store.commit('setWorkflowSettings', workflowData.settings || {});
|
|
||||||
this.$store.commit('setStateDirty', false);
|
this.$store.commit('setStateDirty', false);
|
||||||
|
|
||||||
const createdTags = (workflowData.tags || []) as ITag[];
|
const createdTags = (workflowData.tags || []) as ITag[];
|
||||||
|
|
Loading…
Reference in a new issue