diff --git a/src/ui/kgEntryViewer/kgentry.template.html b/src/ui/kgEntryViewer/kgentry.template.html index ae1e44f3da6628f06ecd562ace6841066d46f396..8b6d77d208dfb4d81ab3cdbe340f22456bd30f8c 100644 --- a/src/ui/kgEntryViewer/kgentry.template.html +++ b/src/ui/kgEntryViewer/kgentry.template.html @@ -83,9 +83,14 @@ Methods </div> <div body> - <div *ngFor = "let method of kgData.methods"> - {{ method.value }} + <div *ngIf = "isArray(kgData.methods); else singleMethodTemplate"> + <div *ngFor = "let method of kgData.methods"> + {{ method.value }} + </div> </div> + <ng-template #singleMethodTemplate> + {{ kgData.methods.value }} + </ng-template> </div> </panel-component> @@ -103,9 +108,14 @@ Files </div> <div body> - <div *ngFor = "let file of kgData.files"> - {{ file.value }} + <div *ngIf = "isArray(kgData.files);else singleFileTemplate"> + <div *ngFor = "let file of kgData.files"> + {{ file.value }} + </div> </div> + <ng-template #singleFileTemplate> + {{ kgData.files.value }} + </ng-template> </div> </panel-component> diff --git a/src/ui/kgEntryViewer/subjectViewer/subjectViewer.component.ts b/src/ui/kgEntryViewer/subjectViewer/subjectViewer.component.ts index ca2932fa4701629c2faafcee2f51f2e39ef2ba75..ab291c490c5b460b80d6d92a6d1b4312ada9ba4f 100644 --- a/src/ui/kgEntryViewer/subjectViewer/subjectViewer.component.ts +++ b/src/ui/kgEntryViewer/subjectViewer/subjectViewer.component.ts @@ -8,23 +8,34 @@ import { Component, Input, ChangeDetectionStrategy } from "@angular/core"; }) export class SubjectViewer{ - @Input() subjects: any[] = [] + @Input() subjects: any = [] + + get isSingle():boolean{ + return this.subjects.constructor !== Array + } get species():string[]{ - return this.subjects.reduce((acc:string[],curr:any) => - acc.findIndex(species => species === curr.children.species.value) >= 0 - ? acc - : acc.concat(curr.children.species.value) - , []) + return this.isSingle + ? [this.subjects.children.species.value] + : this.subjects.reduce((acc:string[],curr:any) => + acc.findIndex(species => species === curr.children.species.value) >= 0 + ? acc + : acc.concat(curr.children.species.value) + , []) } get groupBySex(){ - return this.subjects.reduce((acc:any[],curr) => - acc.findIndex(item => item.name === curr.children.sex.value) >= 0 - ? acc.map(item => item.name === curr.children.sex.value - ? Object.assign({}, item, { count: item.count + 1 }) - : item) - : acc.concat({name: curr.children.sex.value, count: 1}) - , []) + return this.isSingle + ? [{ + name : this.subjects.children.sex.value, + count : 1 + }] + : this.subjects.reduce((acc:any[],curr) => + acc.findIndex(item => item.name === curr.children.sex.value) >= 0 + ? acc.map(item => item.name === curr.children.sex.value + ? Object.assign({}, item, { count: item.count + 1 }) + : item) + : acc.concat({name: curr.children.sex.value, count: 1}) + , []) } } \ No newline at end of file