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',