]> git.ipfire.org Git - thirdparty/paperless-ngx.git/commitdiff
Select all / none
authorshamoon <4887959+shamoon@users.noreply.github.com>
Tue, 1 Jul 2025 20:39:21 +0000 (13:39 -0700)
committershamoon <4887959+shamoon@users.noreply.github.com>
Sat, 2 Aug 2025 12:22:55 +0000 (08:22 -0400)
src-ui/src/app/components/common/pdf-editor/pdf-editor.component.html
src-ui/src/app/components/common/pdf-editor/pdf-editor.component.ts

index 44499be921cb65098f5c383b8461df9a013e4193..03ce41e2f31f5fad938d39916f357b2daa58af85 100644 (file)
@@ -4,16 +4,26 @@
   <button type="button" class="btn-close" aria-label="Close" (click)="cancel()"></button>
 </div>
 <div class="modal-body">
-  <div class="btn-group toolbar mb-2">
-    <button class="btn btn-sm btn-secondary" (click)="rotateSelected(-90)" [disabled]="!hasSelection()">
-      <i-bs name="arrow-counterclockwise"></i-bs>
-    </button>
-    <button class="btn btn-sm btn-secondary" (click)="rotateSelected(90)" [disabled]="!hasSelection()">
-      <i-bs name="arrow-clockwise"></i-bs>
-    </button>
-    <button class="btn btn-sm btn-danger" (click)="deleteSelected()" [disabled]="!hasSelection()">
-      <i-bs name="trash"></i-bs>
-    </button>
+  <div class="btn-toolbar mb-2">
+    <div class="btn-group me-3">
+      <button class="btn btn-sm btn-secondary" (click)="selectAll()">
+        <i-bs name="check-all"></i-bs>
+      </button>
+      <button class="btn btn-sm btn-secondary" (click)="deselectAll()" [disabled]="!hasSelection()">
+        <i-bs name="x"></i-bs>
+      </button>
+    </div>
+    <div class="btn-group">
+      <button class="btn btn-sm btn-secondary" (click)="rotateSelected(-90)" [disabled]="!hasSelection()">
+        <i-bs name="arrow-counterclockwise"></i-bs>
+      </button>
+      <button class="btn btn-sm btn-secondary" (click)="rotateSelected(90)" [disabled]="!hasSelection()">
+        <i-bs name="arrow-clockwise"></i-bs>
+      </button>
+      <button class="btn btn-sm btn-danger" (click)="deleteSelected()" [disabled]="!hasSelection()">
+        <i-bs name="trash"></i-bs>
+      </button>
+    </div>
   </div>
   <div cdkDropList (cdkDropListDropped)="drop($event)" cdkDropListOrientation="mixed" class="d-flex flex-wrap row-cols-5">
     @for (p of pages; track p.page; let i = $index) {
index d783d1406263d1f046ce376b9c1cf304bdb6d375..3d07438724d73133d03e64760dc295697625c7ce 100644 (file)
@@ -79,6 +79,14 @@ export class PDFEditorComponent
     this.pages[i].selected = !this.pages[i].selected
   }
 
+  selectAll() {
+    this.pages.forEach((p) => (p.selected = true))
+  }
+
+  deselectAll() {
+    this.pages.forEach((p) => (p.selected = false))
+  }
+
   deleteSelected() {
     this.pages = this.pages.filter((p) => !p.selected)
   }