diff --git a/src-ui/messages.xlf b/src-ui/messages.xlf index 5101128b3..e0d30bdc2 100644 --- a/src-ui/messages.xlf +++ b/src-ui/messages.xlf @@ -726,7 +726,7 @@ src/app/components/manage/mail/mail.component.html - 139 + 146 src/app/components/manage/management-list/management-list.component.html @@ -1100,11 +1100,11 @@ src/app/components/manage/mail/mail.component.html - 101 + 108 src/app/components/manage/mail/mail.component.html - 113 + 120 src/app/components/manage/management-list/management-list.component.html @@ -1505,11 +1505,11 @@ src/app/components/manage/mail/mail.component.html - 102 + 109 src/app/components/manage/mail/mail.component.html - 116 + 123 src/app/components/manage/management-list/management-list.component.html @@ -2227,7 +2227,7 @@ src/app/components/manage/mail/mail.component.ts - 179 + 194 src/app/components/manage/management-list/management-list.component.ts @@ -2430,11 +2430,11 @@ src/app/components/manage/mail/mail.component.html - 100 + 107 src/app/components/manage/mail/mail.component.html - 110 + 117 src/app/components/manage/management-list/management-list.component.html @@ -2578,7 +2578,7 @@ src/app/components/manage/mail/mail.component.ts - 181 + 196 src/app/components/manage/management-list/management-list.component.ts @@ -3696,7 +3696,7 @@ src/app/components/manage/mail/mail.component.html - 92 + 96 src/app/components/manage/workflows/workflows.component.html @@ -5051,11 +5051,11 @@ src/app/components/manage/mail/mail.component.html - 103 + 110 src/app/components/manage/mail/mail.component.html - 121 + 128 src/app/components/manage/workflows/workflows.component.html @@ -7529,7 +7529,7 @@ Disabled src/app/components/manage/mail/mail.component.html - 92 + 96 src/app/components/manage/workflows/workflows.component.html @@ -7540,7 +7540,7 @@ No mail rules defined. src/app/components/manage/mail/mail.component.html - 130 + 137 @@ -7613,46 +7613,67 @@ 162 + + Rule "" enabled. + + src/app/components/manage/mail/mail.component.ts + 178 + + + + Rule "" disabled. + + src/app/components/manage/mail/mail.component.ts + 179 + + + + Error toggling rule. + + src/app/components/manage/mail/mail.component.ts + 183 + + Confirm delete mail rule src/app/components/manage/mail/mail.component.ts - 177 + 192 This operation will permanently delete this mail rule. src/app/components/manage/mail/mail.component.ts - 178 + 193 Deleted mail rule src/app/components/manage/mail/mail.component.ts - 187 + 202 Error deleting mail rule. src/app/components/manage/mail/mail.component.ts - 196 + 211 Permissions updated src/app/components/manage/mail/mail.component.ts - 218 + 233 Error updating permissions src/app/components/manage/mail/mail.component.ts - 223 + 238 src/app/components/manage/management-list/management-list.component.ts diff --git a/src-ui/src/app/components/app-frame/global-search/global-search.component.scss b/src-ui/src/app/components/app-frame/global-search/global-search.component.scss index 1b4f6cd19..bbb7840c5 100644 --- a/src-ui/src/app/components/app-frame/global-search/global-search.component.scss +++ b/src-ui/src/app/components/app-frame/global-search/global-search.component.scss @@ -65,10 +65,6 @@ form { --pngx-focus-alpha: 0; } -.cursor-pointer { - cursor: pointer; -} - .mh-75 { max-height: 75vh; } diff --git a/src-ui/src/app/components/document-list/document-list.component.scss b/src-ui/src/app/components/document-list/document-list.component.scss index fb7db4b01..0e10b83da 100644 --- a/src-ui/src/app/components/document-list/document-list.component.scss +++ b/src-ui/src/app/components/document-list/document-list.component.scss @@ -6,10 +6,6 @@ tr { user-select: none; } -.cursor-pointer { - cursor: pointer; -} - .table-row-selected { background-color: var(--pngx-primary-faded); } 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 da2be1d6b..296d80055 100644 --- a/src-ui/src/app/components/manage/mail/mail.component.html +++ b/src-ui/src/app/components/manage/mail/mail.component.html @@ -87,9 +87,16 @@
  • -
    {{rule.order}}
    +
    {{rule.order}}
    {{(mailAccountService.getCached(rule.account) | async)?.name}}
    -
    @if(rule.enabled) { Enabled } @else { Disabled }
    +
    +
    + + +
    +
    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 4a134b880..14cd10944 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 @@ -43,14 +43,15 @@ import { EditDialogMode } from '../../common/edit-dialog/edit-dialog.component' import { NgxBootstrapIconsModule, allIcons } from 'ngx-bootstrap-icons' import { SwitchComponent } from '../../common/input/switch/switch.component' import { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http' +import { By } from '@angular/platform-browser' const mailAccounts = [ { id: 1, name: 'account1' }, { id: 2, name: 'account2' }, ] const mailRules = [ - { id: 1, name: 'rule1', owner: 1, account: 1 }, - { id: 2, name: 'rule2', owner: 2, account: 2 }, + { id: 1, name: 'rule1', owner: 1, account: 1, enabled: true }, + { id: 2, name: 'rule2', owner: 2, account: 2, enabled: true }, ] describe('MailComponent', () => { @@ -321,4 +322,30 @@ describe('MailComponent', () => { dialog.confirmClicked.emit({ permissions: perms, merge: true }) expect(accountPatchSpy).toHaveBeenCalled() }) + + it('should update mail rule when enable is toggled', () => { + completeSetup() + const patchSpy = jest.spyOn(mailRuleService, 'patch') + const toggleInput = fixture.debugElement.query( + By.css('input[type="checkbox"]') + ) + const toastErrorSpy = jest.spyOn(toastService, 'showError') + const toastInfoSpy = jest.spyOn(toastService, 'showInfo') + // fail first + patchSpy.mockReturnValueOnce( + throwError(() => new Error('Error getting config')) + ) + toggleInput.nativeElement.click() + expect(patchSpy).toHaveBeenCalled() + expect(toastErrorSpy).toHaveBeenCalled() + // succeed second + patchSpy.mockReturnValueOnce(of(mailRules[0] as MailRule)) + toggleInput.nativeElement.click() + patchSpy.mockReturnValueOnce( + of({ ...mailRules[0], enabled: false } as MailRule) + ) + toggleInput.nativeElement.click() + expect(patchSpy).toHaveBeenCalled() + expect(toastInfoSpy).toHaveBeenCalled() + }) }) 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 5d00b6c13..288e8e121 100644 --- a/src-ui/src/app/components/manage/mail/mail.component.ts +++ b/src-ui/src/app/components/manage/mail/mail.component.ts @@ -170,6 +170,21 @@ export class MailComponent this.editMailRule(clone, true) } + onMailRuleEnableToggled(rule: MailRule) { + this.mailRuleService.patch(rule).subscribe({ + next: () => { + this.toastService.showInfo( + rule.enabled + ? $localize`Rule "${rule.name}" enabled.` + : $localize`Rule "${rule.name}" disabled.` + ) + }, + error: (e) => { + this.toastService.showError($localize`Error toggling rule.`, e) + }, + }) + } + deleteMailRule(rule: MailRule) { const modal = this.modalService.open(ConfirmDialogComponent, { backdrop: 'static', diff --git a/src-ui/src/styles.scss b/src-ui/src/styles.scss index c83ebd493..ef856fbc7 100644 --- a/src-ui/src/styles.scss +++ b/src-ui/src/styles.scss @@ -369,6 +369,10 @@ textarea, cursor: not-allowed; } +.cursor-pointer { + cursor: pointer; +} + ul.pagination { margin-bottom: 0; }