]> git.ipfire.org Git - thirdparty/paperless-ngx.git/commitdiff
Individual rotate
authorshamoon <4887959+shamoon@users.noreply.github.com>
Tue, 1 Jul 2025 21:39:24 +0000 (14: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.spec.ts
src-ui/src/app/components/common/pdf-editor/pdf-editor.component.ts

index 7dc13a54746fe4f4101e22ebe2f4b98ff5c04fa7..d7e28d44649a8f749478365164000e72d7da7555 100644 (file)
     @for (p of pages; track p.page; let i = $index) {
       <div class="page-item rounded p-2" cdkDrag (click)="toggleSelection(i)" [class.selected]="p.selected">
         <div class="btn-toolbar hover-actions z-10">
+          <div class="btn-group me-2">
+            <button class="btn btn-sm btn-dark" (click)="rotate(i); $event.stopPropagation()">
+              <i-bs name="arrow-counterclockwise"></i-bs>
+            </button>
+            <button class="btn btn-sm btn-dark" (click)="rotate(i); $event.stopPropagation()">
+              <i-bs name="arrow-clockwise"></i-bs>
+            </button>
+          </div>
           <div class="btn-group">
             <button class="btn btn-sm btn-dark text-danger" (click)="remove(i); $event.stopPropagation()">
               <i-bs name="trash"></i-bs>
index 47641d309d5d405d0553878a67ba904bd673e93a..b1ae01b3f85c0ff7c03cfa1ab6dd8cb6a7feb3b1 100644 (file)
@@ -38,5 +38,7 @@ describe('PDFEditorComponent', () => {
     component.pages.push({ page: 2, rotate: 0, splitAfter: false })
     component.drop({ previousIndex: 0, currentIndex: 1 } as any)
     expect(component.pages[0].page).toBe(2)
+    component.rotate(0)
+    expect(component.pages[0].rotate).toBe(90)
   })
 })
index 4d35f5e2f7d8cbf0912cd49b12adc93c68966149..95f85a8e28ec96fdd9a45dc399c4cae464b1ea6f 100644 (file)
@@ -54,6 +54,14 @@ export class PDFEditorComponent extends ConfirmDialogComponent {
     }))
   }
 
+  toggleSelection(i: number) {
+    this.pages[i].selected = !this.pages[i].selected
+  }
+
+  rotate(i: number) {
+    this.pages[i].rotate = (this.pages[i].rotate + 90) % 360
+  }
+
   rotateSelected(dir: number) {
     for (let p of this.pages) {
       if (p.selected) {
@@ -70,10 +78,6 @@ export class PDFEditorComponent extends ConfirmDialogComponent {
     this.pages[i].splitAfter = !this.pages[i].splitAfter
   }
 
-  toggleSelection(i: number) {
-    this.pages[i].selected = !this.pages[i].selected
-  }
-
   selectAll() {
     this.pages.forEach((p) => (p.selected = true))
   }