diff --git a/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component.html b/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component.html
index c571c3d663..b07ad0f0de 100644
--- a/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component.html
+++ b/src/app/+admin/admin-search-page/admin-search-results/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component.html
@@ -1,12 +1,7 @@
-
- {{ "admin.search.item.private" | translate }}
-
-
- {{ "admin.search.item.withdrawn" | translate }}
-
+
-
diff --git a/src/app/shared/object-collection/shared/listable-object/listable-object-component-loader.component.html b/src/app/shared/object-collection/shared/listable-object/listable-object-component-loader.component.html
index ef9a817424..1f7cf72cd1 100644
--- a/src/app/shared/object-collection/shared/listable-object/listable-object-component-loader.component.html
+++ b/src/app/shared/object-collection/shared/listable-object/listable-object-component-loader.component.html
@@ -1 +1,9 @@
-
\ No newline at end of file
+
+
+ {{ "admin.search.item.private" | translate }}
+
+
+ {{ "admin.search.item.withdrawn" | translate }}
+
+
+
diff --git a/src/app/shared/object-collection/shared/listable-object/listable-object-component-loader.component.ts b/src/app/shared/object-collection/shared/listable-object/listable-object-component-loader.component.ts
index 4525c9d5e0..dc0eabdd37 100644
--- a/src/app/shared/object-collection/shared/listable-object/listable-object-component-loader.component.ts
+++ b/src/app/shared/object-collection/shared/listable-object/listable-object-component-loader.component.ts
@@ -1,4 +1,4 @@
-import { Component, ComponentFactoryResolver, Input, OnInit, ViewChild } from '@angular/core';
+import { Component, ComponentFactoryResolver, ElementRef, Input, OnInit, ViewChild } from '@angular/core';
import { ListableObject } from '../listable-object.model';
import { ViewMode } from '../../../../core/shared/view-mode.model';
import { Context } from '../../../../core/shared/context.model';
@@ -61,6 +61,19 @@ export class ListableObjectComponentLoaderComponent implements OnInit {
*/
@ViewChild(ListableObjectDirective, {static: true}) listableObjectDirective: ListableObjectDirective;
+ /**
+ * View on the badges template, to be passed on to the loaded component (which will place the badges in the desired
+ * location, or on top if not specified)
+ */
+ @ViewChild('badges', { static: true }) badges: ElementRef;
+
+ /**
+ * The provided object as any
+ * This is required to access the object's "isDiscoverable" and "isWithdrawn" properties from the template without
+ * knowing the object's type
+ */
+ objectAsAny: any;
+
constructor(private componentFactoryResolver: ComponentFactoryResolver) {
}
@@ -68,12 +81,20 @@ export class ListableObjectComponentLoaderComponent implements OnInit {
* Setup the dynamic child component
*/
ngOnInit(): void {
+ this.objectAsAny = this.object as any;
+
const componentFactory = this.componentFactoryResolver.resolveComponentFactory(this.getComponent());
const viewContainerRef = this.listableObjectDirective.viewContainerRef;
viewContainerRef.clear();
- const componentRef = viewContainerRef.createComponent(componentFactory);
+ const componentRef = viewContainerRef.createComponent(
+ componentFactory,
+ 0,
+ undefined,
+ [
+ [this.badges.nativeElement],
+ ]);
(componentRef.instance as any).object = this.object;
(componentRef.instance as any).index = this.index;
(componentRef.instance as any).linkType = this.linkType;