feat: Add duplicate workflow error handler (#4616)

* feat: Add duplicate workflow error handler

* refactor: Change translation string for existing duplicate workflow error
This commit is contained in:
Alex Grozav 2022-11-17 15:19:10 +02:00 committed by GitHub
parent b35172e442
commit f7a9ef9116
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 44 additions and 25 deletions

View file

@ -110,8 +110,8 @@ export default mixins(showMessage, workflowHelpers, restApi).extend({
const name = this.name.trim(); const name = this.name.trim();
if (!name) { if (!name) {
this.$showMessage({ this.$showMessage({
title: this.$locale.baseText('duplicateWorkflowDialog.showMessage.title'), title: this.$locale.baseText('duplicateWorkflowDialog.errors.missingName.title'),
message: this.$locale.baseText('duplicateWorkflowDialog.showMessage.message'), message: this.$locale.baseText('duplicateWorkflowDialog.errors.missingName.message'),
type: "error", type: "error",
}); });
@ -122,30 +122,46 @@ export default mixins(showMessage, workflowHelpers, restApi).extend({
this.isSaving = true; this.isSaving = true;
let workflowToUpdate: IWorkflowDataUpdate | undefined; try {
if (currentWorkflowId !== PLACEHOLDER_EMPTY_WORKFLOW_ID) { let workflowToUpdate: IWorkflowDataUpdate | undefined;
const { createdAt, updatedAt, ...workflow } = await this.restApi().getWorkflow(this.data.id); if (currentWorkflowId !== PLACEHOLDER_EMPTY_WORKFLOW_ID) {
workflowToUpdate = workflow; const { createdAt, updatedAt, ...workflow } = await this.restApi().getWorkflow(this.data.id);
} workflowToUpdate = workflow;
}
const saved = await this.saveAsNewWorkflow({ const saved = await this.saveAsNewWorkflow({
name, name,
data: workflowToUpdate, data: workflowToUpdate,
tags: this.currentTagIds, tags: this.currentTagIds,
resetWebhookUrls: true, resetWebhookUrls: true,
openInNewWindow: true, openInNewWindow: true,
resetNodeIds: true, resetNodeIds: true,
});
if (saved) {
this.closeDialog();
this.$telemetry.track('User duplicated workflow', {
old_workflow_id: currentWorkflowId,
workflow_id: this.data.id,
}); });
}
this.isSaving = false; if (saved) {
this.closeDialog();
this.$telemetry.track('User duplicated workflow', {
old_workflow_id: currentWorkflowId,
workflow_id: this.data.id,
});
}
} catch (error) {
if (error.httpStatusCode === 403) {
error.message = this.$locale.baseText('duplicateWorkflowDialog.errors.forbidden.message');
this.$showError(
error,
this.$locale.baseText('duplicateWorkflowDialog.errors.forbidden.title'),
);
} else {
this.$showError(
error,
this.$locale.baseText('duplicateWorkflowDialog.errors.generic.title'),
);
}
} finally {
this.isSaving = false;
}
}, },
closeDialog(): void { closeDialog(): void {
this.modalBus.$emit("close"); this.modalBus.$emit("close");

View file

@ -375,8 +375,11 @@
"duplicateWorkflowDialog.duplicateWorkflow": "Duplicate Workflow", "duplicateWorkflowDialog.duplicateWorkflow": "Duplicate Workflow",
"duplicateWorkflowDialog.enterWorkflowName": "Enter workflow name", "duplicateWorkflowDialog.enterWorkflowName": "Enter workflow name",
"duplicateWorkflowDialog.save": "@:_reusableBaseText.save", "duplicateWorkflowDialog.save": "@:_reusableBaseText.save",
"duplicateWorkflowDialog.showMessage.message": "Please enter a name.", "duplicateWorkflowDialog.errors.missingName.title": "Name missing",
"duplicateWorkflowDialog.showMessage.title": "Name missing", "duplicateWorkflowDialog.errors.missingName.message": "Please enter a name.",
"duplicateWorkflowDialog.errors.forbidden.title": "Duplicate workflow failed",
"duplicateWorkflowDialog.errors.forbidden.message": "This action is forbidden. Do you have the correct permissions?",
"duplicateWorkflowDialog.errors.generic.title": "Duplicate workflow failed",
"error": "Error", "error": "Error",
"error.goBack": "Go back", "error.goBack": "Go back",
"error.pageNotFound": "Oops, couldnt find that", "error.pageNotFound": "Oops, couldnt find that",