<a ngbNavLink
i18n>Devices</a>
<ng-template ngbNavContent>
- <cd-device-list [osdId]="osd?.id"></cd-device-list>
+ <cd-device-list [osdId]="osd?.id"
+ [hostname]="selection?.host.name"
+ [osdList]="true"></cd-device-list>
</ng-template>
</li>
<li ngbNavItem="attributes">
<ng-template #deviceLocation
let-value="value">
- <span *ngFor="let location of value">{{location.dev}}</span>
+ <ng-container *ngFor="let location of value">
+ <cd-label *ngIf="location.host === hostname"
+ [value]="location.dev"></cd-label>
+ </ng-container>
</ng-template>
+<ng-template #daemonName
+ let-value="value">
+ <ng-container [ngTemplateOutlet]="osdId !== null ? osdIdDaemon : readableDaemons"
+ [ngTemplateOutletContext]="{daemons: value}">
+ </ng-container>
+</ng-template>
+
+<ng-template #osdIdDaemon
+ let-daemons="daemons">
+ <ng-container *ngFor="let daemon of daemons">
+ <cd-label *ngIf="daemon.includes(osdId)"
+ [value]="daemon"></cd-label>
+ </ng-container>
+</ng-template>
+
+<ng-template #readableDaemons
+ let-daemons="daemons">
+ <ng-container *ngFor="let daemon of daemons">
+ <cd-label class="mr-1"
+ [value]="daemon"></cd-label>
+ </ng-container>
+</ng-template>
+
+
<ng-template #lifeExpectancy
let-value="value">
<span *ngIf="!value.life_expectancy_enabled"
@Input()
osdId: number = null;
+ @Input()
+ osdList = false;
+
@ViewChild('deviceLocation', { static: true })
locationTemplate: TemplateRef<any>;
+ @ViewChild('daemonName', { static: true })
+ daemonNameTemplate: TemplateRef<any>;
@ViewChild('lifeExpectancy', { static: true })
lifeExpectancyTemplate: TemplateRef<any>;
@ViewChild('lifeExpectancyTimestamp', { static: true })
isHidden: true
},
{ prop: 'location', name: $localize`Device Name`, cellTemplate: this.locationTemplate },
- { prop: 'readableDaemons', name: $localize`Daemons` }
+ { prop: 'daemons', name: $localize`Daemons`, cellTemplate: this.daemonNameTemplate }
];
}
ngOnChanges() {
const updateDevicesFn = (devices: CdDevice[]) => (this.devices = devices);
- if (this.hostname) {
- this.hostService.getDevices(this.hostname).subscribe(updateDevicesFn);
- } else if (this.osdId !== null) {
+ if (this.osdList && this.osdId !== null) {
this.osdService.getDevices(this.osdId).subscribe(updateDevicesFn);
+ } else if (this.hostname) {
+ this.hostService.getDevices(this.hostname).subscribe(updateDevicesFn);
}
}
}