diff --git a/src-ui/messages.xlf b/src-ui/messages.xlf index e51cb5e7b..35bbdf21b 100644 --- a/src-ui/messages.xlf +++ b/src-ui/messages.xlf @@ -726,7 +726,7 @@ src/app/components/manage/mail/mail.component.html - 105 + 108 src/app/components/manage/management-list/management-list.component.html @@ -1096,7 +1096,7 @@ src/app/components/manage/mail/mail.component.html - 85 + 88 src/app/components/manage/management-list/management-list.component.html @@ -1493,7 +1493,7 @@ src/app/components/manage/mail/mail.component.html - 88 + 91 src/app/components/manage/management-list/management-list.component.html @@ -2207,7 +2207,7 @@ src/app/components/manage/mail/mail.component.ts - 173 + 179 src/app/components/manage/management-list/management-list.component.ts @@ -2546,7 +2546,7 @@ src/app/components/manage/mail/mail.component.ts - 175 + 181 src/app/components/manage/management-list/management-list.component.ts @@ -7444,11 +7444,22 @@ 67 + + Clone + + src/app/components/manage/mail/mail.component.html + 85 + + + src/app/components/manage/workflows/workflows.component.html + 38 + + No mail rules defined. src/app/components/manage/mail/mail.component.html - 96 + 99 @@ -7511,56 +7522,56 @@ Saved rule "". src/app/components/manage/mail/mail.component.ts - 152 + 151 Error saving rule. src/app/components/manage/mail/mail.component.ts - 163 + 162 Confirm delete mail rule src/app/components/manage/mail/mail.component.ts - 171 + 177 This operation will permanently delete this mail rule. src/app/components/manage/mail/mail.component.ts - 172 + 178 Deleted mail rule src/app/components/manage/mail/mail.component.ts - 181 + 187 Error deleting mail rule. src/app/components/manage/mail/mail.component.ts - 190 + 196 Permissions updated src/app/components/manage/mail/mail.component.ts - 212 + 218 Error updating permissions src/app/components/manage/mail/mail.component.ts - 217 + 223 src/app/components/manage/management-list/management-list.component.ts @@ -7817,13 +7828,6 @@ 30 - - Clone - - src/app/components/manage/workflows/workflows.component.html - 38 - - No workflows defined. diff --git a/src-ui/src/app/components/manage/mail/mail.component.html b/src-ui/src/app/components/manage/mail/mail.component.html index b804b0f2f..e29a16490 100644 --- a/src-ui/src/app/components/manage/mail/mail.component.html +++ b/src-ui/src/app/components/manage/mail/mail.component.html @@ -81,6 +81,9 @@ + diff --git a/src-ui/src/app/components/manage/mail/mail.component.spec.ts b/src-ui/src/app/components/manage/mail/mail.component.spec.ts index e72b49b0f..3cb8d57ae 100644 --- a/src-ui/src/app/components/manage/mail/mail.component.spec.ts +++ b/src-ui/src/app/components/manage/mail/mail.component.spec.ts @@ -226,6 +226,17 @@ describe('MailComponent', () => { component.editMailRule() }) + it('should support clone mail rule', () => { + completeSetup() + let modal: NgbModalRef + modalService.activeInstances.subscribe((refs) => (modal = refs[0])) + component.cloneMailRule(mailRules[0] as MailRule) + const editDialog = modal.componentInstance as MailRuleEditDialogComponent + expect(editDialog.object.id).toBeNull() + expect(editDialog.object.name).toEqual(`${mailRules[0].name} (clone)`) + expect(editDialog.dialogMode).toEqual(EditDialogMode.CREATE) + }) + it('should support delete mail rule, show error if needed', () => { completeSetup() let modal: NgbModalRef diff --git a/src-ui/src/app/components/manage/mail/mail.component.ts b/src-ui/src/app/components/manage/mail/mail.component.ts index d8820ed38..bbd4e292c 100644 --- a/src-ui/src/app/components/manage/mail/mail.component.ts +++ b/src-ui/src/app/components/manage/mail/mail.component.ts @@ -137,14 +137,13 @@ export class MailComponent }) } - editMailRule(rule: MailRule = null) { + editMailRule(rule: MailRule = null, clone = false) { const modal = this.modalService.open(MailRuleEditDialogComponent, { backdrop: 'static', size: 'xl', }) - modal.componentInstance.dialogMode = rule - ? EditDialogMode.EDIT - : EditDialogMode.CREATE + modal.componentInstance.dialogMode = + rule && !clone ? EditDialogMode.EDIT : EditDialogMode.CREATE modal.componentInstance.object = rule modal.componentInstance.succeeded .pipe(takeUntil(this.unsubscribeNotifier)) @@ -164,6 +163,13 @@ export class MailComponent }) } + cloneMailRule(rule: MailRule) { + const clone = { ...rule } + clone.id = null + clone.name = `${rule.name} (clone)` + this.editMailRule(clone, true) + } + deleteMailRule(rule: MailRule) { const modal = this.modalService.open(ConfirmDialogComponent, { backdrop: 'static',