]> git.ipfire.org Git - thirdparty/paperless-ngx.git/commitdiff
Fix: use original object for children in tag list (#11127)
authorshamoon <4887959+shamoon@users.noreply.github.com>
Wed, 22 Oct 2025 16:42:39 +0000 (09:42 -0700)
committerGitHub <noreply@github.com>
Wed, 22 Oct 2025 16:42:39 +0000 (09:42 -0700)
src-ui/src/app/components/manage/management-list/management-list.component.html
src-ui/src/app/components/manage/management-list/management-list.component.spec.ts
src-ui/src/app/components/manage/management-list/management-list.component.ts

index 43b2f25cd471e2fa078e8f8348667f2ebf8b6189..23e518f3168ab821792cf1240f5c6dac837e03c2 100644 (file)
 
   @if (object.children && object.children.length > 0) {
     @for (child of object.children; track child) {
-      <ng-container [ngTemplateOutlet]="objectRow" [ngTemplateOutletContext]="{ object: child, depth: depth + 1 }"></ng-container>
+      <ng-container [ngTemplateOutlet]="objectRow" [ngTemplateOutletContext]="{ object: getOriginalObject(child), depth: depth + 1 }"></ng-container>
     }
   }
 </ng-template>
index 7df6cd5a50d699b5f310e1d90447a3d308312910..95927849acd5df5d270e75cc4bfcc1d82f4f93a4 100644 (file)
@@ -347,4 +347,18 @@ describe('ManagementListComponent', () => {
     expect(component.userCanBulkEdit(PermissionAction.Delete)).toBeFalsy()
     expect(component.userCanBulkEdit(PermissionAction.Change)).toBeFalsy()
   })
+
+  it('should return an original object from filtered child object', () => {
+    const childTag: Tag = {
+      id: 4,
+      name: 'Child Tag',
+      matching_algorithm: MATCH_LITERAL,
+      match: 'child',
+      document_count: 10,
+      parent: 1,
+    }
+    component['unfilteredData'].push(childTag)
+    const original = component.getOriginalObject({ id: 4 } as Tag)
+    expect(original).toEqual(childTag)
+  })
 })
index d604a6e64bf8836e4f5a1d71cbe86cc580c39ef6..6b235123a6af2146e34edc75e0fd7ebc3cb9819e 100644 (file)
@@ -145,6 +145,10 @@ export abstract class ManagementListComponent<T extends MatchingModel>
     )
   }
 
+  public getOriginalObject(object: T): T {
+    return this.unfilteredData.find((d) => d.id == object.id)
+  }
+
   reloadData(extraParams: { [key: string]: any } = null) {
     this.loading = true
     this.clearSelection()