]> git.ipfire.org Git - thirdparty/paperless-ngx.git/commitdiff
mail account + rule deletion
authorMichael Shamoon <4887959+shamoon@users.noreply.github.com>
Tue, 8 Nov 2022 20:09:16 +0000 (12:09 -0800)
committerMichael Shamoon <4887959+shamoon@users.noreply.github.com>
Sat, 3 Dec 2022 17:31:22 +0000 (09:31 -0800)
src-ui/src/app/components/manage/settings/settings.component.html
src-ui/src/app/components/manage/settings/settings.component.ts

index 423002e83e4a5a107dac282f5d6833d675308274..03cc9f02e5e42df3fb022f3f95c0d00aa43b64b5 100644 (file)
       <ng-template ngbNavContent>
 
         <h4 i18n>Mail accounts</h4>
-        <ul formGroupName="mailAccounts">
+        <ul class="list-group" formGroupName="mailAccounts">
 
-            <li class="row mb-1">
+            <li class="list-group-item">
               <div class="row">
                 <div class="col" i18n>Name</div>
                 <div class="col" i18n>Server</div>
-                <div class="col">&nbsp;</div>
+                <div class="col" i18n>Actions</div>
               </div>
             </li>
 
-            <li *ngFor="let account of mailAccounts" [formGroupName]="account.id" class="row mb-1">
+            <li *ngFor="let account of mailAccounts" class="list-group-item" [formGroupName]="account.id">
               <div class="row">
                 <div class="col"><button class="btn btn-link p-0" type="button" (click)="editMailAccount(account)">{{account.name}}</button></div>
                 <div class="col">{{account.imap_server}}</div>
-                <div class="col"><button class="btn btn-primary" type="button" (click)="editMailAccount(account)" i18n>Edit</button></div>
+                <div class="col">
+                  <div class="btn-group">
+                    <button class="btn btn-primary" type="button" (click)="editMailAccount(account)" i18n>Edit</button>
+                    <button class="btn btn-outline-danger" type="button" (click)="deleteMailAccount(account)" i18n>Delete</button>
+                  </div>
+                </div>
               </div>
             </li>
 
         </ul>
 
         <h4 class="mt-4" i18n>Mail rules</h4>
-        <ul formGroupName="mailRules">
+        <ul class="list-group" formGroupName="mailRules">
 
-            <li class="row mb-1">
+            <li class="list-group-item">
               <div class="row">
                 <div class="col" i18n>Name</div>
                 <div class="col" i18n>Account</div>
-                <div class="col">&nbsp;</div>
+                <div class="col" i18n>Actions</div>
               </div>
             </li>
 
-            <li *ngFor="let rule of mailRules" [formGroupName]="rule.id" class="row">
+            <li *ngFor="let rule of mailRules" class="list-group-item" [formGroupName]="rule.id">
               <div class="row">
                 <div class="col"><button class="btn btn-link p-0" type="button" (click)="editMailRule(rule)">{{rule.name}}</button></div>
                 <div class="col">{{rule.account.name}}</div>
-                <div class="col"><button class="btn btn-primary" type="button" (click)="editMailRule(rule)" i18n>Edit</button></div>
+                <div class="col">
+                  <div class="btn-group">
+                    <button class="btn btn-primary" type="button" (click)="editMailRule(rule)" i18n>Edit</button>
+                    <button class="btn btn-outline-danger" type="button" (click)="deleteMailRule(rule)" i18n>Delete</button>
+                  </div>
+                </div>
               </div>
             </li>
 
index 6afc0d9c6273abb48fa4565082774d392240c0d0..8efbb486ea79dfc8d5b043e0ec0c914af47a3770 100644 (file)
@@ -36,6 +36,7 @@ import { MailRuleService } from 'src/app/services/rest/mail-rule.service'
 import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
 import { MailAccountEditDialogComponent } from '../../common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component'
 import { MailRuleEditDialogComponent } from '../../common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component'
+import { ConfirmDialogComponent } from '../../common/confirm-dialog/confirm-dialog.component'
 
 @Component({
   selector: 'app-settings',
@@ -500,6 +501,21 @@ export class SettingsComponent
     //   })
   }
 
+  deleteMailAccount(account: PaperlessMailAccount) {
+    let modal = this.modalService.open(ConfirmDialogComponent, {
+      backdrop: 'static',
+    })
+    modal.componentInstance.title = $localize`Confirm delete mail account`
+    modal.componentInstance.messageBold = $localize`This operation will permanently this mail account.`
+    modal.componentInstance.message = $localize`This operation cannot be undone.`
+    modal.componentInstance.btnClass = 'btn-danger'
+    modal.componentInstance.btnCaption = $localize`Proceed`
+    modal.componentInstance.confirmClicked.subscribe(() => {
+      modal.componentInstance.buttonsEnabled = false
+      this.mailAccountService.delete(account)
+    })
+  }
+
   editMailRule(rule: PaperlessMailRule) {
     console.log(rule)
 
@@ -524,4 +540,19 @@ export class SettingsComponent
     //     this.documentForm.get('storage_path').setValue(newStoragePath.id)
     //   })
   }
+
+  deleteMailRule(rule: PaperlessMailRule) {
+    let modal = this.modalService.open(ConfirmDialogComponent, {
+      backdrop: 'static',
+    })
+    modal.componentInstance.title = $localize`Confirm delete mail rule`
+    modal.componentInstance.messageBold = $localize`This operation will permanently this mail rule.`
+    modal.componentInstance.message = $localize`This operation cannot be undone.`
+    modal.componentInstance.btnClass = 'btn-danger'
+    modal.componentInstance.btnCaption = $localize`Proceed`
+    modal.componentInstance.confirmClicked.subscribe(() => {
+      modal.componentInstance.buttonsEnabled = false
+      this.mailRuleService.delete(rule)
+    })
+  }
 }